started working on CV pattern modulation
This commit is contained in:
@ -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]) {
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user