Midi Note Scrambler
Hey--I'm thinking about/looking for a MaxMSP gadget that scrambles midi notes from a midi keyboard, or rather reassigns new pitches to them. For instance the application could assign all the notes of my midi keyboard to just the notes of, say A Dorian, and the keys of the keyboard would play only the notes of that mode. A might no longer be A either, if one did not want it to be. Or it could scramble the chromatic scale, moving the pitches to new keys (G would be Db, E would be A, etc). Does something like this exist already? Apologies in advance for being a newb. The function would be to defamiliarize the interface of the standard keyboard and potentially inspire melodies that might not have otherwise suggested themselves to a seasoned keyboard player. Thanks in advance for your thoughts on the existence of such a "midi note scrambler" or the construction of one.
I have a fairly comprehensive scale quantizer system available, called "Scale Master." It can be found here: http://xfade.com/max/
The [coll] object and some maths is definitely your friend here. Take a look at the patch below which assigns random output notes for each input. You can quite easily modify this so the keys are forced to certain scales.
For constraining to scales, try VJ Manzo's Modal Object Library for Max - very useful!
Thank you so much, Chris, Luke, and Dan. Those modal libraries will I think be quite helpful. I'm still trying to make some sense of the patch you posted, Luke. It certainly works just as you explained, but I'm having trouble figuring out how and where to integrate something like VJ Manzo's "modal_filter" and "modal_change" which seems to be appropriate for the kind of modal implementation I mentioned. I'm just having trouble knowing how to put it all together, as I'm still learning the behaviors of some of the requisite objects. I don't want to sound like I'm asking someone to just "do it for me", but would you guys be able to offer any more specific guidance? Thanks again for your help with this stuff.
Here's an example where you can input the note steps of an octave of any scale (the examples are major and natural minor) and have it populate the [coll] automatically, its not too difficult to add a note offset so it doesn't default to C. If you get stuck with any particular object then open the helpfile and reference page and read as much as you can. Perhaps even try piecing the patch together yourself from the bottom up so you can see what each object/stage does.
Here's an example where you can input the note steps of an octave of any scale (the examples are major and natural minor) and have it populate the [coll] automatically, its not too difficult to add a note offset so it doesn't default to C. If you get stuck with any particular object then open the helpfile and reference page and read as much as you can. Perhaps even try piecing the patch together yourself from the bottom up so you can see what each object/stage does.
Yes, modal object library takes a little bit of time to wrap one's head around. Here's essentially how I use it, in a stripped down patch (also screenshot at the end). You will have to install MOL before using. Basically, choose your scale with the umenu dropdown, then you can vary the original note, and see the effect it has on the scaled note...
Yes, modal object library takes a little bit of time to wrap one's head around. Here's essentially how I use it, in a stripped down patch (also screenshot at the end). You will have to install MOL before using. Basically, choose your scale with the umenu dropdown, then you can vary the original note, and see the effect it has on the scaled note...
My Scale_Master library is also pretty easy to use, FWIW. Once things are installed properly, there are only a couple of abstractions to know about.
Here's an picture of a patch that uses it in a couple of simple ways: