OSCtoCV Library
Diff: OSCtoCV_Sequencer.cpp
- Revision:
- 5:abe335652add
- Parent:
- 4:fe335dc8d53d
- Child:
- 6:7fb15b1b5459
--- a/OSCtoCV_Sequencer.cpp Tue Feb 16 11:31:12 2016 +0000 +++ b/OSCtoCV_Sequencer.cpp Thu Feb 18 13:26:48 2016 +0000 @@ -16,7 +16,7 @@ static bool stepFoward = false; static bool _reset = false; static uint8_t currentStep; - static int _resetCount, resetCount; + static int resetCount; static uint8_t gateMode; static uint8_t _gateMode[16]; static uint8_t ch; @@ -98,6 +98,8 @@ break; } + CheckAnalogMode(); + if (!gCtrlSW[4]) { jitter = 0; @@ -191,16 +193,7 @@ resetCount = gCtrl[4] * 15; } - if (_resetCount != resetCount) - { - sendMes.setTopAddress(RESET_COUNTER_ADDRESS); - sendMes.setArgs("i", (resetCount + 1)); - osc.sendOsc(&sendMes); - - sendMes.setTopAddress("/ctrl5"); - sendMes.setArgs("f", gCtrl[4]); - osc.sendOsc(&sendMes); - } + CheckResetCount(resetCount, SHIFTSEQ); if (currentStep > resetCount) // reset { @@ -262,7 +255,7 @@ static bool _reset = false; static uint8_t currentStep; static int stepCount; - static int _resetCount, resetCount; + static int resetCount; static uint8_t gateMode; static uint8_t _gateMode[8]; static uint8_t _pulseCount[8]; @@ -346,6 +339,8 @@ break; } + CheckAnalogMode(); + if (!gCtrlSW[4]) { jitter = 0; @@ -455,16 +450,7 @@ resetCount = gCtrl[5] * 7; } - if (_resetCount != resetCount) - { - sendMes.setTopAddress(RESET185_COUNTER_ADDRESS); - sendMes.setArgs("i", (resetCount + 1)); - osc.sendOsc(&sendMes); - - sendMes.setTopAddress("/ctrl6"); - sendMes.setArgs("f", gCtrl[5]); - osc.sendOsc(&sendMes); - } + CheckResetCount(resetCount, M185SEQ); if (currentStep > resetCount) // reset { @@ -518,7 +504,7 @@ static bool _reset = false; static uint8_t currentStep; static int stepCount; - static int _resetCount, resetCount; + static int resetCount; static uint8_t gateMode; static uint8_t _gateMode[8]; static uint8_t _pulseCount[8]; @@ -602,6 +588,8 @@ break; } + CheckAnalogMode(); + if (!gCtrlSW[4]) { jitter = 0; @@ -711,16 +699,7 @@ resetCount = gCtrl[5] * 7; } - if (_resetCount != resetCount) - { - sendMes.setTopAddress(RESET185_COUNTER_ADDRESS); - sendMes.setArgs("i", (resetCount + 1)); - osc.sendOsc(&sendMes); - - sendMes.setTopAddress("/ctrl6"); - sendMes.setArgs("f", gCtrl[5]); - osc.sendOsc(&sendMes); - } + CheckResetCount(resetCount, M185SEQ); if (currentStep > resetCount) // reset { @@ -763,7 +742,7 @@ static bool _reset = false; static uint8_t currentStep; static int stepCount; - static int _resetCount, resetCount; + static int resetCount; static uint8_t _pulseCount[8]; static uint8_t ch; static float decay[8] = {1}; @@ -862,16 +841,7 @@ resetCount = gCtrl[7] * 15; } - if (_resetCount != resetCount) - { - sendMes.setTopAddress(BEATS_COUNTER_ADDRESS); - sendMes.setArgs("i", (resetCount + 1)); - osc.sendOsc(&sendMes); - - sendMes.setTopAddress("/ctrl8"); - sendMes.setArgs("f", gCtrl[7]); - osc.sendOsc(&sendMes); - } + CheckResetCount(resetCount, BEATSSEQ); if (currentStep > resetCount) // reset { @@ -951,6 +921,87 @@ } //------------------------------------------------------------- +// check reset count & send osc + +void CheckResetCount(uint8_t resetCount, uint8_t mode) +{ + static uint8_t _resetCountShift, _resetCount185, _resetCountBeats; + + switch (mode) + { + case SHIFTSEQ: + + if (_resetCountShift != resetCount) + { + sendMes.setTopAddress(RESET_COUNTER_ADDRESS); + sendMes.setArgs("i", (resetCount + 1)); + osc.sendOsc(&sendMes); + + sendMes.setTopAddress("/ctrl5"); + sendMes.setArgs("f", gCtrl[4]); + osc.sendOsc(&sendMes); + + _resetCountShift = resetCount; + } + break; + + case M185SEQ: + + if (_resetCount185 != resetCount) + { + sendMes.setTopAddress(RESET185_COUNTER_ADDRESS); + sendMes.setArgs("i", (resetCount + 1)); + osc.sendOsc(&sendMes); + + sendMes.setTopAddress("/ctrl6"); + sendMes.setArgs("f", gCtrl[5]); + osc.sendOsc(&sendMes); + + _resetCount185 = resetCount; + } + break; + + case BEATSSEQ: + + if (_resetCountBeats != resetCount) + { + sendMes.setTopAddress(BEATS_COUNTER_ADDRESS); + sendMes.setArgs("i", (resetCount + 1)); + osc.sendOsc(&sendMes); + + sendMes.setTopAddress("/ctrl8"); + sendMes.setArgs("f", gCtrl[7]); + osc.sendOsc(&sendMes); + + _resetCountBeats = resetCount; + } + break; + + default: + break; + } + +} + +//------------------------------------------------------------- +// check analog mode & send osc + +inline void CheckAnalogMode() +{ + static bool _analogMode; + + if (_analogMode != gCtrlSW[4]) + { + sendMes.setTopAddress("/ctrlsw5"); + sendMes.setArgs("i", gCtrlSW[4]); + osc.sendOsc(&sendMes); + + _analogMode = gCtrlSW[4]; + } + +} + +//------------------------------------------------------------- // Send Sequencer Status to touchOSC void SendCtrlState(uint8_t step, uint8_t gateMode, uint8_t stepCount, uint8_t mode)