Isolating different MIDI messages?

Hi all,

Is it possible to isolate different types of MIDI messages within Drambo? So, for example, if I’m playing a controller in to Drambo, and it’s simultaneously sending NOTE, CC, and PB messages on the same channel, is there a way to send those messages to different locations?

I’ve found I can isolate NOTE data by converting the signal from MIDI to CV and back again, but it’s not very eloquent and i’m not sure how I’d be able to do this for PB or CC.

Any thoughts?

-j

Comments

  • Other than solutions like you've noted, the best one I've found is to use the free StreamByter AUv3. Its excellent.

  • Thanks for responding! That’s a great idea - I hadn’t even thought of 3rd party solutions. I had picked up Mozaic awhile ago and hadn’t really used it yet so I took a look. Even with my minimal knowledge of coding, it was super easy to get the results I wanted.

    It would be great if there were a Drambo native solution, but until there is, this will do the trick.

    Cheers,

    -j

  • @joelsquare If you don't mind, when you've done it, would you be so kind and share your code?

    I'm sure it will be helpful for others as not everyone can get their heads over coding their own stuff at all.

    Thanks for considering!

  • I managed to isolate Note and CC messages for the 4x Quick Switch patch:

    https://patchstorage.com/4x-quick-switch/

  • For sure! It’s extremely simple:

    ————————

    To isolate Control Changes:



    @OnMidiCC 

     SendMIDIThru

    @End  



    ———————

    To isolate Pitch Bend:



    @OnMidiInput 

     if MIDICommand = 0xE0

      SendMIDIThru // 

    endif

    @End 


    ——————-


    It’s literally that simple! I’m no expert on coding so it’s possible there’s even simpler ways to do it, but for now, this is accomplished what I needed to do. Most complicated part for me was figuring out the correct hex address for pitch-bend. Mozaic defaults to sending NO messages through, so these simply say “ upon receiving a control change message, send that through” and “upon receiving a pitch bend message (0xE0), send that through”

  • Oh, to be clear, this happens within Mozaic by Ruismaker

  • @joelsquare - here's a streambyter version:

    # Block selected midi message types
    # Comment out the message type(s) you want to pass through.
    
    # 8X = XX +B  # NOTE ON
    # 9X = XX +B  # NOTE OFF
    
    BX = XX +B  # CC
    EX = XX +B  # PITCH BEND
    
  • @joelsquare - to save having to load several scripts, it might make sense to use channel conversion per message type, then use channel filter modules to let through midi per channel.

    btw, there are some Mozaic scripts on patch.com that filter by selectable midi types. Here's one: https://patchstorage.com/midicensor/

  • Just for fun, here's a Streambyter script with toggle buttons for different message types. ON = Block. Default = OFF.

    # Block selected midi message types
    # Button ON == block
    
    IF LOAD
      SET NAME Message_Blocker
      SET Q0 Note_OFF +TOGGLE
      SET Q1 Note_ON +TOGGLE
      SET Q2 Poly_AT +TOGGLE
      SET Q3 CC +TOGGLE
      SET Q4 PC +TOGGLE
      SET Q5 Chan_AT +TOGGLE
      SET Q6 Pitch +TOGGLE
      SET Q7 +HIDE
      
      ASS Q0 = 0 0 0 0 0 0 0 0
      SET SLIDER_DISPLAY 1
    END
    
    # Force Note-ON and Note-OFF equal
    IF M0 == F0 7D 01 00
      ASS Q1 = Q0
    END
    IF M0 == F0 7D 01 01
      ASS Q0 = Q1
    END
    
    # Calculate the index into the control array
    # from the message type
    MAT L0 = MT / 10
    MAT L0 = L0 - 8
    
    # Block if the control array value is 1
    IF QL0 == 1
      BLOCK
    END
    
    
  • Thanks for these! I’ll check them out.

    I’m back to the struggle of trying to find a Drambo-native solution. My latest project requires being able to open Drambo as a plugin within Logic, so Mozaic makes that a bit trickier.

  • Yeah, this is a great script. Simple and effective. Thanks again.

Sign In or Register to comment.