|
Post by Torrontés on Dec 14, 2020 21:24:48 GMT
Hello! First post here.
Consider the following setup: iPad running MidiFire, AUM, and the following synths, all responding on MIDI channel 1: Animoog, Mellotronics M3000 and Korg iPolySix and iM1. Additionally, I have a MIDI controller transmitting on channel 16. I use this channel, because it is a well known quirk of most Korg apps that they will respond to any controller or network MIDI on whatever channels are enabled, regardless of connections explicitly made (or not). OK, now, in MidiFire I connect my controller's input to a channel strip, remap messages to channel 1, and individually connect that to the virtual port of any one of the synths or AUM. So far, so good: the synth that is connected responds, the disconnected ones do not, and nobody steps on anyone's toes. But now, if I connect the channel strip to any of the MidiFire virtual ports instead, and make no other connections (i.e., AUM and all the synth virtual ports are disconnected), AUM and Animoog don't get any MIDI and remain silent, which I would think is the expected behaviour, but M3000 and the Korg apps *still* receive MIDI and play. MidiFire virtual ports are not unique in this regard: if I launch the MFAdapter app and send MIDI to any of its virtual ports, the same happens. I'm totally puzzled and I wonder if someone can throw some light on this. I think I explained the issue pretty clearly, but I'll be happy to give more details or explain anything murky. Thanks in advance.
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Dec 14, 2020 22:55:36 GMT
Hi Torrontés, Sure the KORG apps insist on listening to all MIDI ports, so as soon as you connect channel strip to a MidiFire virtual destination they will start reacting to the events since they are now on channel 1 or am I missing something? I know you said 'and make no other connections' - I presume the external controller is connected to the Channel Strip though? If you mean you can connect a Channel Strip with nothing connected to its input to a MidiFire virtual port and suddenly the KORG apps start singing, then that would be miraculous (or a bug) :-) Regards, Nic.
|
|
|
Post by Torrontés on Dec 14, 2020 23:55:34 GMT
Hi Nic. Thanks for replying. The odd thing is that it happens with the MidiFire virtual port, but not the AUM virtual port, or the other synth's virtual ports. Examples
1 - Controller --> Channel strip ---> iPolySix virtual port everything else running, but virtual ports are disconnected Result: only iPoliSix plays, as expected (or maybe not, if Korg apps are known to be listening to everything -- iM1 stays silent)
2 - Controller --> Channel strip ---> AUM virtual port everything else running, but virtual ports are disconnected Result: only AUM receives MIDI
3 - Controller--> Channel Strip ---> M3000 virtual port everything else running, but virtual ports are disconnected Result: only M3000 plays
4 - Controller--> Channel Strip ---> Animoog virtual port everything else running, but virtual ports are disconnected Result: only Animoog plays
5 - Controller--> Channel strip ---> MidiFire Virtual port everything else running, but virtual ports are disconnected Result: iM1, iPolySix and M3000 play (!!)
What I find baffling is the inconsistency. Let's say the Korg apps (and also the M3000, and who knows, maybe other apps as well) are listening to all CoreMIDI activity -- which does not strike me as the way it should be, but hey, it is what it is. Then how come they don't play when I connect to the Animoog or the AUM port? Or for that matter, when I connect the channel strip to the iM1, only the iM1 plays and not the iPolysix. What is special about the MidiFire virtual port that causes both the iM1 and the iPolysix to start playing as soon as I plug the channel strip into it, while their own virtual ports have nothing plugged into them? If I am unclear, I'd be happy to post some screenshots, if that helps.
Thanks again.
|
|
|
Post by Torrontés on Dec 15, 2020 0:10:05 GMT
I think I understand now what's going on. When MidiFire talks to iM1 or any other of the apps directly, within MidiFire, there are no messages on any "Out" midi port that the Korg apps can pick up and react to. On the other hand, when connecting to the MidiFire virtual port, there is activity on the other end (the "out" side) that is seen by the Korg synths. Does that make sense?
|
|
|
Post by Torrontés on Dec 15, 2020 0:40:52 GMT
The moral of this story is that doing all MIDI handling within MidiFire is probably the best option, even if it means foregoing the convenience of the AUM MIDI matrix. Now that got me thinking about another problem and its solution: how to send MIDI from AUM (which does not have an out port, and therefore does not apear as a MIDI source in MidiFire) without being "seen" by the Korg or other "nosy" apps. It occurs to me that one possible solution is to disguise MIDI messages as sysex, using the StreamByter AUV3 on both ends for wrapping and unwrapping. However, one thing I am not sure of is whether AUM will support sending sysex messages out through the MidiFire virtual ports. What do you think?
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Dec 15, 2020 18:06:41 GMT
Hi Torrontés , Yes, you've got it. The KORG apps are listening to all MIDI sources from their point of view including MidiFire's virtual output, which to them is a source. From MidiFire's point of view it's a destination. With respect to your other idea - I don't think you need to wrap anything (although I think it would work). All messages going from AUM would be to MidiFire's virtual input - nosy apps are not listening to that. Regards, Nic.
|
|
|
Post by Torrontés on Dec 15, 2020 19:30:07 GMT
Yes, I think you are right, although I haven't had a chance to test it. As for the idea of a sysex wrapper, I think I'll try it as a fun exercise... you never know when it could be handy. Thanks again.
|
|