OSC-CV Converter

Dependencies:   Bonjour OSCReceiver TextLCD mbed mbed-rpc BurstSPI DebouncedInterrupt FastIO MIDI OSC OSCtoCV ClockControl

OSC to CV Converter

http://gtbts.tumblr.com/post/125663817741/osc-to-cv-converter-ver2-mbed-osctocv

/media/uploads/casiotone401/tumblr_nsg7y4pkfg1qlle9fo1_540.png

Revision:
25:6b29d7e631cb
Parent:
24:99045b0f7c4a
Child:
26:8673d5254f7d
--- a/main.cpp	Thu Jan 28 11:40:56 2016 +0000
+++ b/main.cpp	Thu Jan 28 14:12:25 2016 +0000
@@ -49,7 +49,7 @@
 //-------------------------------------------------------------
 // Macros
 
-#define MODE_CLB            0        // Calibration (for VCO Tuning)
+#define MODE_CLB           0        // Calibration (for VCO Tuning)
 #define MODE_OSC            1        // Mode OSCtoCV 
 #define MODE_SEQ            2        // Mode Shift Sequencer
 #define MODE_185            3        // Mode M185 Sequencer
@@ -149,14 +149,15 @@
                 
             case MODE_SEQ: // Shift Sequencer mode
             
-                ShiftCVSeq(GateSeq(bpm, N16TH, GATE1, (gCtrl[6] * 5), NON_INVERT, GATESOUT_OFF, SYNC_ON), gCtrlSW[0], CV_CHANNEL8);
                 GateSeq(bpm, N8TH, GATE2, 3, NON_INVERT, GATESOUT_ON, SYNC_OFF);
                 
                 if (gCtrlSW[3])
                 {   // euclid sequencer auto offset
-                    EuclideanSeq(GateSeq(bpm, N16TH, SUBGATE, 3, NON_INVERT, GATESOUT_OFF, SYNC_OFF), gCtrlSW[0], GATESOUT_OFF, true);
+                    ShiftCVSeq(EuclideanSeq(GateSeq(bpm, N16TH, SUBGATE, (gCtrl[6] * 5), NON_INVERT, GATESOUT_OFF, SYNC_OFF), gCtrlSW[0], GATESOUT_OFF, true), gCtrlSW[0], CV_CHANNEL8);
                 
                 } else {
+                    
+                    ShiftCVSeq(GateSeq(bpm, N16TH, GATE1, (gCtrl[6] * 5), NON_INVERT, GATESOUT_OFF, SYNC_ON), gCtrlSW[0], CV_CHANNEL8);
                     // beats sequencer
                     BeatsSeq(GateSeq(bpm, N16TH, SUBGATE, 3, NON_INVERT, GATESOUT_OFF, SYNC_OFF), gCtrlSW[0], GATESOUT_OFF);
                 }
@@ -164,29 +165,32 @@
                 
             case MODE_185: // M185 Sequencer mode
             
-                M185Seq(GateSeq(bpm, N16TH, GATE1, (gCtrl[6] * 5), NON_INVERT, GATESOUT_OFF, SYNC_ON), gCtrlSW[0], CV_CHANNEL8);
+                
                 GateSeq(bpm, N8TH, GATE2, 3, NON_INVERT, GATESOUT_ON, SYNC_OFF);
                 
                 if (gCtrlSW[3])
                 {   // euclid sequencer auto offset
-                    EuclideanSeq(GateSeq(bpm, N16TH, SUBGATE, 3, NON_INVERT, GATESOUT_OFF, SYNC_OFF), gCtrlSW[0], GATESOUT_OFF, true);
-                
+                    M185Seq(EuclideanSeq(GateSeq(bpm, N16TH, SUBGATE, (gCtrl[6] * 5), NON_INVERT, GATESOUT_OFF, SYNC_OFF), gCtrlSW[0], GATESOUT_OFF, true), gCtrlSW[0], CV_CHANNEL8);
+                    
                 } else {
+                    
+                    M185Seq(GateSeq(bpm, N16TH, GATE1, (gCtrl[6] * 5), NON_INVERT, GATESOUT_OFF, SYNC_ON), gCtrlSW[0], CV_CHANNEL8);
                     // beats sequencer
                     BeatsSeq(GateSeq(bpm, N16TH, SUBGATE, 3, NON_INVERT, GATESOUT_OFF, SYNC_OFF), gCtrlSW[0], GATESOUT_OFF);
                 }
                 break;
             
             case MODE_437: // F437 sequencer
-                // random gated shift sequence ch1 ~ ch6 
-                PolyCVSeq(GateSeq(bpm, N16TH, GATE1, (gCtrl[6] * 5), NON_INVERT, GATESOUT_OFF, SYNC_ON), gCtrlSW[0]);
+                
                 GateSeq(bpm, N8TH, GATE2, 3, NON_INVERT, GATESOUT_ON, SYNC_OFF);
                 
                 if (gCtrlSW[3])
                 {   // euclid sequencer auto offset
-                    EuclideanSeq(GateSeq(bpm, N16TH, SUBGATE, 3, NON_INVERT, GATESOUT_OFF, SYNC_OFF), gCtrlSW[0], GATESOUT_OFF, true);
-                
+                    PolyCVSeq(EuclideanSeq(GateSeq(bpm, N16TH, SUBGATE, (gCtrl[6] * 5), NON_INVERT, GATESOUT_OFF, SYNC_OFF), gCtrlSW[0], GATESOUT_OFF, true), gCtrlSW[0]);
+                    
                 } else {
+                    
+                    PolyCVSeq(GateSeq(bpm, N16TH, GATE1, (gCtrl[6] * 5), NON_INVERT, GATESOUT_OFF, SYNC_ON), gCtrlSW[0]);
                     // beats sequencer
                     BeatsSeq(GateSeq(bpm, N16TH, SUBGATE, 3, NON_INVERT, GATESOUT_OFF, SYNC_OFF), gCtrlSW[0], GATESOUT_OFF);
                 }
@@ -300,7 +304,7 @@
     wait(0.5);
     
     gPoller.attach_us(&NetPoll, POLLING_INTERVAL);  // Ticker Polling
-    wait(1.7);
+    wait(0.5);
 }
 
 //-------------------------------------------------------------