Nucleo SPI Sequencer
Dependencies: AverageAnalogIn N5110 Nucleo_rtos_UI_Test PinDetect RotaryEncoder Sequence mbed-rtos mbed FilterController
Fork of Nucleo_rtos_UI_Test by
Diff: main.cpp
- Revision:
- 7:8f38e85705ba
- Parent:
- 6:4e089888b809
- Child:
- 8:2c481dab525a
--- a/main.cpp Sun Jun 12 08:02:19 2016 +0000 +++ b/main.cpp Sun Jun 12 08:19:29 2016 +0000 @@ -58,13 +58,6 @@ }; // Grobal Variables -struct sSequence { - bool noteOn; - int octave; - int pitch; - bool tie; - bool accent; -} sSequence[SEQUENCE_N]; struct Filter { int cutOff; @@ -72,7 +65,7 @@ int envMod; } Filter; -int currentNote = 0; +int currentStep = 0; int tempo = 120; bool isRunning = true; bool isDirty = true; @@ -85,14 +78,14 @@ char buff[20]; //Lcd.clear(); - sprintf(buff, "Note#: %d ", currentNote); + sprintf(buff, "Note#: %d ", currentStep); Lcd.printString(buff, 0, 0); - sprintf(buff, "pitch: %d ", sSequence[currentNote].pitch); + sprintf(buff, "pitch: %d ", sequence[currentStep].getPitch()); Lcd.printString(buff, 0, 1); - sprintf(buff, "octave: %d " ,sSequence[currentNote].octave); + sprintf(buff, "octave: %d " ,sequence[currentStep].getOctave()); Lcd.printString(buff, 0, 2); sprintf(buff, "%1d %1d %1d %1d %3d", - sSequence[currentNote].noteOn, sSequence[currentNote].tie, sSequence[currentNote].accent, + sequence[currentStep].noteOn, sequence[currentStep].tie, sequence[currentStep].accent, isRunning, sequenceSender.getWaveShape()); Lcd.printString(buff, 0, 3); sprintf(buff, "%3d %3d %3d", @@ -108,35 +101,35 @@ //------------------------------------------------------------------------ void swOctaveUpPressed() { - sSequence[currentNote].octave++; + sequence[currentStep].setOctave(sequence[currentStep].getOctave() + 1); isDirty = true; printf("swOctaveUpPressed\r\n"); } void swOctaveDownPressed() { - sSequence[currentNote].octave--; + sequence[currentStep].setOctave(sequence[currentStep].getOctave() - 1); isDirty = true; printf("swOctaveDownPressed\r\n"); } void swNoteOnOffPressed() { - sSequence[currentNote].noteOn = !sSequence[currentNote].noteOn; + sequence[currentStep].noteOn = !sequence[currentStep].noteOn; isDirty = true; printf("swNoteOnOffPressed\r\n"); } void swTiePressed() { - sSequence[currentNote].tie = !sSequence[currentNote].tie; + sequence[currentStep].tie = !sequence[currentStep].tie; isDirty = true; printf("swTiePressed\r\n"); } void swAccentPressed() { - sSequence[currentNote].accent = !sSequence[currentNote].accent; + sequence[currentStep].accent = !sequence[currentStep].accent; isDirty = true; printf("swAccentPressed\r\n"); } @@ -167,14 +160,14 @@ void pollingRotEncs(void const *argument) { while (true) { - int _note = RotEnc1.getVal(); - if (_note != currentNote) { - currentNote = _note; + int _step = RotEnc1.getVal(); + if (_step != currentStep) { + currentStep = _step; isDirty = true; } int _pitch = RotEnc2.getVal(); - if (_pitch != sSequence[currentNote].pitch) { - sSequence[currentNote].pitch = _pitch; + if (_pitch != sequence[currentStep].getPitch()) { + sequence[currentStep].setPitch(_pitch); isDirty = true; } Thread::wait(10);