Test program for BaseMachineUIController Library
Dependencies: AverageAnalogIn BaseMachineUIController ExioBufferdController MCP23S17 PinDetect RotaryEncoder Sequence SequencerDisplay mbed-rtos mbed st7567LCD AT24C1024
main.cpp@2:354ca389e975, 2016-11-06 (annotated)
- Committer:
- ryood
- Date:
- Sun Nov 06 23:25:33 2016 +0000
- Revision:
- 2:354ca389e975
- Parent:
- 1:46e088b12083
- Child:
- 3:97e89dad2a44
Impl. bpm
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ryood | 0:f3abbd84d67f | 1 | /* |
ryood | 0:f3abbd84d67f | 2 | * main.cpp |
ryood | 0:f3abbd84d67f | 3 | * BaseMachineUIController Test |
ryood | 0:f3abbd84d67f | 4 | * |
ryood | 0:f3abbd84d67f | 5 | * mbed Rev 121 / mbed-rtos Rev 117 |
ryood | 0:f3abbd84d67f | 6 | * |
ryood | 0:f3abbd84d67f | 7 | * 2016.11.06 Created |
ryood | 0:f3abbd84d67f | 8 | * |
ryood | 0:f3abbd84d67f | 9 | */ |
ryood | 0:f3abbd84d67f | 10 | |
ryood | 0:f3abbd84d67f | 11 | #include "mbed.h" |
ryood | 0:f3abbd84d67f | 12 | #include "rtos.h" |
ryood | 0:f3abbd84d67f | 13 | |
ryood | 0:f3abbd84d67f | 14 | #define UART_TRACE (0) |
ryood | 0:f3abbd84d67f | 15 | #include "BaseMachineUIController.h" |
ryood | 0:f3abbd84d67f | 16 | |
ryood | 2:354ca389e975 | 17 | const int samplingRate = 1; |
ryood | 2:354ca389e975 | 18 | |
ryood | 0:f3abbd84d67f | 19 | BaseMachineUIController UIController; |
ryood | 0:f3abbd84d67f | 20 | |
ryood | 0:f3abbd84d67f | 21 | uint8_t step = 0; |
ryood | 0:f3abbd84d67f | 22 | int isStepChanged = false; |
ryood | 0:f3abbd84d67f | 23 | bool isRunning = false; |
ryood | 0:f3abbd84d67f | 24 | |
ryood | 2:354ca389e975 | 25 | int bpm = 125; |
ryood | 2:354ca389e975 | 26 | uint32_t tick = 0; |
ryood | 2:354ca389e975 | 27 | int noteLen; |
ryood | 2:354ca389e975 | 28 | |
ryood | 2:354ca389e975 | 29 | void setNoteLen() |
ryood | 2:354ca389e975 | 30 | { |
ryood | 2:354ca389e975 | 31 | noteLen = 15000 / ((long)bpm * samplingRate); |
ryood | 2:354ca389e975 | 32 | } |
ryood | 2:354ca389e975 | 33 | |
ryood | 0:f3abbd84d67f | 34 | void stepUp(void const* args) |
ryood | 0:f3abbd84d67f | 35 | { |
ryood | 2:354ca389e975 | 36 | tick++; |
ryood | 2:354ca389e975 | 37 | if (tick == noteLen) { |
ryood | 2:354ca389e975 | 38 | tick = 0; |
ryood | 2:354ca389e975 | 39 | if (isRunning) { |
ryood | 2:354ca389e975 | 40 | step++; |
ryood | 2:354ca389e975 | 41 | if (step == 16) |
ryood | 2:354ca389e975 | 42 | { |
ryood | 2:354ca389e975 | 43 | step = 0; |
ryood | 2:354ca389e975 | 44 | } |
ryood | 2:354ca389e975 | 45 | UIController.setPlayingStep(step); |
ryood | 0:f3abbd84d67f | 46 | } |
ryood | 0:f3abbd84d67f | 47 | } |
ryood | 0:f3abbd84d67f | 48 | } |
ryood | 0:f3abbd84d67f | 49 | |
ryood | 0:f3abbd84d67f | 50 | int main() |
ryood | 0:f3abbd84d67f | 51 | { |
ryood | 0:f3abbd84d67f | 52 | #if (UART_TRACE) |
ryood | 0:f3abbd84d67f | 53 | printf("*** BaseMachineUIController Test***\r\n"); |
ryood | 0:f3abbd84d67f | 54 | #endif |
ryood | 0:f3abbd84d67f | 55 | |
ryood | 0:f3abbd84d67f | 56 | UIController.init(); |
ryood | 0:f3abbd84d67f | 57 | |
ryood | 0:f3abbd84d67f | 58 | RtosTimer stepTimer(stepUp, osTimerPeriodic, (void *)0); |
ryood | 2:354ca389e975 | 59 | stepTimer.start(samplingRate); |
ryood | 2:354ca389e975 | 60 | setNoteLen(); |
ryood | 0:f3abbd84d67f | 61 | |
ryood | 0:f3abbd84d67f | 62 | while (true) |
ryood | 0:f3abbd84d67f | 63 | { |
ryood | 0:f3abbd84d67f | 64 | UIController.update(); |
ryood | 0:f3abbd84d67f | 65 | |
ryood | 1:46e088b12083 | 66 | isRunning = UIController.getIsRunning(); |
ryood | 2:354ca389e975 | 67 | bpm = UIController.getBpm(); |
ryood | 2:354ca389e975 | 68 | setNoteLen(); |
ryood | 1:46e088b12083 | 69 | |
ryood | 0:f3abbd84d67f | 70 | OscillatorParam osc; |
ryood | 0:f3abbd84d67f | 71 | UIController.getOscillatorParam(&osc); |
ryood | 0:f3abbd84d67f | 72 | |
ryood | 0:f3abbd84d67f | 73 | FilterParam flt; |
ryood | 0:f3abbd84d67f | 74 | UIController.getFilterParam(&flt); |
ryood | 0:f3abbd84d67f | 75 | |
ryood | 0:f3abbd84d67f | 76 | EnvelopeParam env; |
ryood | 0:f3abbd84d67f | 77 | UIController.getEnvelopeParam(&env); |
ryood | 0:f3abbd84d67f | 78 | |
ryood | 1:46e088b12083 | 79 | int accentLevel = UIController.getAccentLevel(); |
ryood | 0:f3abbd84d67f | 80 | |
ryood | 0:f3abbd84d67f | 81 | #if (UART_TRACE) |
ryood | 0:f3abbd84d67f | 82 | printf("%d %d ", osc.waveShape, osc.pulseWidth); |
ryood | 0:f3abbd84d67f | 83 | printf("%d %d ", flt.cutoff, flt.resonance); |
ryood | 0:f3abbd84d67f | 84 | printf("%d %d %d %d %d ", env.level, env.length, env.duration, env.decay, env.sustain); |
ryood | 1:46e088b12083 | 85 | printf("%d %d\r\n", bpm, accentLevel); |
ryood | 0:f3abbd84d67f | 86 | #endif |
ryood | 0:f3abbd84d67f | 87 | } |
ryood | 0:f3abbd84d67f | 88 | } |