List processing help

noiseandrones's icon

Hi there,

I am currently building a microtonal MIDI patch. So far, the tuning system works, but I have a problem.

MIDI is of course, note-based, and therefore microtonality is based on a pitch shift of a given note.

That's fine for widely spaced microtonal chords, but for close relationships - 110, 112, 115 Hz etc. it doesn't work and these pitches need to be sent to a different instance of a virtual instrument - I can't find a way of bending to instances of the same note at the same time.

So, what I'm looking to do is route duplicate MIDI note names to different instances of a virtual instrument, but I can't find an elegant way of doing it.

I'm also attaching the basic microtonality 'engine'. The idea is to have microtonal playback based on a list of input frequencies, not based on tuning an instrument to a scale.

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

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

noiseandrones's icon

(Or, if anyone has a microtonal MIDI patch that can handle polyphonies on the same pitch class that I can reverse engineer to accept a frequency list, please do let me know! ;)

Source Audio's icon

use poly~ target based instead of midi note based.
All is explained in poly~ help file.

Iain Duncan's icon

While not an answer to your specific question, this video of how I did some microtonal exploration might be interesting and have some useful ideas. https://www.youtube.com/watch?v=2L7edwef-5k&t=9s&ab_channel=MusicwithLisp

Bascially I take route of going from midi into some non-midi way of communicating with instruments. I have previously made pitch bend mappers using the same tools though.

HTH!

noiseandrones's icon

Hi all,

Thanks so much for getting back - this is very helpful.

I opted for something like this in the end - it works pretty well.

I figured that I probably wouldn't have more than five close beating frequencies at the same time, so I set it up so that the lists are split into groups of 5, with the first in *each* group going to one instrument, the second of each to the second, and so on. As long as I'm careful not to have more than five close frequencies, it works!

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