Midi Poliphony in a Single Channel

Hi Ardoers,

I’m starting my journey sending Midi Tracks off Ardour and into other softwares; how are overlapping MIDI notes dispatched over a single channel?

Are they dispatched simultaneously and should I “unpack them from the other side”? Or is there a way from Ardour to convert a single channel into different ones?

Notes, in MIDI, are represented as note on and note off events.

So 2 overlapping notes will appear in the MIDI event stream as two note on events (with different note values) followed by two, corresponding, note off events…

How this is interpreted by the receiving MIDI instrument, depends on the instrument capabilities.

Whether they are dispatched simultaneously depends on whether the notes are played at the same time or not. Of course, If they are played at the same time, one of the events will be transmitted very slightly before the other, but the difference in timing will be undetectable in practice, assuming the instrument is polyphonic.



1 Like

It’s not entirely clear what you are asking. Ardour doesn’t do anything with MIDI that other MIDI software and hardware doesn’t do. Overlapping notes with different pitches are just ordinary MIDI and are not a thing to need to think about.

Overlapping (identical) notes (on the same channel) are a problem for MIDI. The specification was originally designed around keyboard devices, where it is not possible to generate overlapping notes. With the rise of MIDI sequencers/DAWs, it is trivial to create overlaps either intentionally or by accident.

For this reason, Ardour has several options for how to handle overlaps created during editing. Since you may want different options in different session, they can be found in the Session > Properties dialog:


Note, however, that this has nothing to do with MIDI recorded from pretty much any device I am aware of, where it is not possible to generate overlapping identical notes.

1 Like

Thanks. Let’s say I connected Ardour to Pure Data, where I want to receive MIDI notes to control various oscillators.

How can I dispatch the “simultaneous notes” (from a MIDI single channel) to different oscillators? I’m understanding I should manage it outside Ardour; I will also try with a plugin named MIDI Split I found, by Philip Coelho.

That’s a Pure Data question really, not an ardour one.

I think the bottom line is that it should Just Work.

Polyphony on a single channel is built into the MIDI standard, as long as you aren’t doing anything weird.

You can do up to 128 note polyphony on a channel. Of course, there may be limitations on the instrument which limit it to less than that.

I see nothing in your question that suggests you are doing anything weird, but perhaps you could expand on your question if you have a specific use-case.

But if it is conventional polyphony, then you should be fine.

The thing to consider is that MIDI polyphony works on a note basis. There are 128 notes in MIDI, hence 128 note polyphony. But this assumes that you want the polyphony between different notes, not between overlapping notes of the same note value.

It would theoretically be possible within a MIDI stream, but the way it would be treated by an instrument recieving that stream is probably not defined.

But, as Paul suggests, that’s not normally what people want to do and not something that any conventional MIDI instrument does.

If you want multiple instruments, put them in separate channels.



1 Like

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.