Meta-Modal Bridge (mmb) abstraction: MIDI Mode+Key Filter, to escape/prevent false notes
The metamodealbridge is a "midi-to-midi filter" abstraction.
Such that, once a mode (1 of 42) and key (i.e. "A","C", etc) are selected ONLY notes within that mode+key combination are allowed to pass through and be played by the receiving synth, etc..
Thus, it resides (inside PD) between your midi-in and your midi-out and acts to escape all out-of-mode+key (i.e."false"/"bad") notes.
So, if you play a "false" note, which is NOT in the selected mode+key, nothing happens. But if you play a correct note, i.e. in the mode+key, the note passes through and is played by the synth.
It does, however, have an "include blue" toggle, that when pressed allows the "false" (blue) notes to pass through, i.e. be play, ex. in the case of Jazz or more exotic forms of music.
It is polyphonic and abstracted. So multiple copies of it can be used within a patch (to set up multiple modes+keys, split keyboard arrangements, etc.), where each copy is identified by a creation argument(#).
The MMB has been envisioned as a tool (among other things) to help teach beginning piano students, those interested in learning the various (or just more) mode+keys, those interested in learning how all of the mode+keys relate to one another, as well as, a helper for users who want to always play in the correct key, i.e. never play a false note.
It is our sincere hope you will find it useful, educational, and/or inspiring.
Peace through (Love of) Music.
Phillip Andrew Ostler and Scott Vanya
Conceived by Phillip Andrew Ostler
Implemented by Scott Vanya
License: GNU Public License 3.0.
one creation argument: the index/identifier of the abstraction (a number);
three inlets: pitch, velocity, channel (left to right);
ten outlets (left-to-right): pitch, velocity, channel, mode index, mode name, key name, key index, include blue(0|1), and notein(off(0)|on(1));
the mode index, key index, and include blue can be sent messages via the identifier, ie. MODEIDX-$1, KEYIDX-$1, and INCLBLUE-$1.
The 42 included modes (in this order) are: aeolian, locrian, ionian, dorian, phrygian, lydian, mixo-lydian, algerian, arabian, balinese, byzantine, chinese, double_harmonic, egyptian, enigmatic, ethiopian, gypsy, hawain, hindu, hirajoshi, hungarian_gypsy, hungarian_major, hungarian_minor, iwato, japanese, javanese, jewish, kumoi, leading_whole_tone, lydian_minor, major_locrien, major_phrygian, mohammedan, mongolian, neo_major, neo_minor, oriental, overtone, pelog, pessian, spanish, spanish_8_tone
Please, let me know if you find errors, inconsistencies, or need help using the patch. I will be happy to address those issues as soon as I am able.