Thanks for responding.
The MIDI Controller is Apple MainStage hosted on another computer using Apple CoreMIDI over Apple’s implementation of MIDI Networking. VDMX is on another Apple Mac and has the proper MIDI device (Apple CoreMIDI) select and is able to receive MIDI as shown by the VDMMX “Comm Display” plugin.
The VDMX Comm Display shows, “PgmChange, ch.15 pgm.1” as desired.
Further, Snoize MIDI Monitor shows the proper source, Message type, channel and data: “Program, 15, CE 01”
So I’m pretty sure MIDI is working exactly as expected. VDMX is also learning and working with other MIDI data, such as ‘Notes’.
So this bring us to the Workspace Inspector Preset list. When a preset is created, selected and triggered, the UI Inspector is available and provides a Boolean Data receiver. On “Detect MIDI” and sending the Pgm Chg MIDI to VDMX, the Boolean receiver learns “/MIDI/ch. 15/pgm.chg.” (copy/pasted from the boolean receiver). Now it is important to know that I’ve also updated the preset after learning, because changing presets will lose changes unless updated.
So so far so good - and this also works identically for MIDI notes, which are learned as, “/MIDI/ch. 15/note [2]”.
The problem is that subsequent Pgm Chg messages do not trigger the associated preset as would be expected. If I map those Pgm Chg messages to a MIDI Note (I also have a MIDI translator on the VDMX host), things work.
That is VDMX will respond to either Note or Control messages so long as those control messages (lik pgm chg) are converted to a note before VDMX gets it.
If I take a look at the Data Source Mapper, MIDI is listed, Ch 15 is listed and “Pgm. Chg” is listed but shows “???”. When MIDI notes are used, the Data Source Mapper also shows, “note[1] ???” but they do work.
As I think about this, I haven’t started with a new project yet - maybe something got corrupted. Also, this is for VDMX 5 in case there is a new version. I bought it a few years back, maybe I should also updated it.
Edit: b8805, 8809 is latest; a new project also behaves exactly the same: Ignores pgm change, but notes work as expected.
Edit: I think I see what is going on. As suspected in my OP, the boolean receiver toggles on input. But the input for program changes is 0x01, 0x02 and so forth. What is the threshold for ‘1’ in a range of 0 to 1?
Edit: I can sort of get it to work. So MIDI Pgm Chg. is a byte per MIDI spec, “Program Change: The Program Change message is used to specify the type of instrument which should be used to play sounds on a given Channel. This message needs only one data byte which specifies the new program number.” So the ranges are 0x00 to 0x0f. But I have no clue what the scaling is for the VDMX recevier. Googling to try and figure out rise/fall thresholds.
Any thoughts appreciated!