< Back to IRCAM Forum

Defining a 'default' MIDI channel for separate voices -> then sending to POLY?

Hello all, very new to OM so sorry for the possibly silly question - several days of cursing and searching the documentation and forum hasn’t helped!

I’m currently experimenting with generating some algorithmic voices in several VOICE objects, then sending them all to POLY to be played back together and find nice combinations. Eventually this will be percussion music, so what I’d like to do is have each VOICE object with a different midi sound, and then those midi sounds retained when sending to the POLY object.

The problem is: I can only seem to change the midi channel of a VOICE object manually. This locks the object. Whenever reevaluating a VOICE object, the manually chosen midi channel for playback defaults back to an annoying MIDI piano middle C, and I have to repeat the process again every time I want to listen to a new rhythmic combination.

As far as I can see, the VOICE object has no chan/lchan channel for defining the midi channel. There must be some other simple technique I’m not aware of. Thank you!

Hi there, I saw that somebody had replied to this thread, but maybe the reply has been deleted? How strange… Looking forward to getting some help on this!

If this helps, here is a silly example of what I’m attempting to do.

As you can see, I have a generative subpatch doing some rhythm tree stuff into 4 different voice objects. The voice objects are piped into poly through list. Thus whenever I hit V on poly, I get a new combination that I can listen to (or by individually V’ing a single voice, then locking it and V’ing poly). The problem is that the default MIDI playback is just that droning middle C. I’d like to assign a different midi program (channel?) to each voice object, or force poly to play back each staff/voice with a different midi sound, to hear the difference. But even if defining midi channels manually, all score objects default back to the piano middle C when re-evaluating. (As you can see, I tried to get some differentiation just by defining the midic of each voice object, but this is not a great solution.)

Help appreciated!

Dear Jredmond,

Yes, i did reply and retrieved it. There is a way which implies some extra code, meaning i have to prepare it for you. Here it is european tine, (2:30 in the morning). If you have some patience, i will send this tomorrow.
Anyhow, your problem is far from being a newbie problem. Thank you for pointing it out.


1 Like

Hi K,

Ah, I see. Yes, of course I’m happy to wait for your help. Thanks for taking the time. I’m surprised that there’s no lchan inlet on the voice and poly objects (as there is on chord, note, etc…) , it’d make life a little easier for those who rely on polyphonic experimentation, I suppose? Thanks again~


Here it is from my personal library. It is temporary. It needs some perfection, since i think i will put this in Om’s kernel for everybody to use.

In the patch below, You have one way to deal with channels without changing the poly at the end (just for an example use):

Then comes the extra function (changechan) which will change your channels into whatever channels you want. (the third input indicates the nth voices in the poly, starting at zero for the first channel).

Ok so here first is the lisp code, to be put in the init folder inside your OM 7.0.app (for mac), or in the openmusic application folder (linux/win):
changechan.lisp (4.7 KB)

Here is the example patch:

perc.omp (62.8 KB)

Now if you need some extra help, please, let’s say in 8 hours :slight_smile:




Hi Karim, thanks so much for the help, sleep well!

Changechan is really useful! Thanks a million.