Midi learn - omni mode

Hi @giku , this is a niche request but hopefully a really easy one to implement.

Would it be possible to add ‘all’/‘omni’ to the channel dropdown for midi learn?

I was experimenting with GarageBand as a host, which actually does 90% of everything I need, but I discovered that it doesn’t send midi on a specific channel but rather round-robins them.

Comments

  • edited June 2020

    Yes its possible... but wait.. how? You say that Garageband sends messages on random channels? Are you sure? It looks like a huge bug

  • Is this related to MPE? It sends each note on a different channel, does it not?

  • @uncleDave

    Yes and no. The MIDI learn function already recognizes incoming messages on different MIDI channels but an Omni mode would treat all messages equally, basically ignoring the MIDI channel. In 99% of the cases, this would cause more trouble than it would help because many MIDI controllers support sending identical CC and Note messages on different channels.

    Theoretically, MPE expression could be mapped to parameters too but that's a very different story.

  • Right. Just thot this could be what @nervechannel was experiencing. Maybe GB is generating MPE into Drambo. Wouldn't that explain round-robin MIDI channels?

  • Yeah I think it is for MPE. It's easy to reproduce:

    1. New GB project, external instrument, add Drambo
    2. Go into Drambo and start MIDI Learn on something (doesn't matter what)
    3. Hit the -><- button in the GB toolbar to go back to GB keyboard view
    4. Press a note
    5. Go back into Drambo and tap the thing you are MIDI learning to see the mapping, it tells you the channel as well as the note value
    6. -><- back to GB and hit the same note
    7. Go back into Drambo and tap the thing you're learning again, it'll have the same note, but the next MIDI channel
    8. Repeat from 6, it goes up one each time
  • edited June 2020

    Garageband is using MPE, which means Drambo has no way of knowing which channel the next note is going to come in on. It's sequential in your example, but can't be assumed to be.

    As far as I can tell, there's no way to force GarageBand not to do that. So, what would really be needed on the Drambo side is an option to ignore channel for incoming midi. That would hobble the app in other ways, but I suppose if it was optional it wouldn't cause any harm other than the piles of questions and complaints from those who don't realize the other impacts that would have.

  • @number37 I don't think that would be a good idea. If you'd strip the MIDI channels, all incoming controller data would have to be treated equally and you'd get overlaps.

    What do you do if a positive pitch bend on one channel gets overlapped with negative pitch bend from another?

    Same with aftertouch and other expression CC...

    The whole point of MPE is to be able to keep that data separate.

    The only useful way of implementing that, from how I understand it, would be to play the MPE generator monophonically and re-map all channels to one. But doesn't that happen anyway when you reduce the polyphony in GB to one voice?

  • I don’t think it’s a good idea either. Certainly not worth doing just for GarageBand. Virtually any other MPE app or controller lets you switch off MPE. Not GarageBand as far as I can tell.

  • I didn't realise this would open up such a huge can of worms.

    I thought it would be uncontroversial if it was a setting that was disabled by default, and which you could if necessary add a warning to when enabled.

    But, if it's going to cause a bunch of other problems/confusion, don't worry about it @giku :-) Like I said, it's pretty niche, and I for one probably won't be using GB as a host forever.

  • I guess there could be other use cases for it, like if someone's playing a controller and wants to trigger things on specific channels regardless of which channel they're currently playing notes into. But if no-one's actually asked for that, then it's probably not a priority :-)

  • I just noticed that GB has a "Support MPE Controllers" switch in the system Settings app. Would this disable MPE communications fro GB?

  • That does disable MPE communication to GB, but doesn't help this issue. The issue is GB sends MPE to Drambo when it's loaded inside GB. There doesn't seem to be any way to disable that.

Sign In or Register to comment.