Poly mode

This commit is contained in:
Dejvino
2026-02-18 14:50:03 +01:00
parent 4180bb6a12
commit 5ea0070283
9 changed files with 496 additions and 219 deletions
+7 -7
View File
@@ -6,7 +6,7 @@
class ArpStrategy : public MelodyStrategy {
public:
void generate(Step* sequence, int numSteps, int* scaleNotes, int numScaleNotes, int seed) override {
void generate(Step (*sequence)[NUM_STEPS], int track, int numSteps, int* scaleNotes, int numScaleNotes, int seed) override {
randomSeed(seed);
if (numScaleNotes == 0) return;
@@ -86,7 +86,7 @@ public:
// 3. Fill Sequence
for (int i = 0; i < numSteps; i++) {
sequence[i] = arpPattern[i % arpLength];
sequence[track][i] = arpPattern[i % arpLength];
}
randomSeed(micros());
}
@@ -106,14 +106,14 @@ public:
sortArray(scaleNotes, numScaleNotes);
}
void mutate(Step* sequence, int numSteps, int* scaleNotes, int numScaleNotes) override {
void mutate(Step (*sequence)[NUM_STEPS], int track, int numSteps, int* scaleNotes, int numScaleNotes) override {
// Swap two notes
int s1 = random(numSteps);
int s2 = random(numSteps);
if (sequence[s1].note != -1 && sequence[s2].note != -1) {
int8_t temp = sequence[s1].note;
sequence[s1].note = sequence[s2].note;
sequence[s2].note = temp;
if (sequence[track][s1].note != -1 && sequence[track][s2].note != -1) {
int8_t temp = sequence[track][s1].note;
sequence[track][s1].note = sequence[track][s2].note;
sequence[track][s2].note = temp;
}
}