Microtonal keyboard mapping

Grumbling Feathers's icon

Hi I would truly truly appreciate any thoughts on this. I'm remapping my midi keyboard to 4 different EDO's. The attached patch applies a different temperament to each octave (4) on my keyboard and remaps the midi note numbers to the new TET. The principle of the octave is preserved but the value is reassigned so that the second octave is for instance a fifth divided into 12 intervals and the second is a fourth and so on.

I would like this to work polyphonically but am puzzling over how to stop the pitch dropping between octaves i.e. I need octave 1 to begin on C1 and end on C2 and octave 2 to begin on C2 and end on C3

Max Patch
Copy patch and select New From Clipboard in Max.

Roman Thilenius's icon

step 1: dissect the note numbers into two parts, key and octave.

Grumbling Feathers's icon

Thanks Roman that's much better, how would you address the faulty voice allocation?

Grumbling Feathers's icon

Im wondering whether using a coll would be far more elegant? Could a Coll function within a poly~ if I supply it with the reassigned pitches in the form: 36, 100; 37, 150; etc?

Grumbling Feathers's icon

I've attached an alternative which uses coll to process the midi input - this is more flexible but there is no polyphony even though i've simply inserted the coll in the poly~. I've included the harmonic series coll and the "original" patch.

Max Patch
Copy patch and select New From Clipboard in Max.

harmonicseriescoll.txt
text/plain 0.30 KB

Roman Thilenius's icon

normally all things releated to polyphony are the outermost process / first thing to do for your midi events, because if it is realtime midi what is processed, you might need to convert it from serial to vector (list) for processing chords or overlapping notes. *

using poly~ can be a good method for processing data if you know how to use poly~ , because things will be relatively straightforward in a way.

using a named coll in a poly~ patcher should work without restrictions.

i cant open max 6 here now because the monitor cable is too short. :)

*) this might be a matter of taste but i usually write chords as a list and then use list processing to process its members.