Duplicating midi controllers across channels

For synths that do not fully conform to the MPE spec yet, I would like to duplicate midi controllers that come in specifically on midi channel 1 out to all other channels. So, for example, an incoming channel 1 “breath control” message will result in 15 additional breath control messages, one on each of the channels 2 through 16.

Using the midi input transformer, I can do this with one channel at a time only. I tried adding more lines in the “action” section (set to “insert”), but at least when I tried it, I only saw the duplication of the last channel in my list of actions. Am I missing something that will allow all listed actions to do inserts of their own, then just list actions for channels 2 through or 16 in the one insert? It lets me put them in, but the result was just that only one additional control-change message ended up recorded on the track when tested.

If I do it with one transformer in each insert slot, then I am limited to 4 outputs total since there are only 4 slots.

Thanks…

Hi,

I’m not at my DAW right now, so I can’t try it. What happens if you add multiple actions? Like Insert the event at MIDI Channel 2, MIDI Channel 3, etc.?

Or you could make presets of all of these and then make a Macro (or use Post-Process).

Hey Martin. If I add multiple actions, it seems that only the last action actually happens (i.e., I made three insert actions, with only the channel number differing between each (2, 3, 4), and in the midi data I only saw the original channel 1 message and the channel 4 copy). Is it possible there’s a setting that will allow all four inserts to work?

Regarding the macro, I’m not sure I understand how I’d use that. I definitely want this to work “live”, as I perform the midi. Is there still a way to leverage macros in that case?

Thanks…

You could create a midi track for each channel… Put them in a folder to hide them away.

Hi,

  • Add 16 MIDI Tracks.
  • Route them all to the same MIDI Output/Instrument.
  • Set the MIDI Channels to 1-16.
  • At all but the 1st track filter MIDI Notes out by using Input Transformer.
  • Enable Record at all 16 tracks.

Could you post a screenshot showing what you are currently trying to make work. Maybe only showing a few channels instead of all 16, just to make it easier to see.

Hey Raino, sure. Including shots here showing the midi channel settings, the transformer settings, and the list editor result of when I just moved a slider sending “aftterouch” on channel 1. Note that it did “work” for the last item (the one to duplicate the message to channel 3), but it skipped the instruction to duplicate to channel 2. It seems that it may run through the whole list of instructions, then insert an item into the data stream? (Note the “insert” mode set at bottom).
2023-06-14-midi-insert-setting
2023-06-14-recorded-midi-data


2023-06-14-midi-track-settings

OK, that Transformer Preset will never put anything on Channel 2.

Using the Insert function says

  1. Take something ( a Controller Message in this case) that you identify in the top section
  2. Manipulate that item as instructed in the lower section
  3. And finally take this single item and insert it as a new MIDI Event

So in your Preset you are taking a cc message & changing it to Channel 2 and then changing it again to Channel 3 and then Inserting that.

Take what you have and delete the 2nd line in the lower section so this will only generate Events on Channel 2. Then you need to create similar Presets for all the other Channels you want and run them one after the other. Or alternatively you could use a dedicated Track for each MIDI Channel and just use the Track’s Channel setting & skip the Transformer.

What is your end goal in doing this? There might be a simpler approach.

Thanks for confirming, yeah, that’s along the lines of what I thought. The issue of running multiple transformers after one another is that there are only 4 slots, so I’m limited to 4 additional channels. The multiple-tracks solution that you and a couple of others have mentioned I imagine would work, it’s just unwieldy.

This is for MPE use with u-he synths. They currently do not fully support the MPE protocol. They support “multi-channel midi”. What is not supported is the part where control messages on midi channel 1 are considered “global to all notes”. So the only way to fake that behavior is to mult out channel 1 data to all other channels.

Another option is to limit polyphony in order to simplify and shrink how many channels need to be dealt with.

I just wanted to make sure I wasn’t overlooking some solution that was a little more elegant and less limiting.

I did find a “midi mapper” by “midikarval” that looks, from a very old webpage, like it can in fact do this. But it looks very old and they are not responding to email. I don’t think I want to try to purchase a possibly dead product.

Probably any approach will be a bit unwieldy. Personally I’d go with a Track for each Channel. Mostly because it is straightforward and easy to see how it is configured. Stick 'em in a Folder and save that as a Preset.

You could also take a hybrid approach and use 4 Tracks each handling 4 Channels via Transformer.

I wonder if MIDI-OX can do what you want.

Interesting. I installed Midi-Ox and yes, you can easily set up a filter chain that duplicates channel 1 messages across multiple channels. However, unless I misunderstand, I think I need something like Midi Yoke in order to get the Midi Ox output available to Cubase. So, that whole approach (running multiple apps external to Cubase) is getting as unwieldy as any other. Bummer, the Cubase midi transformer plugin comes so close. Unless I’m missing a third-party midi plugin that does this, I’ll just pick my poison among the options discussed above. Thanks for the input all.

Yes you will need to use a Virtual MIDI Cable in order for it (and pretty much any other app external to Cubase to talk to it). For example Metagrid needs a Virtual Cable to talk to Cubase. There are several others beside MIDI Yoke. I mostly use LoopBe.

I’d encourage folks to embrace Virtual MIDI Cables which are super useful in all sorts of contexts. I use them daily - not only for Metagrid but also routing the Chord Track in a more flexible manner than Cubase does natively.