BaseMachine Sequencer UI Test
Dependencies: AverageAnalogIn PinDetect RotaryEncoder Sequence SequencerDisplay mbed-rtos mbed st7565LCD
Fork of CH12864F-SPI2_Test by
main.cpp
- Committer:
- ryood
- Date:
- 2016-08-17
- Revision:
- 1:23bc297e8bfe
- Parent:
- 0:cbc508b7ebff
- Child:
- 2:29f0fe703d39
File content as of revision 1:23bc297e8bfe:
/* * main.cpp * BaseMachine Sequencer * * 2016.08.17 * */ #include "mbed.h" #include "rtos.h" #include "st7565LCD.h" #define UART_TRACE (1) //#include "Sequence.h" //#include "ST7565_SequencerDisplay.h" #define TITLE_STR1 ("BaseMachine Sequencer") #define TITLE_STR2 ("20160817") const int SEQUENCE_N = 16; const int PITCH_MAX = 12; const int BPM_MIN = 60; const int BPM_MAX = 240; //ST7565(PinName mosi, PinName sclk, PinName cs, PinName rst, PinName a0); ST7565 gLCD(PB_15, PB_13, PB_12, PB_2, PB_1); AnalogIn AinPulseWidth(PC_2); AnalogIn AinCutOff(PB_0); AnalogIn AinResonance(PC_1); AnalogIn AinEnvMod(PC_3); AnalogIn AinLevel(PC_0); AnalogIn AinDuration(PA_4); AnalogIn AinDecay(PA_1); AnalogIn AinSustain(PA_0); // とりあえずの変数(後でClassのメンバ変数に格納) int waveShape = 0; int modNumber = 0; #define WAVESHAPE_N 2 #define MOD_NUMBER_MAX 1 uint8_t pulseWidth; uint8_t cutOff; uint8_t resonance; uint8_t envMod; uint8_t level; uint8_t duration; uint8_t decay; uint8_t sustain; //------------------------------------------------------------------------ // Functions //------------------------------------------------------------------------ void pollingPots() { //pulseWidth = AinPulseWidth.read_u16() >> 8; cutOff = AinCutOff.read_u16() >> 8; resonance = AinResonance.read_u16() >> 8; //envMod = AinEnvMod.read_u16() >> 8; //level = AinLevel.read_u16() >> 8; duration = AinDuration.read_u16() >> 8; decay = AinDecay.read_u16() >> 8; sustain = AinSustain.read_u16() >> 8; } void dumpToLCD() { char buff[64]; int col = 0; gLCD.clear(); /* sprintf(buff, "Run: %d", isRunning); gLCD.drawstring(0, col++, buff); sprintf(buff, "BPM: %d", bpm); gLCD.drawstring(0, col++, buff); sprintf(buff, "Step: %d", currentStep); gLCD.drawstring(0, col++, buff); sprintf(buff, "NoteOn: %d", sequences[currentStep].noteOn); gLCD.drawstring(0, col++, buff); sprintf(buff, "Pitch: %d", sequences[currentStep].getPitch()); gLCD.drawstring(0, col++, buff); sprintf(buff, "Octave: %d", sequences[currentStep].getOctave()); gLCD.drawstring(0, col++, buff); sprintf(buff, "Tie: %d", sequences[currentStep].tie); gLCD.drawstring(0, col++, buff); sprintf(buff, "Accent: %d", sequences[currentStep].accent); gLCD.drawstring(0, col++, buff); col = 0; sprintf(buff, "WavS: %d", waveShape); gLCD.drawstring(64, col++, buff); sprintf(buff, "ModN: %d", modNumber); gLCD.drawstring(64, col++, buff); */ col = 2; sprintf(buff, "PW%3d CO%3d", pulseWidth, cutOff); gLCD.drawstring(60, col++, buff); sprintf(buff, "RS%3d EV%3d", resonance, envMod); gLCD.drawstring(60, col++, buff); sprintf(buff, "LV%3d DR%3d", level, duration); gLCD.drawstring(60, col++, buff); sprintf(buff, "DC%3d ST%3d", decay, sustain); gLCD.drawstring(60, col++, buff); gLCD.display(); } int main() { printf("\r\n*** BaseMachine Sequencer Test ***\r\n"); gLCD.begin(0x10); while (true) { pollingPots(); dumpToLCD(); } }