Open jtackaberry opened 5 years ago
Not a professional programmer here and I only understand 20% of what's written above, but let me just throw an uninformed idea at a 6 year old problem and you can ignore it if it does not make sense.
Would it solve the group issue (reaper only changsing the last program change on a channel) if there was a "set articualtion" button that if pressed generates a ranodm program number and synthesizes all at this point active group's MIDI output events into one program change event?
Or otherwise, a list of all possible combinations of all the groups (to cover all possible articulations) could be generated with increasing program numbers when the scirpt is compiled. Then the plug-in could find the program change event that represents this particular combination of all groups and insert it.
It's a known issue that Reaper will only chase the most recent program change event on a given channel. The articulation group is a Reaticulate construct that Reaper doesn't know anything about. Consequently, you can have multiple articulations active on a given channel but only the latest one will be chased.
It may be possible to implement custom chasing of program changes efficiently with this design.
On the Lua side:
On the JSFX side: