updated offset related things
This commit is contained in:
@ -106,6 +106,7 @@ void setup() {
|
||||
saveState();
|
||||
EEPROM.write(1023, 'K');
|
||||
}
|
||||
calculateCycles();
|
||||
|
||||
pinMode(ENC_BTN_PIN, INPUT_PULLUP);
|
||||
pinMode(START_STOP_BTN_PIN, INPUT_PULLUP);
|
||||
@ -117,8 +118,6 @@ void setup() {
|
||||
pinMode(outsPins[i], OUTPUT);
|
||||
}
|
||||
|
||||
calculateCycles();
|
||||
|
||||
display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
|
||||
|
||||
//Splash screen
|
||||
@ -188,12 +187,8 @@ void sendTriggers() {
|
||||
if (pulseCount == 0) {
|
||||
for (int i = 0; i<6; i++) {
|
||||
if (playingModes[i] != clockModes[channels[i].mode]) {
|
||||
playingModes[i] = clockModes[channels[i].mode];
|
||||
if (playingModes[i] > 0) {
|
||||
channelPulsesPerCycle[i] = (playingModes[i] * PPQN) - 1;
|
||||
} else {
|
||||
channelPulsesPerCycle[i] = (PPQN / abs(playingModes[i])) - 1;
|
||||
}
|
||||
//playingModes[i] = clockModes[channels[i].mode];
|
||||
calculateCycles();
|
||||
channelPulseCount[i] = 0;
|
||||
}
|
||||
}
|
||||
@ -216,6 +211,7 @@ void sendTriggers() {
|
||||
|
||||
void calculateCycles() {
|
||||
for (int i = 0; i<6; i++) {
|
||||
playingModes[i] = clockModes[channels[i].mode];
|
||||
if (playingModes[i] > 0) {
|
||||
channelPulsesPerCycle[i] = (playingModes[i] * PPQN) - 1;
|
||||
} else {
|
||||
@ -302,17 +298,22 @@ void checkInputs() {
|
||||
bpm = MINBPM;
|
||||
}
|
||||
updateTiming();
|
||||
} else if (displayTab != 0 && insideTab == 0) {
|
||||
} 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
|
||||
channels[displayTab-1].mode = 0;
|
||||
} else if (channels[displayTab-1].mode > (sizeof(clockModes)/sizeof(int)) - 1) {
|
||||
channels[displayTab-1].mode = (sizeof(clockModes)/sizeof(int)) - 1;
|
||||
}
|
||||
}
|
||||
if (!isPlaying) {
|
||||
calculateCycles();
|
||||
}
|
||||
} else if (displayTab != 0 && insideTab == 1) { //random
|
||||
channels[displayTab-1].random = channels[displayTab-1].random + change;
|
||||
if (channels[displayTab-1].random > 9 || channels[displayTab-1].random < 0) {
|
||||
if (channels[displayTab-1].random == 65535) {
|
||||
channels[displayTab-1].random = 0;
|
||||
} else if (channels[displayTab-1].random > 9) {
|
||||
channels[displayTab-1].random = 9;
|
||||
}
|
||||
} else if (displayTab != 0 && insideTab == 2) { //modulation
|
||||
channels[displayTab-1].modulationRange = channels[displayTab-1].modulationRange + change;
|
||||
@ -322,10 +323,10 @@ void checkInputs() {
|
||||
}
|
||||
} else if (displayTab != 0 && insideTab == 3) { //offset
|
||||
channels[displayTab-1].offset = channels[displayTab-1].offset + change;
|
||||
if (channels[displayTab-1].offset >= channelPulsesPerCycle[displayTab-1]) {
|
||||
channels[displayTab-1].offset = channelPulsesPerCycle[displayTab-1];
|
||||
} else if (channels[displayTab-1].offset <= 0 ) {
|
||||
if (channels[displayTab-1].offset == 65535) {
|
||||
channels[displayTab-1].offset = 0;
|
||||
} else if (channels[displayTab-1].offset >= channelPulsesPerCycle[displayTab-1]) {
|
||||
channels[displayTab-1].offset = channelPulsesPerCycle[displayTab-1];
|
||||
}
|
||||
}
|
||||
updateScreen();
|
||||
@ -461,6 +462,8 @@ void updateScreen() {
|
||||
display.setCursor(58,44);
|
||||
display.print(F(" OFT:"));
|
||||
display.print(channels[displayTab-1].offset);
|
||||
display.print(F("/"));
|
||||
display.print(channelPulsesPerCycle[displayTab-1]+1);
|
||||
display.print(F(" "));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user