Poly mode
This commit is contained in:
+7
-7
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user