BaseMachine Sequencer V2
Dependencies: AT24C1024 Amp AverageAnalogIn BaseMachineUIController Envelope ExioBufferdController FilterController MCP23S17 OscController PinDetect RotaryEncoder Sequence SequencerDisplay mbed-rtos mbed st7567LCD
Fork of BaseMachine by
Diff: main.cpp
- Revision:
- 21:0bbca9e3ba30
- Parent:
- 20:bc7bd7faa8d5
- Child:
- 22:4b8cfeae6623
--- a/main.cpp Mon Feb 13 15:52:24 2017 +0000 +++ b/main.cpp Mon Feb 13 20:15:45 2017 +0000 @@ -16,8 +16,9 @@ #define UART_TRACE (0) #include "BaseMachineCommon.h" #include "BaseMachineUIController.h" -#include "SpiSequenceSender.h" +#include "SequenceSender.h" #include "EnvelopeGenerator.h" +#include "SpiOscController.h" #include "SpiAmpController.h" #include "SpiFilterController.h" @@ -27,7 +28,6 @@ const int samplingPeriod = 1; // ms const int bpm = 120; const int envelopeLength = (60 * 1000 / (bpm * 4)) / samplingPeriod; -const int waveShape = SpiSequenceSender::WAVESHAPE_SQUARE; // Devices // @@ -38,10 +38,12 @@ DigitalOut SpiMasterReset(PB_10, 0); Sequence sequences[SEQUENCE_N]; -SpiSequenceSender SequenceSender(&SpiMaster, D9, sequences, SEQUENCE_N, samplingPeriod, bpm); +SequenceSender SequenceSender(sequences, SEQUENCE_N, samplingPeriod, bpm); Envelope envelope(4095, envelopeLength, envelopeLength*3/4, envelopeLength/2, 2047); EnvelopeGenerator EnvelopeGenerator; + +SpiOscController OscController(&SpiMaster, D9); SpiAmpController AmpController(&SpiMaster, D8, D7); SpiFilterController FilterController(&SpiMaster, D10); @@ -74,6 +76,9 @@ AmpController.outDca(0); } + OscController.setFrequency10(SequenceSender.getFrequency10()); + OscController.outDco(); + FilterController.outDcf(); if (ticks == 0) @@ -97,8 +102,8 @@ OscillatorParam osc; UIController.getOscillatorParam(&osc); - SequenceSender.setWaveShape(osc.waveShape); - SequenceSender.setPulseWidth(osc.pulseWidth << 1); + OscController.setWaveShape(osc.waveShape); + OscController.setPulseWidth(osc.pulseWidth << 1); FilterParam flt; UIController.getFilterParam(&flt); @@ -160,7 +165,6 @@ EnvelopeGenerator.init(envelope); SequenceSender.attachUpdate(&updateTicks); - SequenceSender.setWaveShape(waveShape); //-------------------------------------------------------------------- // Main loop