I have followed the instructions here to create a RPI to act as a usb midi host: https://neuma.studio/rpi-as-midi-host.html

Its great and works nicely however I would like to suppress Midi CC message 120, stop all sounds. The way I want my setup to work runs the risk of a midi loop. Everything works fine until a 120 cc message is sent, at that point it goes into a loop and crashes everything.

Is there a way to simply filter out that message to stop the loop?

I believe the pi-midi image above is using ALSA amidi and aconnect to work its magic but I don't know how i'd go about modifying the cc messages passing through.

  • Check out midish or mididings. You then have to make the connections manually. – CL. Apr 13 at 13:33
  • Thanks @CL. I've been trying mididings and it's mostly working except it will either not react to the program change messages (printed messages look correct but it doesn't work) or work perfectly until send a CC 120 (Stop all sounds) then it crashes - If I ~CtrlFilter(120) it only reacts to CC messages, like lfo's but not program change and if I don't it crashes. Not sure how to detect or stop the loop. – Sammy J May 3 at 4:15
  • Actually, I got it working. The issue was with the blanket ~CtrlFilter(120). It needs a Process(filter_ctrl) to filter out the individual Ctrl messages on the channel its received on - rather than all. – Sammy J May 4 at 0:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.