RPN messages are not supported in any library that uses the Kontakt 1.5 player. The possibility exists in the new K2 player but it requires some workaround scripting to supply this function since it is not directly supported in the new player either.
What I'm trying to accomplish is polyphonic MIDI synthesis using arbitrary pitches (not restricted to the chromatic scale) within a single MIDI channel. Is there perhaps another way to do this that I haven't thought of, one that does not require RPN?
I can give you some possibilities but I'm not sure if they will suit your (specialized) needs. The one predictable pitch modification feature in the present player is ordinary pitchbend. This is restricted to two range choices: +/-2 semitones in the standard version for most instruments and +/-12 semitones for the notation version. The standard version may give you relatively subtle control over small changes in pitch (for a given PB value) and the notation version would give you control over larger shifts (at the loss of subtle control.) But you are still restricted to 2 fixed choices. Generating pitch adjustments would be a matter of supplying a PB value for each note.
The full version of Kontakt opens up more choices. If you load the instruments into the full version you can set the PB range range as needed, but range is still not available as a parameter for automation. There is also a feature for alternate tunings that I have not explored - don't know if that would prove of value to you in the things you are doing.
Yes, my needs are specialized. I'm trying to write, for my own use, a basic MIDI sequencer that will permit individual notes to be entered and played at arbitrary pitches, subject only to range limitations.
Because my S/W assembles the sequence of MIDI commands, I am able to incorporate whatever tweaking may be needed, so that's not a problem.
But solutions from the pitch-bend family seem unsatisfactory because PB commands affect all notes currently playing on a channel, don't they? That means I would have control over the channel pitch, but not over the frequencies of individual notes.
OK, now I think I understand what you are trying to do. The only single MIDI channel solution that occurs to me would be to take the shift into account for all notes being played. By that I mean: If you have 4 notes playing at the same time and you only want one of them to move up by a half step then you would need to insert PB data sufficient to raise the pitch by a single semitone but you would also need to alter the written pitch of the other three notes downward by a half step so that they remained at the original pitch upon receiving the PB data. This would only work for notes that are re-triggered. It would not work in the case of the three notes sustaining while the single moving note changed pitch. So, this would probably be of limited value to you.
I think you are stuck with the idea of separating your voices by MIDI channel to get the flexibility you need. I should mention that you needn't have separate tracks to accomplish this. A single track set to send on all MIDI channels can contain note and controller data on different channels simultaneously while the score or piano roll displays all note data together. The data must be differentiated by MIDI channel but the location can be shared.
Yes, that's the way it looks to me too. And of course, one advantage to the softsynth solution is that multiple instances can be running, so that the one-note-per-channel limitation is not quite so stringent as it might appear.
Still, it introduces complications that I'd prefer to avoid. Given that none of the Kontakt-based approaches will work, are you (or is anyone else who may be reading this) aware of another line of soundfont players that do have the RPN capability?