BaseMachine Sequencer
Dependencies: Amp AverageAnalogIn BaseMachineUIController Envelope ExioBufferdController FilterController MCP23S17 PinDetect RotaryEncoder Sequence SequencerDisplay mbed-rtos mbed st7567LCD AT24C1024 OscController
Diff: main.cpp
- Revision:
- 5:e909232c913e
- Parent:
- 2:6056b9559541
- Child:
- 6:fd15586f72ff
--- a/main.cpp Mon Nov 14 11:29:12 2016 +0000 +++ b/main.cpp Thu Nov 17 07:22:56 2016 +0000 @@ -53,29 +53,29 @@ //------------------------------------------------------------------------ void updateTicks(int ticks) { + if (sequences[playingStep].isNoteOn()) + { + uint16_t level = EnvelopeGenerator.update(); + if (!sequences[SequenceSender.getStep()].isAccent()) + { + level = level * 1 / 2; + } + AmpController.outDca(level); + //printf("%d %d %d\r\n", playingStep, ticks, level); + } + else + { + AmpController.outDca(0); + } + + FilterController.outDcf(); + if (ticks == 0) { EnvelopeGenerator.init(envelope); playingStep = SequenceSender.getStep(); UIController.setPlayingStep(playingStep); } - - if (sequences[SequenceSender.getStep()].isNoteOn()) - { - uint16_t level = EnvelopeGenerator.getModLevel(); - if (!sequences[SequenceSender.getStep()].isAccent()) - { - level = level * 1 / 2; - } - AmpController.outDca(level); - } - else - { - AmpController.outDca(0); - } - EnvelopeGenerator.update(); - - FilterController.outDcf(); } //------------------------------------------------------------------------ @@ -109,11 +109,15 @@ envelope.setSustain(env.sustain << 5); bool _isRunning = UIController.getIsRunning(); - if (_isRunning != isRunning) { + if (_isRunning != isRunning) + { isRunning = _isRunning; - if (isRunning) { + if (isRunning) + { SequenceSender.run(playingStep); - } else { + } + else + { AmpController.outDca(0); SequenceSender.stop(); }