[sdiy] Continuous controllers

Seb Francis seb at burnit.co.uk
Thu Oct 23 00:15:43 CEST 2008


Hi Tom,

Tom Wiltshire wrote:
> Hi All,
>
> A couple of questions about MIDI continuous controllers;
>
> MIDI continuous controllers like pitch bend and aftertouch aren't 
> really continuous, since MIDI is a digital serial protocol.
> Does anyone know how often these messages are sent typically?

This greatly depends on the hardware.  It's a choice a designer has to 
make, how much MIDI bandwidth to use if someone really waggles the 
controller(s) around fast.  On my JoyKontrol I took the decision to 
insert a 1ms delay after every value sent (CCs are 3 MIDI bytes which 
takes approx 1ms to send so this allows 1 CC message every 2ms), so the 
max bandwidth ever used would be 50%.  This means that even when I 
record the CC data into a sequencer and want to play some notes on top, 
the notes are still going to get a good chance to play on time.

In my experience most MIDI keyboards/controllers/etc. transmit rather 
less than 1 message every 2ms, but I figured since I have data reduction 
functions in my sequencer then why not go for a high rate as I can 
always reduce it down later.

And as you say, it's going to be worse for messages with more bytes like 
NRPN and SysEx.

With old synths there would be also have been CPU limits to think about, 
rather than just picking the desired rate.

>
> The second question is related;
>
> What happens if a piece of equipment receives two different sets of 
> continuous controller data?
> For example, playing back a piece of music with pitch bends and 
> aftertouch, whilst also having active pitchbend and aftertouch coming 
> from the local keyboard.
> How do you decide which to use?

The answer to this is that it will use both and the parameter will jump 
about as each value is received alternately from each source.  That's 
how everything I've ever had works anyway.

Seb






More information about the Synth-diy mailing list