I have a Prophet 6 I’d be using as a MIDI master controller with the Midihub and would like to change the MIDI channel it is outputting to based on a program change I recall on the Prophet. As far as I understand it, this would have to be done on a per preset basis on the Midihub - a program change sent from the Prophet would map to a preset on the Midihub with the desired channel remapping. Since there are only 8 presets on the Midihub, is it only possible to have 8 channel remappings done this way? If I had more than 8 channels I wanted to control individually based on program change sent from the Prophet (for example, 16 individual hardware synths on their own MIDI channels or 16 individual timbres assigned to their own MIDI channels on a multi-timbral synth module), is there any this would be possible with the Midihub?
You could do this in a single preset using a Transform pipe to convert the Program Change message into a CC message, and use virtual mappings to modify the destination channels on the go.
What are some of the sample changes you want to achieve using Program Change messages? We can help you get started.
I’m pretty new so I don’t really have any conceptual understanding of how virtual mappings work, but could you give a rundown of how this would work? I essentially just want to remap every MIDI message coming out of the Prophet to another channel (with some remappings of certain MIDI CCs to others, but that can be dealt with later). For example, if the Prophet is transmitting everything on channel 1, then a program change X is sent I want all the MIDI messages to be remapped to channel 2. If program change Y is sent, I want all the MIDI messages to be sent on channel 1 again, etc.
Here’s an example how to use Program Change 0 - 15 to select output MIDI channels 1 - 16:
PC to Channel Select.mhp (399 Bytes)
MIDI IN A should be connected to the Prophet output. MIDI OUT A should be connected to the device you want to control.
MIDI IN B should be connected to a device that provides the Program Change 0 - 15 messages.
Or change the ports according to your needs, just keep the Virtual A output there. The CC #0 on Channel 1 messages it receives control the Out Low and Out High parameters of Channel Remap pipe.
Using this as a base you can extend it to do more according to your requirements.
Awesome, this works for me. Took a while for me to figure out that the virtual output was mapped to the channel remap pipe output, thanks Giedrius