Hello Guest

Feature request: MIDI Channel forwarding/routing

  • 6 Replies
  • 1671 Views
Feature request: MIDI Channel forwarding/routing
« on: October 05, 2017, 07:30:03 AM »
I am facing some problems with MIDI routing, okay, AUM allows me to route my midi signal to any app, but this isn't that useful when you need to route midi data from a port X to a port Y in a specific channel, imagine the following scenario:

I use 2 midi controllers, the first one (AKAI MPK261) sending midi data through MIDI channel 16 and the another one (a Yamaha CP33) sending through MIDI channel 15... if I route the signal of these 2 controllers to an app like Korg iM1 in multi mode, I need to set the MIDI channels of my parts on iM1 to these respective channels... and this is a very static configuration
I like to have my parts separated by MIDI channels like 1, 2, 3, 4 and so on... and use midi channel forwarding to route MIDI data from those 16 and 15 to my parts on 1,2,3,4(...) channels, this way would be possible to have different combinations after changing to another session on AUM.

My suggestion is to put something like a midi channel selector on destination ports for example "From [Yamaha CP33 - MIDI Channel X] to [iM1 - MIDI Channel Y]", this way midi routing would be even more useful.

Re: Feature request: MIDI Channel forwarding/routing
« Reply #1 on: October 05, 2017, 11:21:11 AM »
So, if I understand it correctly - what you want is a way for AUM to change the MIDI channel of incoming messages before they reach their destination? A remapping of MIDI channels.

One way to solve this would be if your receiving synths can be put in omni mode, accepting midi messages on all channels. Then use the existing MIDI channel filter in AUM to select which source channels will reach the synth. This approach works for synths that can receive direct IAA MIDI, and for AU synth plugins.

Re: Feature request: MIDI Channel forwarding/routing
« Reply #2 on: October 05, 2017, 12:11:53 PM »
I will test that solution when I come home, but not all of my synths can be put in Omni mode, and from what I noticed before my synths will receive midi signal directly from my controller always since some of them cannot receive midi messages exclusively from just one source (AUM), the filter from AUM would be working in "parallel" with the normal connection between my controller and my synth, even if I filter the channels on AUM my synth would receive the messages... And I think that even if this solution work, I would need to be manually changing the midi source channel on my controllers to those midi filtered channels to be able to send midi message to specific channels right? This solution isn't very intuitive, when I'm on stage I like to have everything presetted before and just enjoy my playing while I change to different scenarios.

My approach works fine with midiflow (iOS) and midilayer (PC), I already found some people who do the things this way too, I was impressed with all AUM capabilities when I moved to this app but not having a midi remapping feature makes me feel extremely handicapped :(

Re: Feature request: MIDI Channel forwarding/routing
« Reply #3 on: October 05, 2017, 01:12:35 PM »
If the app has no way of receiving from a specific source (direct IAA/AU midi from the host in this case, bypassing CoreMIDI) and receives from the controller by their own, then you'll never get it to work with any channel re-mapper. Such a MIDI filter must be put between the source and the destination, so if the destination (synth) listens directly to the source (controller), the remapping filter has no effect.

The "modern" way for synths is to receive MIDI directly from the host, and to ignore MIDI channel (omni mode). In those cases, the MIDI channel selector in AUM will do what you're looking for, as far as I can see.

Re: Feature request: MIDI Channel forwarding/routing
« Reply #4 on: October 05, 2017, 05:33:22 PM »
I am facing some problems with MIDI routing, okay, AUM allows me to route my midi signal to any app, but this isn't that useful when you need to route midi data from a port X to a port Y in a specific channel, imagine the following scenario:

I use 2 midi controllers, the first one (AKAI MPK261) sending midi data through MIDI channel 16 and the another one (a Yamaha CP33) sending through MIDI channel 15... if I route the signal of these 2 controllers to an app like Korg iM1 in multi mode, I need to set the MIDI channels of my parts on iM1 to these respective channels... and this is a very static configuration
I like to have my parts separated by MIDI channels like 1, 2, 3, 4 and so on... and use midi channel forwarding to route MIDI data from those 16 and 15 to my parts on 1,2,3,4(...) channels, this way would be possible to have different combinations after changing to another session on AUM.

My suggestion is to put something like a midi channel selector on destination ports for example "From [Yamaha CP33 - MIDI Channel X] to [iM1 - MIDI Channel Y]", this way midi routing would be even more useful.

I've just tested that MIDI filter suggestion and no progress, actually that would work fine if my controllers had the capability to send midi messages in OMNI mode, so I could filter which channels I want to use (that would work like a "remapping" in different way)... you suggested me to use OMNI mode in my synths and I had an idea, I tested it just now, I'm sending some prints to you understand better my case
I set my midi routing like this:

MPK261 (Midi channel 16) --> Midiflow (remapping the midi messages to channel 1,2,3 and so on... this way I would be kinda sending MIDI in OMNI mode) --> AUM MIDI Port (here I can filter which channels I want to use, in this example my signal come from OMNI and go to KORG iM1 channel 1) -- Korg iM1 (my synth where I would load different parts separated by channels)

Got it? the problem is that if I send midi messages from my source (controller) on a 16 channel directly to AUM for example, well, I don't have anything to filter, the channel would be either "ON" or "OFF", if the channel is "ON" then it would be forwarded to my synth on channel 16, but there are a lot of synths that use parts separated by channels like Sampletank or Korg iM1 where I need to use specific channels to each part, with just a filter I cannot do much beyond use only the source channel.

After finding this workaround I noticed that I don't need an extremely complex midi remapper on AUM, but if at least I could remap my source channel to OMNI before the messages pass throught the filter, then I can do a lot of interesting remaps... I think that isn't that difficult to implement this on your code, a mere "Channel X to OMNI" checkbox before the filter would bring us a lot more of possibilities, isn't comfortable to rely on complex external tools to do something that could be easily implemented on AUM.

Sorry for any inconveniences and for some potential bad english, isn't my native language.

The screenshots of my workaround are attached below
« Last Edit: October 05, 2017, 05:35:34 PM by yagolimalins »

Re: Feature request: MIDI Channel forwarding/routing
« Reply #5 on: October 05, 2017, 05:41:39 PM »
Unfortunately, OMNI is not an existing MIDI channel. There are only 1-16. OMNI is a mode in a MIDI receiver, that makes it ignore the channel of incoming MIDI messages. Most AU synth plugins don't even have an option for this, they always receive in OMNI mode (ignoring the channel). In those cases, the channel filter in AUM can be used to select which source channel (15 or 16 in your case) should reach each synth.

There are all kinds of MIDI remappings that might be useful, changing channels is one of them. Unfortunately I think there's a lot of more pressing issues on my TODO list, so this goes pretty far down - especially since there are already 3rd party software that are designed to do MIDI remappings of all kinds.. (MIDI flow)

Re: Feature request: MIDI Channel forwarding/routing
« Reply #6 on: October 05, 2017, 05:58:37 PM »
I noticed that some apps receive in OMNI, I had a bad time with the new Syntronik by IK Multimedia and I found that the midi channel filter works like a charm on AUM in this case.
What a pity! For now I'll be using MIDI flow as a workaround side by side with AUM but I'll be always keeping track for the new features on your app, I hope to see the feature I suggested on AUM someday.

And congratulations for your app, is really awesome!! :D