# rotator # map incoming MIDI notes to rotating chords
IF LOAD ASS L0 = 4 # number of rotating intervals ASS K0 = 7 # fixed interval (positive) ASS K1 = 8 5 7 1 # rotating intervals (negative) ASS G0 = 1 # current rotation SET LB0 G0 +D END
# blanket convert all note on+vel0 to off 9X XX 00 = 8X
MAT I0 = M0 & E0
IF I0 == 80 # is this a note on/off IF M0 >= 90 # if this is note on ASS GM1 = G0 # remember rotation for this note SET LB1 M1 +D MAT G0 = G0 + 1 # increment rotation IF G0 > L0 ASS G0 = 1 END SET LB0 G0 +D END MAT J0 = M1 + K0 # fixed interval ASS J1 = GM1 MAT J1 = M1 - KJ1 # rotating interval SND M0 J0 M2 SND M0 J1 M2 END
Last Edit: Jan 7, 2019 10:46:15 GMT by nic: indents!
No problem, I will move this thread to the Boutique for you - thanks!
Aaah, indents always get wiped with the boards unless you paste into a 'code' (the button in the edit screen with a big C in it). I have become really fast at re-indenting code manually, so I will do it for your code too.
Michael Brecker pioneered this technique for using monophonic (one-note-at-a-time) input from an EWI breath controller to drive an alternating sequence of chords, producing an effect somewhat similar to a harmonizer, but with some potentially dissonant variation mixed in. Not random, but often unexpected.
There are a few ways that a similar rotator effect can be accomplished on an iPad, including at least one app that was designed specifically for that purpose, but I've had trouble getting that one to work reliably for me. With StreamByter, now I have a rotator that loads/saves cohesively as part of an AUM scene, and I can freely tweak the script to add more layers or make other adjustments to how the rotation works.