BaseMachine Sequencer

Dependencies:   Amp AverageAnalogIn BaseMachineUIController Envelope ExioBufferdController FilterController MCP23S17 PinDetect RotaryEncoder Sequence SequencerDisplay mbed-rtos mbed st7567LCD AT24C1024 OscController

Revision:
1:87f7d2e0a123
Parent:
0:1afb83a21a25
Child:
2:6056b9559541
--- a/main.cpp	Wed Nov 09 05:43:04 2016 +0000
+++ b/main.cpp	Wed Nov 09 07:29:20 2016 +0000
@@ -81,8 +81,44 @@
 //------------------------------------------------------------------------
 // Functions
 //------------------------------------------------------------------------
+void setParams()
+{
+    UIController.getSequences(&sequences);
 
+    SequenceSender.setBpm(UIController.getBpm());
 
+    // ToDo: Impl. accentLevel
+
+    OscillatorParam osc;
+    UIController.getOscillatorParam(&osc);
+    SequenceSender.setWaveShape(osc.waveShape);
+    SequenceSender.setPulseWidth(osc.pulseWidth);
+
+    FilterParam flt;
+    UIController.getFilterParam(&flt);
+    FilterController.setCutoff(flt.cutoff << 1);
+    FilterController.setResonance(flt.resonance << 1);
+
+    EnvelopeParam env;
+    UIController.getEnvelopeParam(&env);
+    envelope.setLevel(env.level << 5);
+    //ToDo: Impl. envelope length
+    envelope.setLength(envelopeLength);
+    envelope.setDuration((float)env.duration / 128.0f * envelopeLength);
+    envelope.setDecay((float)env.decay / 128.0f * envelopeLength);
+    envelope.setSustain(env.sustain << 5);
+
+    bool _isRunning = UIController.getIsRunning();
+    if (_isRunning != isRunning) {
+        isRunning = _isRunning;
+        if (isRunning) {
+            SequenceSender.run(playingStep);
+        } else {
+            AmpController.outDca(0);
+            SequenceSender.stop();
+        }
+    }
+}
 
 //------------------------------------------------------------------------
 // Main routine
@@ -129,31 +165,7 @@
     for (;;)
     {
         UIController.update();
-
-        UIController.getSequences(&sequences);
+        setParams();
 
-        SequenceSender.setBpm(UIController.getBpm());
-        
-        // ToDo: Impl. accentLevel
-        
-        OscillatorParam osc;
-        UIController.getOscillatorParam(&osc);
-        SequenceSender.setWaveShape(osc.waveShape);
-        SequenceSender.setPulseWidth(osc.waveShape);
-                
-        bool _isRunning = UIController.getIsRunning();
-        if (_isRunning != isRunning)
-        {
-            isRunning = _isRunning;
-            if (isRunning)
-            {
-                SequenceSender.run(playingStep);
-            }
-            else
-            {
-                AmpController.outDca(0);
-                SequenceSender.stop();
-            }
-        }
     }
 }