Song progression

This commit is contained in:
Dejvino
2026-03-07 21:27:08 +01:00
parent bbe6c4ff2f
commit 99add4e2ac
8 changed files with 268 additions and 68 deletions
+9 -6
View File
@@ -26,9 +26,11 @@ void Persistence::saveSequence(bool quiet) {
for(int i=0; i<NUM_TRACKS; i++) steps[i] = numSteps[i];
EEPROM.put(addr, steps); addr += sizeof(steps);
EEPROM.put(addr, currentRoot); addr += sizeof(currentRoot);
EEPROM.put(addr, globalRoot); addr += sizeof(globalRoot);
EEPROM.put(addr, currentProgression); addr += sizeof(currentProgression);
EEPROM.put(addr, progressionOrder); addr += sizeof(progressionOrder);
EEPROM.put(addr, currentScaleType); addr += sizeof(currentScaleType);
EEPROM.put(addr, enabledScaleTypes); addr += sizeof(enabledScaleTypes);
EEPROM.put(addr, numScaleNotes); addr += sizeof(numScaleNotes);
for (int i = 0; i<12; i++) {
EEPROM.put(addr, scaleNotes[i]); addr += sizeof(int);
@@ -86,9 +88,12 @@ bool Persistence::loadSequence() {
}
}
EEPROM.get(addr, currentRoot); addr += sizeof(currentRoot);
EEPROM.get(addr, globalRoot); addr += sizeof(globalRoot);
currentRoot = globalRoot; // Sync
EEPROM.get(addr, currentProgression); addr += sizeof(currentProgression);
EEPROM.get(addr, progressionOrder); addr += sizeof(progressionOrder);
EEPROM.get(addr, currentScaleType); addr += sizeof(currentScaleType);
EEPROM.get(addr, enabledScaleTypes); addr += sizeof(enabledScaleTypes);
EEPROM.get(addr, numScaleNotes); addr += sizeof(numScaleNotes);
if (numScaleNotes < 0 || numScaleNotes > 12) numScaleNotes = 0;
for (int i = 0; i<12; i++) {
@@ -109,7 +114,6 @@ void Persistence::savePatch(int bank, int slot) {
midi.lock();
EEPROM.put(addr, currentRoot); addr += sizeof(currentRoot);
EEPROM.put(addr, currentScaleType); addr += sizeof(currentScaleType);
EEPROM.put(addr, enabledScaleTypes); addr += sizeof(enabledScaleTypes);
EEPROM.put(addr, numScaleNotes); addr += sizeof(numScaleNotes);
for (int i = 0; i < 12; i++) {
EEPROM.put(addr, scaleNotes[i]); addr += sizeof(int);
@@ -137,7 +141,6 @@ void Persistence::loadPatch(int bank, int slot, Step (*scratchBuffer)[NUM_STEPS]
midi.lock();
EEPROM.get(addr, currentRoot); addr += sizeof(currentRoot);
EEPROM.get(addr, currentScaleType); addr += sizeof(currentScaleType);
EEPROM.get(addr, enabledScaleTypes); addr += sizeof(enabledScaleTypes);
EEPROM.get(addr, numScaleNotes); addr += sizeof(numScaleNotes);
if (numScaleNotes < 0 || numScaleNotes > 12) numScaleNotes = 0;
for (int i = 0; i < 12; i++) {