Some fixes related to offset
This commit is contained in:
@ -405,9 +405,6 @@ void calculateCycles() {
|
|||||||
} else if (channels[i].mode == 2) { //Sequencer plays 1/16th
|
} else if (channels[i].mode == 2) { //Sequencer plays 1/16th
|
||||||
channelPulsesPerCycle[i] = (PPQN / 4) - 1;
|
channelPulsesPerCycle[i] = (PPQN / 4) - 1;
|
||||||
}
|
}
|
||||||
if (channels[i].offset > channelPulsesPerCycle[i]) {
|
|
||||||
channels[i].offset = channelPulsesPerCycle[i];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -112,8 +112,18 @@ void checkInputs() {
|
|||||||
|| (insideTab && menuItem == 0
|
|| (insideTab && menuItem == 0
|
||||||
&& (menuItemSelected || shiftBtnPushed)))
|
&& (menuItemSelected || shiftBtnPushed)))
|
||||||
&& displayTab != 0
|
&& displayTab != 0
|
||||||
&& channels[displayTab - 1].mode == 0) { //Change Subdiv
|
&& channels[displayTab - 1].mode == 0) { //Change Subdiv and reset offset
|
||||||
channels[displayTab - 1].subDiv = channels[displayTab - 1].subDiv - change;
|
channels[displayTab - 1].subDiv = channels[displayTab - 1].subDiv - change;
|
||||||
|
//channels[displayTab - 1].offset = 0;
|
||||||
|
int PulsesPerStep;
|
||||||
|
if (subDivs[channels[displayTab - 1].subDiv] < 0) {
|
||||||
|
PulsesPerStep = PPQN / subDivs[channels[displayTab - 1].subDiv] * -1 ;
|
||||||
|
} else {
|
||||||
|
PulsesPerStep = subDivs[channels[displayTab - 1].subDiv] * PPQN;
|
||||||
|
}
|
||||||
|
if (channels[displayTab - 1].offset >= PulsesPerStep) {
|
||||||
|
channels[displayTab - 1].offset = PulsesPerStep - 1;
|
||||||
|
}
|
||||||
if (channels[displayTab - 1].subDiv > 100) {
|
if (channels[displayTab - 1].subDiv > 100) {
|
||||||
channels[displayTab - 1].subDiv = 0;
|
channels[displayTab - 1].subDiv = 0;
|
||||||
} if (channels[displayTab - 1].subDiv > (sizeof(subDivs) / sizeof(int)) - 1) {
|
} if (channels[displayTab - 1].subDiv > (sizeof(subDivs) / sizeof(int)) - 1) {
|
||||||
|
|||||||
@ -147,7 +147,13 @@ void updateScreen() {
|
|||||||
valueStr = "SEQ";
|
valueStr = "SEQ";
|
||||||
} else if (i == 2 && channels[displayTab - 1].mode == 0) { //SubDiv and offset
|
} else if (i == 2 && channels[displayTab - 1].mode == 0) { //SubDiv and offset
|
||||||
valueStr = String(channels[displayTab - 1].offset) + "/";
|
valueStr = String(channels[displayTab - 1].offset) + "/";
|
||||||
valueStr = valueStr + String(channelPulsesPerCycle[displayTab-1]+1);
|
int PulsesPerStep;
|
||||||
|
if (subDivs[channels[displayTab - 1].subDiv] < 0) {
|
||||||
|
PulsesPerStep = PPQN / subDivs[channels[displayTab - 1].subDiv] * -1 ;
|
||||||
|
} else {
|
||||||
|
PulsesPerStep = subDivs[channels[displayTab - 1].subDiv] * PPQN;
|
||||||
|
}
|
||||||
|
valueStr = valueStr + String(PulsesPerStep); //(playingModes[i] * PPQN) - 1 //String(channelPulsesPerCycle[displayTab-1]+1)
|
||||||
} else if (i == 2 && channels[displayTab - 1].mode == 1 && subDivs[channels[displayTab - 1].subDiv] > 0) {
|
} else if (i == 2 && channels[displayTab - 1].mode == 1 && subDivs[channels[displayTab - 1].subDiv] > 0) {
|
||||||
valueStr = "/" + String(subDivs[channels[displayTab - 1].subDiv]);
|
valueStr = "/" + String(subDivs[channels[displayTab - 1].subDiv]);
|
||||||
} else if (i == 2 && channels[displayTab - 1].mode == 1 && subDivs[channels[displayTab - 1].subDiv] < 0) {
|
} else if (i == 2 && channels[displayTab - 1].mode == 1 && subDivs[channels[displayTab - 1].subDiv] < 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user