From 395e5e7a4ad9f7792ac9c22bc08a5106acf4bf6f Mon Sep 17 00:00:00 2001 From: --global <--global> Date: Sat, 13 May 2023 00:33:52 +0300 Subject: [PATCH] Started working on bpm modulation (a lot of stuff broken atm) --- software/GToE/GToE.ino | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/software/GToE/GToE.ino b/software/GToE/GToE.ino index ed84724..c5e9582 100644 --- a/software/GToE/GToE.ino +++ b/software/GToE/GToE.ino @@ -145,7 +145,7 @@ void loop() { display.clearDisplay(); display.display(); } - if (masterClockMode == 2) { + if (masterClockMode == 2 || bpmModulationRange != 0) { calculateBPMTiming(); } } @@ -282,8 +282,15 @@ void calculateCycles() { } void calculateBPMTiming() { + int mod; if (masterClockMode == 0) { - pulsePeriod = 60000 / (bpm * PPQN); + if (bpmModulationRange != 0 && !bpmModulationChannel) { + mod = map (a1Input, 0, 1023, 0, bpmModulationRange*10); + } else if (bpmModulationRange != 0 && bpmModulationChannel) { + mod = map (a2Input, 0, 1023, 0, bpmModulationRange*10); + } + pulsePeriod = 60000 / ((bpm + mod) * PPQN); + } else if (masterClockMode == 2) { //for external beat clock pulsePeriod = (newExtPulseTime - lastExtPulseTime) / PPQN; } @@ -358,7 +365,12 @@ void checkInputs() { masterClockMode = 0; } } else if (displayTab == 0 && insideTab == 2 && masterClockMode == 0) { //bpm modulation - bpmModulationRange = bpmModulationRange + change; + if (bpmModulationRange < 9) { + bpmModulationRange = bpmModulationRange + change; + } else { + bpmModulationChannel = !bpmModulationChannel; + bpmModulationRange = 1; + } } else if (displayTab != 0 && insideTab == 0) { //subdivision channels[displayTab-1].mode = channels[displayTab-1].mode - change; if (channels[displayTab-1].mode == 65535) { //65535 is 0-1 for unsigned vars