started working on CV pattern modulation

This commit is contained in:
2023-08-21 01:21:04 +03:00
parent 3a21d8616e
commit 545581ec32
2 changed files with 52 additions and 16 deletions

View File

@ -280,38 +280,50 @@ void sendTriggers() {
//16th notes for sequencer //16th notes for sequencer
if (sixteenthPulseCount == 0) { if (sixteenthPulseCount == 0) {
bool *currentSeq; bool *currentSeq;
for (byte i = 0; i < 6; i++) { for (byte i = 0; i < 6; i++) {
if (channels[i].seqPattern == 0) {
//pattern modulation
//todo: limit modulation within the current bank (a or b)
int seqMod = 0;
if (channels[i].CV2Target == 3) {
seqMod = 0; map(a2Input, 0, 1023, -8, +8);
} else if (channels[i].CV1Target == 3) {
seqMod = 0; map(a1Input, 0, 1023, -8, +8);
}
byte seqPattern = channels[i].seqPattern + seqMod;
if (seqPattern == 0) {
currentSeq = seqA1; currentSeq = seqA1;
} else if (channels[i].seqPattern == 1) { } else if (seqPattern == 1) {
currentSeq = seqA2; currentSeq = seqA2;
} else if (channels[i].seqPattern == 2) { } else if (seqPattern == 2) {
currentSeq = seqA3; currentSeq = seqA3;
} else if (channels[i].seqPattern == 3) { } else if (seqPattern == 3) {
currentSeq = seqA4; currentSeq = seqA4;
} else if (channels[i].seqPattern == 4) { } else if (seqPattern == 4) {
currentSeq = seqA5; currentSeq = seqA5;
} else if (channels[i].seqPattern == 5) { } else if (seqPattern == 5) {
currentSeq = seqA6; currentSeq = seqA6;
} else if (channels[i].seqPattern == 6) { } else if (seqPattern == 6) {
currentSeq = seqA7; currentSeq = seqA7;
} else if (channels[i].seqPattern == 7) { } else if (seqPattern == 7) {
currentSeq = seqA8; currentSeq = seqA8;
} else if (channels[i].seqPattern == 8) { } else if (seqPattern == 8) {
currentSeq = seqB1; currentSeq = seqB1;
} else if (channels[i].seqPattern == 9) { } else if (seqPattern == 9) {
currentSeq = seqB2; currentSeq = seqB2;
} else if (channels[i].seqPattern == 10) { } else if (seqPattern== 10) {
currentSeq = seqB3; currentSeq = seqB3;
} else if (channels[i].seqPattern == 11) { } else if (seqPattern == 11) {
currentSeq = seqB4; currentSeq = seqB4;
} else if (channels[i].seqPattern == 12) { } else if (seqPattern == 12) {
currentSeq = seqB5; currentSeq = seqB5;
} else if (channels[i].seqPattern == 13) { } else if (seqPattern == 13) {
currentSeq = seqB6; currentSeq = seqB6;
} else if (channels[i].seqPattern == 14) { } else if (seqPattern == 14) {
currentSeq = seqB7; currentSeq = seqB7;
} else if (channels[i].seqPattern == 15) { } else if (seqPattern == 15) {
currentSeq = seqB8; currentSeq = seqB8;
} }
if (channels[i].mode == 2 && channelPulseCount[i] == 0 && currentSeq[currentStep]) { if (channels[i].mode == 2 && channelPulseCount[i] == 0 && currentSeq[currentStep]) {

View File

@ -246,6 +246,30 @@ void checkInputs() {
channels[displayTab - 1].CV2Target = 2; channels[displayTab - 1].CV2Target = 2;
} }
saveState(); saveState();
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == 2) { //CV1 for SEQ
channels[displayTab - 1].CV1Target = channels[displayTab - 1].CV1Target + change;
if (channels[displayTab - 1].CV1Target > 100) {
channels[displayTab - 1].CV1Target = 0;
} else if (channels[displayTab - 1].CV1Target == 1) { //hacky way to limit choices only to 0 and 3, should be a better option
channels[displayTab - 1].CV1Target = 3;
} else if (channels[displayTab - 1].CV1Target == 2) {
channels[displayTab - 1].CV1Target = 0;
} else if (channels[displayTab - 1].CV1Target > 3) {
channels[displayTab - 1].CV1Target = 3;
}
saveState();
} else if (insideTab && (menuItemSelected || shiftBtnPushed) && displayTab != 0 && menuItem == 3 && channels[displayTab - 1].mode == 2) { //CV2 for SEQ
channels[displayTab - 1].CV2Target = channels[displayTab - 1].CV2Target + change;
if (channels[displayTab - 1].CV2Target > 100) {
channels[displayTab - 1].CV2Target = 0;
} else if (channels[displayTab - 1].CV2Target == 1) { //hacky way to limit choices only to 0 and 3, should be a better option
channels[displayTab - 1].CV2Target = 3;
} else if (channels[displayTab - 1].CV2Target == 2) {
channels[displayTab - 1].CV2Target = 0;
} else if (channels[displayTab - 1].CV2Target > 3) {
channels[displayTab - 1].CV2Target = 3;
}
saveState();
} }
} else if (displayScreen == 1 && !isRecording) { } else if (displayScreen == 1 && !isRecording) {
stepNumSelected = stepNumSelected + change; stepNumSelected = stepNumSelected + change;