>> What are some ways of telling each of the synths to "round" to the >> nearest note in a diatonic scale? > > think of all the separation points between what is rounded to one note, > and what is rounded to another note. > > for a standard Do major scale, if all your inputs are between 60 and 72, > you can split with this : > > [moses 61]/[moses 63]/[moses 64.5]/[moses 66]/[moses 68]/[moses 70]/[moses > 71.5] > > because those are the averages of any two consecutive notes of the scale. > then you connect each left-outlet to the note that you want that range of > values to become. > > there are further tricks for supporting multiple octaves without having to > make a longer chain of [moses]. > > as a shortcut to make many [moses], there is [range] : > > [range 61 63 64.5 66 68 70 71.5] > > in the GridFlow library. >
You can also take your values mod 12 and use those numbers to read indices in a 12-member table you've populated with a mapping onto your favorite scale. If your values are floats you might round them first. You can also keep track of the whole-number quotient of your value divided by 12 so that you can get your specific octave back as well -- this gives you the equivalent of an "octave-pitch-class" notation, like the kind you might find in csound. Matt _______________________________________________ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list