Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
MIDI Thinning/priority -- question and/or feature request
#1
I have an MRCC on order. One thing I want to do with it is connect a device called MMM (Massive MIDI Modulator) that generates what is potentially a very large number of MIDI CC messages. It has a (class compliant) USB-MIDI output, and I would ultimately like to merge its output with that another device (a sequencer, which is also capable of USB-MIDI output) and send the resulting stream to a 5-pin MIDI port on a third device (a Nord Drum 2 drum synth).

The Nord has no USB-MIDI capability. That means that either of the devices feeding it might generate MIDI faster than the 5-pin port can handle. That is very unlikely to be a problem with the sequencer, but might be a problem with the MMM.

I can think of two possible ways of handling this problem:

1) Put incoming MIDI messages in a queue as they arrive, and send them to the output as fast as possible. 
2) Put incoming MIDI messages in a separate queue for each input device, and give priority to one of the inputs when deciding which messages to transfer to the output.

In my particular application, (2) is far preferable, because it means that if the MMM generates bursts of MIDI messages, that does not cause the messages from the sequencer to arrive late, only the modulation messages, which don't need to be precisely timed anyway.

However, there is still the problem of what to do when the queue (or one of the queues) overflows.

I have a suggestion, if you are not already doing this: If you're going to throw messages away, how about trying first to discard messages that appear to be redundant. In particular, if the queue appears to be filling up, and you are about to process a CC message, perhaps it might be worth looking to see whether there is already another CC message for the same channel, device, and CC number, and, if so, discarding the earlier one.

This strategy may be too simplistic. However, it seems to me that any device that turns USB MIDI into DIN MIDI might have to deal with thinning the MIDI stream somehow; and at the very least it would be nice to know how MRCC is going to do that, and perhaps to have some control over it.
Reply
#2
Same as arkoenig, I'm also very interested in how the MRCC does Midi thinning. I have experienced sync problems in the past, when using my Midi faderbank (UC 44 from Faderfox) via USB Midi and a Retrokits RK-005 USB-Host to control my setup.

When quickly changing values on 4 or more faders of the UC44, the Midi clock gets audibly bogged down (by what I think is too much Midi data) and thus the whole track gets temporarily slowed down... This is especially problematic in regards to my (slaved) Model:Cycles and can even knock it off sync compared to the other machines in my setup.

I really hope to avoid these kind of problems with the MRCC so I'm hoping for a smart and "lagless" solution, akin to arkoenigs proposals above.

Other than that, I just want to add that I'm really looking forward to making the MRCC the backbone of my setup as soon as it arrives.
Reply
#3
(06-01-2021, 07:35 AM)ttck Wrote: Same as arkoenig, I'm also very interested in how the MRCC does Midi thinning. I have experienced sync problems in the past, when using my Midi faderbank (UC 44 from Faderfox) via USB Midi and a Retrokits RK-005 USB-Host to control my setup.

When quickly changing values on 4 or more faders of the UC44, the Midi clock gets audibly bogged down (by what I think is too much Midi data) and thus the whole track gets temporarily slowed down... This is especially problematic in regards to my (slaved) Model:Cycles and can even knock it off sync compared to the other machines in my setup.

I really hope to avoid these kind of problems with the MRCC so I'm hoping for a smart and "lagless" solution, akin to arkoenigs proposals above.

Other than that, I just want to add that I'm really looking forward to making the MRCC the backbone of my setup as soon as it arrives.

Out of curiosity, what device is generating the master clock and is the UC 44 data being merged into the clock stream or is the UC 44 MIDI being sent to the device that is the master clock, or ???

Having a stable master clock that is distributed out to devices and not chained/merged with a bunch of other MIDI info is ideal.  MIDI System Real Time messages (clocks) have higher priority, so any device getting flooded with a lot of MIDI should be throwing away non-clock messages as fast as it can if its buffer is getting full.
Reply


Forum Jump:


Users browsing this thread:
1 Guest(s)