How to send MIDI Program Change messages with SoundFlow
Hello!
I am trying to get Soundflow to replace Lemur on my tablet to control Spitfire articulations via UACC. It seems that in this version of SF we can assign most MIDI but not program changes. Is there a way this can be done, or maybe I need to script this?
I need a control change on CC 32 at various levels of scale for each articulation.

- Christian Scheuer @chrscheuer2020-10-21 23:09:28.339Z
Hi Erik,
Just to clarify - you're talking about having a SoundFlow script send program changes - not receive them - right?
- EErik Groysman @Erik_Groysman
Yes!
Christian Scheuer @chrscheuer2020-10-21 23:14:42.476Z
Cool :)
To send a program change message out on "SoundFlow Custom Midi Output 1" on channel 1 and set to program 15, do this:
sf.midi.send({ outputNum: 1, midiBytes: [0xC0, 15], });
The 0xC0 is the status byte that indicates the type of message and the channel. Channels are 0-based in the binary MIDI format, so 0xC0 is MIDI channel 1, whereas 0xC1 would be MIDI channel 2. The C part means it's a program change message.
Christian Scheuer @chrscheuer2020-10-21 23:15:35.743Z
I often use this as a reference to understand how to construct the midiBytes array:
https://ccrma.stanford.edu/~craig/articles/linuxmidi/misc/essenmidi.html
- EIn reply toErik_Groysman⬆:Erik Groysman @Erik_Groysman
Thank you! I will check this out.
I hope this can be added to standard MIDI functionality in the future for the folks that aren't super handy with scripting!