Chance setting

This commit is contained in:
Dejvino
2026-03-07 21:31:17 +01:00
parent 99add4e2ac
commit f34f960358
7 changed files with 70 additions and 2 deletions
+21
View File
@@ -22,6 +22,9 @@ void Persistence::saveSequence(bool quiet) {
int intensities[NUM_TRACKS];
for(int i=0; i<NUM_TRACKS; i++) intensities[i] = (int)trackIntensity[i];
EEPROM.put(addr, intensities); addr += sizeof(intensities);
int chances[NUM_TRACKS];
for(int i=0; i<NUM_TRACKS; i++) chances[i] = (int)trackChance[i];
EEPROM.put(addr, chances); addr += sizeof(chances);
int steps[NUM_TRACKS];
for(int i=0; i<NUM_TRACKS; i++) steps[i] = numSteps[i];
EEPROM.put(addr, steps); addr += sizeof(steps);
@@ -79,6 +82,13 @@ bool Persistence::loadSequence() {
if (trackIntensity[i] < 1) trackIntensity[i] = 1;
if (trackIntensity[i] > 10) trackIntensity[i] = 10;
}
int chances[NUM_TRACKS];
EEPROM.get(addr, chances); addr += sizeof(chances);
for(int i=0; i<NUM_TRACKS; i++) {
trackChance[i] = chances[i];
if (trackChance[i] < 0) trackChance[i] = 0;
if (trackChance[i] > 100) trackChance[i] = 100;
}
int steps[NUM_TRACKS];
EEPROM.get(addr, steps); addr += sizeof(steps);
for(int i=0; i<NUM_TRACKS; i++) {
@@ -129,6 +139,9 @@ void Persistence::savePatch(int bank, int slot) {
int intensities[NUM_TRACKS];
for(int i=0; i<NUM_TRACKS; i++) intensities[i] = trackIntensity[i];
EEPROM.put(addr, intensities); addr += sizeof(intensities);
int chances[NUM_TRACKS];
for(int i=0; i<NUM_TRACKS; i++) chances[i] = trackChance[i];
EEPROM.put(addr, chances); addr += sizeof(chances);
midi.unlock();
EEPROM.commit();
ui.showMessage("SAVED!");
@@ -173,6 +186,13 @@ void Persistence::loadPatch(int bank, int slot, Step (*scratchBuffer)[NUM_STEPS]
if (trackIntensity[i] < 1) trackIntensity[i] = 1;
if (trackIntensity[i] > 10) trackIntensity[i] = 10;
}
int chances[NUM_TRACKS];
EEPROM.get(addr, chances); addr += sizeof(chances);
for(int i=0; i<NUM_TRACKS; i++) {
trackChance[i] = chances[i];
if (trackChance[i] < 0) trackChance[i] = 0;
if (trackChance[i] > 100) trackChance[i] = 100;
}
if (isPlaying) {
SequenceGenerator::generateSequenceData(currentThemeIndex, nextSequence);
@@ -189,6 +209,7 @@ void Persistence::factoryReset() {
ui.showMessage("RESETTING...");
for(int i=0; i<NUM_TRACKS; i++) {
trackIntensity[i] = 10;
trackChance[i] = 100;
}
uint32_t magic = 0;
EEPROM.put(0, magic);