Intensity setting
This commit is contained in:
+7
-4
@@ -6,14 +6,17 @@
|
||||
|
||||
class LuckyStrategy : public MelodyStrategy {
|
||||
public:
|
||||
void generate(Step (*sequence)[NUM_STEPS], int track, 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, int intensity) override {
|
||||
randomSeed(seed);
|
||||
if (numScaleNotes == 0) return;
|
||||
|
||||
int noteChance = intensity * 9; // 10% to 90%
|
||||
int accentChance = intensity * 6; // 6% to 60%
|
||||
|
||||
for (int i = 0; i < numSteps; i++) {
|
||||
int octave = random(3) + 3; // 3, 4, 5 (Base is 4)
|
||||
sequence[track][i].note = (random(100) < 50) ? (12 * octave + scaleNotes[random(numScaleNotes)]) : -1;
|
||||
sequence[track][i].accent = (random(100) < 30);
|
||||
sequence[track][i].note = (random(100) < noteChance) ? (12 * octave + scaleNotes[random(numScaleNotes)]) : -1;
|
||||
sequence[track][i].accent = (random(100) < accentChance);
|
||||
sequence[track][i].tie = (random(100) < 20);
|
||||
}
|
||||
randomSeed(micros());
|
||||
@@ -34,7 +37,7 @@ public:
|
||||
sortArray(scaleNotes, numScaleNotes);
|
||||
}
|
||||
|
||||
void mutate(Step (*sequence)[NUM_STEPS], int track, int numSteps, int* scaleNotes, int numScaleNotes) override {
|
||||
void mutate(Step (*sequence)[NUM_STEPS], int track, int numSteps, int* scaleNotes, int numScaleNotes, int intensity) override {
|
||||
// Mutate 1 or 2 steps
|
||||
int count = random(1, 3);
|
||||
for (int i = 0; i < count; i++) {
|
||||
|
||||
Reference in New Issue
Block a user