Post by John Tennison on Oct 18, 2017 15:58:45 GMT
I need a module that will convert specific incoming Note-On events on a particular MIDI channel to outgoing Program change commands specified by a lookup table.
I need the lookup table to specify not only the particular program change command that will result from a particular incoming note-on, but also specificy the channel of the outgoing program change command that will be sent, which might be a different channel than that of the incoming Note-On.
For example, although although the module would only be listening to relevant Note-On commands on one MIDI channel, I might want the program change command generated by middle C (C3) to be a value of 64 on channel 7, while having the Program change command generated by C#3 to be a value of 48 on channel 12, etc, etc.
So I'm assuming that my lookup table will need 256 elements - 128 Program Change values, and another 128 elements to specify the particular MIDI channel that a particular program change command is to be sent out on in response to an incoming Note-On.
Note Offs should be blocked.
Nic, as always, thanks for your expertise in helping to create this functionality.
I have a question I’ve wondered about for some time regarding the lookup tables.
You have two here in this instance, using two local var arrays. I don’t understand the ASS values you give hex 10 hex 12. This has always been the case when you’re setting up a table and you use those hex numbers.
Can you explain please what’s happening here regarding the tables and/ or lookup tables in general with this population of values?
I'm having a blast with the Note-On to Program Change table module! I was wanting to use this Stream Byter module to convert a MIDI keyboard controller's note-ons to PC commands to trigger scene changes in MIDIFire, but I'm wondering if this is possible. When I choose MIDIFire as a destination and send it the PC generated by the note played on the MIDI keyboard, MIDIFire does not change to the scene to which the program change I was mapped.
As a test, I sent the same PC from an external hardware source to the iPad running MIDIFire, and it changed scenes perfectly as expected.
So I am wondering if there is something about the current architecture of MIDIFire such that it cannot process a note-on into a PC, which is then used to change its scene.
If so, is there a workaround or some different routing that I should be using? (I could potentially run another instance of MIDIFire on another device, do the Note-On to PC conversionmon that device, and then send that PC to the iPad running MIDIfire for which I want to change scenes.)