Filtering MIDI Messages

    Dec 09 2008 | 5:50 pm
    Im working with Ableton and i have a Behringer BCF MIDI controller.
    When i hit a button on the BCF it toggles a drum loop clip in Ableton on or off.
    After 1 loop of the drum clip, ableton sends a Portamento On/Off Controller 65 Message to the BCF which turns the LED off.
    I have done everything from posting on ableton, behringer forums and asking the teams directly and noone knows how to do this.
    I have tried MIDI pipe. . . a free application for macs but i have no idea how to filter this specific command message.
    I have now been recommended to come to you and see if anyone knows what i could do or if it would be possible to build a patch that would solve this.
    I am not a max user.
    Any ideas/help would be much much much appreciated.
    Cheers, Ben :)

    • Dec 09 2008 | 8:44 pm
      You can find the "65'_Filter.mxf" made for you !!! (use MaxMSP Runtime to load it)
      Tou have to try Max5, it's not so hard to learn it ;-)
      here is the patch :
    • Dec 09 2008 | 9:24 pm
      Hey man. . .
      thankyou for that.
      so do i need to buy maxmsp in order to use this?
      im not sure what you mean by maxmsp runtime?
      thanks again, Ben
    • Dec 09 2008 | 9:33 pm
      Follow the link, and then look for Max 5 Runtime. It is free to download and allows you to use max patches but not create or modify them.
    • Dec 09 2008 | 9:46 pm
      thanks man.
      ive got it running now but as its probably all in the coding i cant see it doing anything.
      can you please explain what youve done and how it works. this will help me understand how to use it.
      Does it filter all controller65 messages on the output from ableton on all ports?
      Im a bit confused.
      Cheers again, Ben
    • Dec 09 2008 | 9:58 pm
      Francois' patch should filter control 65 messages on all channels.
      You should route this patch between the MIDI-out of Ableton and the MIDI-in of your controller. You can select the routing using the two dropdown menus which should automatically populate themselves with all the available destinations.
      It looks for any MIDI control messages sent. The outlets of the [ctlin] object are value, number and then channel from left to right. It passes the channel directly to the output. It then switches the order of the value and number and blocks any message from control number 65. If the message was something else it reverses the number and value back to the correct order, joines them up with the channel and sends the message out.
      I hope Francois will correct me if I've explained anything wrong.
    • Dec 09 2008 | 9:59 pm
      OK, So...
      Are you on Mac or Windws ?
    • Dec 09 2008 | 10:11 pm
      Im on Mac. . .
    • Dec 09 2008 | 10:29 pm
    • Dec 09 2008 | 10:35 pm
      In Audio/MIDI setup how do you create an IAC Bus?
      You can create a new device but no option for a bus.
      Why do i need to create this?
      Also, in live you cannot specify which output sends certain messages otherwise id be able to solve this problem without this max patch.
      Live only lets you specify which outputs and inputs are active and what they can do. It does not let you route or filter midi.
      Cheers again, Benji
    • Dec 09 2008 | 10:47 pm
      You have to follow this MIDI line :
      Live >*> 65'_Filter >*> BCF
      So IAC is a virtual MIDI port :
      Live >IAC Bus> 65'_Filter >IAC Bus> BCF
      I take a picture of my Audio/MIDI setup (french OS) :
    • Dec 09 2008 | 10:54 pm
      Ok. Thats cool. Thanks. I now get how to create that.
      I dont understand why i have to go though (in and out) of the IAC bus?
      Why cant i just go from Live > 65 Filter > BCF ?
      Cheers :)
    • Dec 09 2008 | 11:02 pm
      > go from Live > 65 Filter > BCF...
      Yes but how ? IAC is a way...
      So, i'm in France and it's just midnight now... i'm going to sleep...
      Hope someone can help you...
      By fxw
    • Dec 10 2008 | 7:26 pm
      Ive now realised that i need to filter all controller65 messages transmitting the value of 1. Otherwise all other controller65 messages are needed to turn the LED on and off.
      Filtering out all controller 65 messages is now not letting the LED turn on at all.
      I have midi monitored it again and its the value of 1 that is turning the clip off. . .
      Is there anyway to do this now?
      Cheers again. . . and again. . .
      Ben :)
    • Dec 15 2008 | 9:26 pm
      Any ideas anyone?
      thanks again :)
    • Dec 15 2008 | 10:51 pm
      that patch just needs modifying a little to only filter the one value i think
    • Dec 15 2008 | 10:59 pm
      thanks for getting back to me.
      any chance anyone could do this for me?
      i have no clue how to do this.
      i would very much appreciate it.
      cheers, benji :)
    • Dec 16 2008 | 3:21 am
      Try this, you can set the controller and value you want to block. It should work on any MIDI channel. If it doesn't do what you need get back to me and I will try to fix it.
    • Dec 16 2008 | 10:08 am
      this is great. im about to go into the studio and try this out. i think ideally what im going to need is one of these but with multiple drop down boxes so i can block many controllers and their values all from one application.
      does this sound possible?
      thanks again, benji
    • Dec 16 2008 | 11:19 am
      I have tried it out and with not any success. I have taken a picture of all the random midi commands that are sent to the behringer each time a clip/loop is looped.
      Im pretty sure its all the controllers with the value of 1. The values of 0,126 and 127 are used to trigger a clip i think.
      Have a look here and let me know what you think:
      Thanks again for your help. When i get this sorted ill put you all as a credit on the album.
      Cheers, Benji
    • Dec 16 2008 | 10:17 pm
      The patch was just a modification of Francois' patch that blocked every message on controller 65. That one worked properly for you (right?) so I'm not entirely sure why it won't work as well. I've changed how it listens to MIDI controller data as I think the previous method was unreliable. I've added a display so you can see what controller data you have coming in and out. Try sending out a "65 1" and see if it is blocked from the output.
      If this one doesn't work I will test it with some of my MIDI gear, so far I've only been testing in Max and if the problem is related to the MIDI in/out then I won't have noticed it.
      Once I get this issue sorted I will have a look at setting exactly which controllers/messages you want to block. But no promises!
    • Dec 16 2008 | 10:25 pm
      its hard for me to tell as my midi monitor program recieves hundreds of messages in and out on each port every second.
      this is because im sending out of live, to the iac, to the midi blocker, to the iac, then to the behringer.
      what im trying to say is that i cant tell if its working or not.
      does the display tell you which commands are being blocked?
      did you have a look at the images i attached above with all the random midi messages that seem to be also causing this problem.
      thanks, benji
    • Dec 16 2008 | 10:32 pm
      As it is the Midiblocker will only block one message from one controller. It defaults to controlled 65 (portamento) with a message of "1". Is there any way you can try testing it by sending just a few MIDI messages from live? Perhaps 0, 1, 126 and 127 on controller 65 and see if they all get through?
      I don't use live so I wouldn't know how to go about this but I would imagine it's not too difficult. If you do this you should also be able to check that the MIDI values are behaving as you expect (turning off the appropriate LED).
    • Dec 16 2008 | 10:41 pm
      i cant do all of that because the controller65 mesages with the value of 0, 126 and 127 are sent to live to trigger a clip, the value of 1 is only sent back when the clip loops. because there are so many midi messages its hard to see but ill look closer when i go into the studio tomorrow.
      im pretty sure it worked, so did the last one, but now im thinking its not just this command with the value of 1 that is messing things up. there are so so so many random messages with the value of 1 that could be turning off the clip.
      i think a good start would be a program that filters all midi controller messages being sent out of it that have the value of 1.
      do you think you could do this?
      thanks again, benji
    • Dec 16 2008 | 10:54 pm
      This one should block messages where the value is "1" on all controllers on all channels. Let me know how you get on.
      Is there no way to generate your own MIDI messages and send them directly from live? That way you could check the patches I've sent you actually work and check which MIDI messages you need to be blocking.
      (We'll get there eventually, I'm not working tomorrow so feel free to email me privately during the day and I'll see if I can help some more.)
    • Dec 16 2008 | 10:58 pm
      hey man
      where can i download this one from?
      im on skype (benjiboko) are you?
      if not ill just email you privately. . .
      cheers, benji
    • Dec 16 2008 | 11:01 pm
      I forgot to upload it *shakes head*
      Here it is. And no I don't skype but I should be pretty snappy with an email reply. I'll set my system alerts so I don't miss it.
    • Dec 17 2008 | 12:08 pm
      Hey Man.
      Right. . . ive figured some stuff out. Ive gone through closely and worked out that each clip has a different controller message that is used to trigger it.
      For each controller message it seems that the value of 126 and 127 is used to tell live that i want to trigger it, and then to trigger it. I think 0 is then sent to say that it has been triggered. Once the loop goes round once, the value of 1 is sent and the LED turns off.
      I tried your program with the inputs and outputs like the attachment image below and it didnt work. All it did was prevent the LEDs from coming on at all. . .
      I have listed all the controller messages that im having a problem with (see attachments also)
      1. Portamento On/Off 2. Sustenuto Pedal 3. Soft Pedal 4. Legato Pedal 5. Hold 2 Pedal 6. Sound Variation 7. Timbre/Resonance 8. Release Time 9. Brightness 10. Decay Time 11. Vibrato Rate 12. Vibrato Depth 13. Vibrato Delay 14. General Purpose
      Thanks, Benji