I am using ctlout in order to control stereo panning of the midi mechanism.
My problem is that I wish to play a long note on the left speaker alone,
and then – while that note is still playing – play another different note on the right speaker alone.
Executing ctlout transfers all midi notes that are currently playing to whatever panning you tell it to. Is there a way for a note to "keep its original panning", i.e. the panning that was set when it started playing?
I would really like any possible tips… like using channels (stuff I’m not quite acquainted with). If the midi protocol simply does not allow it – what approach should be taken ?
If you are using an external MIDI player, CC10 (which is usually panning), is a channel message and applies to all voices produced on that channel.
MIDI players generally provide 16 channels for different "instrument" sounds. Given you only appear to need a couple of discretely located sounds, the easiest fix is to use a seperate MIDI channel for each panned note/voice you require. If you want to pan the same MIDI instrument to different locations (as opposed to different types of sounds), ensure all the other channel settings (program change, volume # etc…) are identical for each panned voice.