[sdiy] Midi programming

thescum at surfree.com thescum at surfree.com
Mon Mar 18 20:14:00 CET 2002


> So like, do I have this right: a given midi thing only
> has 16 channels. A poly kbd with multiple keys down
> assigns each key to a channel? Max keys down is 16?
> Not that I have 16 fingers; just makin' sure I got it
> down.

You're a little sideways with that info.  Logically, a MIDI channel is an address on the network.  It doesn't directly relate to polyphony.  For a simple example, lets assume several devices in a MIDI chain:

ControllerKeyboard[n]--->DrumMachine[1]--->PianoModule[2]--->Monosynth[3]

The number in brackets is the device's assigned MIDI channel.  The controller gets n because we can change it to control the different machines...channel 1 plays drums, channel 2 piano, channel 3 gets the synth.  We're merely telling the controller to assign that destination address to the messages it sends.  When we pound the keys, all of the notes will have the same channel.  With this sort of setup, you could have up to 16 different instruments, each with their own address in the network.  If we added a 17th instrument, it would have to duplicate an existing address, and the 2 instruments would then play in unison.

While we're set on an address, we can hold as many keys as we care to, and they'll all get the same channel number; each will contain the value of the key that's been pressed, and how hard we've pressed it.  MIDI allows a max of 127 keys per channel.

It's up to the downstream units to sort out what those concurrent notes really mean.  The piano module might be able to play all 127 at once, but the monosynth might chose to play the highest or lowest or oldest or newest note, and ignore all the others, because it simply lacks the hardware to deal with any more notes.

The fun stuff begins when one device can transmit on multiple channels at once.  For instance, splitting the keyboard to control the monosynth from below C4 (those keys send on channel 3), and the piano from above(those keys send channel 2)...or using a computer sequencer that can handle all 16 channels at once.

It's very common these days for synths to also be multitimbral, where within a single unit, you can assign different instruments to the different channels.  There are a variety of schemes to try and arbitrate the note-playing resources between the many channels...they'll often try to share.

Byron Jacquot





More information about the Synth-diy mailing list