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
Diff: main.cpp
- Revision:
- 13:3f42e451a8d3
- Parent:
- 11:ef7610cd7ebe
- Child:
- 14:977f3c5a4b4e
--- a/main.cpp Sun Apr 14 00:54:10 2013 +0000 +++ b/main.cpp Sun Mar 09 04:52:52 2014 +0000 @@ -124,7 +124,7 @@ // Silentway Calibration Data Mapping // http://www.expert-sleepers.co.uk/silentway.html -// Chromatic Scale +// Chromatic Scale const float calibMap1[QUAN_RES1] = { 0.00559238, 0.01324014, 0.02088790, 0.02853566, 0.03618342, 0.04383118, 0.05147894, 0.05912671, 0.06677447, 0.07442223, @@ -151,7 +151,7 @@ 0.85279000, 0.86631656, 0.88188213, 0.90110368, 0.92032516 }; -// Major Scale +// Major Scale const float calibMap2[QUAN_RES2] = { 0.01324014, 0.02853566, 0.03618342, 0.05147894, 0.06677447, 0.08206999, 0.08971775, 0.10501327, 0.12030879, 0.12775089, @@ -169,7 +169,7 @@ 0.88188213, 0.92032516 }; -// Dorian Scale +// Dorian Scale const float calibMap3[QUAN_RES3] = { 0.01324014, 0.02853566, 0.04383118, 0.05147894, 0.06677447, 0.08206999, 0.08971775, 0.10501327, 0.12030879, 0.13486665, @@ -187,7 +187,7 @@ 0.90110368, 0.92032516 }; -// 5th +// 5th const float calibMap4[QUAN_RES4] = { 0.01324014, 0.06677447, 0.12030879, 0.17044549, 0.22025587, 0.27019811, 0.32033587, 0.37047359, 0.42069295, 0.47092041, @@ -195,7 +195,7 @@ 0.79868382, 0.90110368 }; -// Whole tone +// Whole tone const float calibMap5[QUAN_RES5] = { 0.01324014, 0.02853566, 0.04383118, 0.05912671, 0.07442223, 0.08971775, 0.10501327, 0.12030879, 0.13486665, 0.14909819, @@ -234,7 +234,7 @@ // Variables for Control -float gCtrl[2]; +volatile float gCtrl[2]; volatile bool gCtrlSW[4] = {false}; //------------------------------------------------------------- @@ -315,19 +315,19 @@ { case MODE_SEQ: - bpm = (gCtrl[0] * 300 + 10); // Set BPM (gCtrl[0]) + bpm = (gCtrl[0] * 300 + 10); // Set BPM (gCtrl[0]) if(abs(bpm - _bpm) > 1) { UpdateGate(bpm, NRESET, GATEALL, 3, 0); // Reset (if bpm change) _bpm = bpm; - } else if (gCtrlSW[0]) { // Stop (gCtrlSW[0]) + } else if (gCtrlSW[0]) { // Stop (gCtrlSW[0]) bpm = 0; } - if(!gCtrlSW[2] && !gCtrlSW[3]) // Sequencer Mode1 + if(!gCtrlSW[2] && !gCtrlSW[3]) // Sequencer Mode1 { SeqCV((UpdateGate(bpm, N16TH, GATE1, 3, 0))); // Shift Timming 16th note UpdateGate(bpm, N8TH, GATE2, 3, 0); @@ -336,7 +336,7 @@ break; - } else if (gCtrlSW[2] && !gCtrlSW[3]) { // Sequencer Mode2 (if gCtrlSW[2] ON) + } else if (gCtrlSW[2] && !gCtrlSW[3]) { // Sequencer Mode2 (if gCtrlSW[2] ON) SeqCV((UpdateGate(bpm, N16TH, GATE1, 3, 0))); // Do shift ch 1~5 SeqCV((UpdateGate(bpm, N4TH, GATE2, 3, 0))); // Do shift ch 6 @@ -345,8 +345,8 @@ break; - } else if (gCtrlSW[3]) { // Sequencer Mode3 (if gCtrlSW[3] ON) - // (ch6,7,8, short loop) + } else if (gCtrlSW[3]) { // Sequencer Mode3 (if gCtrlSW[3] ON) + // (ch6,7,8, short loop) SeqCV((UpdateGate(bpm, N16TH, GATE1, 3, 0))); // Do shift ch 1~5 SeqCV((UpdateGate(bpm, N8TH, GATE2, 3, 0))); // Do shift ch 6 SeqCV((UpdateGate(bpm, NDOT8, GATE3, 3, 0))); // Do shift ch 7 @@ -460,9 +460,9 @@ int time = gTimer.read_us(); bar = (60.0f / bpm) * 4000000; - sync24 = (bar / 4) / 24; // sync24 not tested + sync24 = (bar / 4) / 24; // sync24 not tested - switch(beat) // Calculate Note values + switch(beat) // Calculate Note values { case NDOT2: @@ -802,7 +802,7 @@ break; } - if(!gCtrlSW[2] && !gCtrlSW[3]) // Sequencer Mode1 + if(!gCtrlSW[2] && !gCtrlSW[3]) // Sequencer Mode1 { for(i = 1; i < 8; ++i) { @@ -860,7 +860,7 @@ cnt1 = cnt2 = cnt3 = 0; - } else if (gCtrlSW[3]) { // Sequencer Mode3 + } else if (gCtrlSW[3]) { // Sequencer Mode3 for(i = 1; i < 5; ++i) { @@ -937,7 +937,7 @@ } } - if(gCtrlSW[1]) // Update loop buffer (if gCtrlSW[1] ON) + if(gCtrlSW[1]) // Update loop buffer (if gCtrlSW[1] ON) { cnt1 = cnt2 = cnt3 = 0; } @@ -1098,17 +1098,15 @@ //------------------------------------------------------------- // Handller receive UDP Packet -//------------------------------------------------------------- -// Handller receive UDP Packet - inline void onUDPSocketEvent(UDPSocketEvent e) { union OSCarg msg[10]; char buf[768] = {0}; - int num, recvlen, len; - unsigned int absv; - int messagepos = 0; - bool bundleflag = false; + int num, len; + volatile int recvlen; + volatile unsigned int absv; + volatile int messagepos = 0; + volatile bool bundleflag = false; Host host;