Throttle a port


Some older midi hardware will hang up if they receive too many midi messages or the messages are not spaced far enough apart in time. I am wondering if there could be a ‘throttle’ algorithm applied to a port which would limit a max message rate, largely issues with CC’s, and drop CC’s as necessary to achieve a correct rate based on some max event/sec the user can set to make their vintage synth not choke.

Yes, @tuj, good idea IMO
There was a little discussion on a related idea here.

I could see various uses for a pipe that might be called a Discarder which would include some specific properties:

  • Type (inc CC, PB, Pressure, Aftertouch…)

  • Tolerance proximity to previous event

  • “With”: And/Or

  • Time msecs

  • Channel

  • Any Id

So this could be set to Discard any

  • new CC#1 event that arrives within 2ms of the previous

  • a Ch1.CC#3 event that has the same value as the previous (think Scaled LFOs)

  • any Ch4.Pressure event that is <2 difference from previous

  • etc.

As well as the uses mentioned by yourself, @kazeko and @dannytaurus, this could help prevent outgoing logjams when MH merges several chatty incomings (like Pitchbend, Aftertouch and Breath Control) from different sources into single output (can’t do anything about incoming traffic jams though!)

1 Like