fbpx


The MIDI Forum

  Wednesday, 18 January 2023
  3 Replies
  1.1K Visits
5
Votes
Undo
  Subscribe
I am running into what appears to be a MIDI buffer overload in Cubase12. I'm setting up a template with microtonal keyboards (Microzone, Lumatone) which render pitch bend microtuning of each played pitch on a separate MIDI channel (i.e. 8 MIDI channels = 8 notes polyphony). I've noticed that with VSTs and DAWs there doesn't appear to be a way to increase the size of a MIDI buffer (only audio buffers).

Question: If each multitimbral patch uses 1 channel of 14 bit pitch bend rendered microtuning per played note, how may (8 channel) multitimbral patches can be used before the transmission limit of the MIDI protocol is reached? I see that maximum MIDI transmission is 3125 bytes per second but I'm not sure how to translate that into the limit in terms of the maximum number of pitch bend rendered note/channels per cable.

If I'm not reaching a hard transmission limit, does anyone know of any way to increase the standard MIDI buffer size implemented in DAWs?
Dolores set the type of the post as  Technical Question — 1 week ago
1 week ago
·
#17326
0
Votes
Undo
The MIDI transmission speed is not 3125, it's actually 31250, and that's BITS per second. Divide that by 8 for Bytes and that's 3806.

I don't think there is any MIDI buffer, not as part of MIDI. But all MIDI devices, and I assume midi software. may well impement buffering, but how large that buffering will be will be dependant on the software, and the hardware. I doubt this can be changed as far as most hardware is concerned, but the configuration for software may include the ability to change the buffer size. So you need to check the options available for your software.

Geoff
1 week ago
·
#17327
0
Votes
Undo
Geoff: On a DIN MIDI cable, the speed is 31250 serial bits per second and each byte of data is made of 1 start bit, 8 data bits, and 1 stop bit. Since there are 10 serial bits per data byte, that works out to 3125 data bytes per second. (Source: The MIDI 1.0 spec PDF page 6 (printed page 1) section "Hardware" begins "The hardware MIDI interface operates at 31.25 [] Kbaud, [] with a start bit, 8 data bits [], and a stop bit. This makes a total of 10 bits for a period of 320 microseconds per serial byte." 320 microseconds per byte or 0.00032 seconds per byte is the same as 3125 bytes per second.)


Dolores: As you mentioned, on a DIN MIDI cable, MIDI messages can be sent at a maximum speed of 3125 bytes per second. In the situation you describe (notes are sent on seperate channels and each note is prefixed with a Pitch Bend), and in the worst case where Running Status is never be used, each note will require:

3 bytes for the Pitch Bend message
3 bytes for the note starting message (Note On with Velocity over zero)
3 bytes for the note ending message (Note Off or Note On with Velocity zero)

So that's 347 2/9 notes per second.

If the connection between the keyboard and the computer is a single USB cable (from a USB port on the keyboard to a USB port on the computer), then my understanding is a USB MIDI connection uses a faster speed, but I don't know the details. For example, page 10 of the USB MIDI 1.0 spec mentions "The USB transfers MIDI data at rate hundreds of times faster than the original MIDI 1.0 hardware specification."


I'm not sure what to suggest next. Can you give an example of the problem you are having? (For example: What keyboard are you using? How is it connected to the computer? What symptoms are you seeing that suggest some kind of buffer overload?) Maybe we can think of some kind of test to help tell where a buffer problem might be located. (A buffer in the keyboard? A buffer in the MIDI interface? A buffer in the MIDI driver or operating system? A buffer in the DAW software?) Maybe someone else will recognize the kind of problem you are having and have a suggestion that might help.
1 week ago
·
#17338
0
Votes
Undo
Hi Dolores,

Streamed Pitch Bend messages have caused buffering problems with MIDI devices as far back as I can remember.
The trouble is that as one moves the pitch bend wheel a stream of messages pours forth out of the device creating chaos.
It's not just buffering, but the ability of whatever is processing the data to analyse each message and forward it to e.g. the VST creating the sound.
If it's just one channel then the messages can be reduced to just two bytes, but with eight, the messages are probably just overwhelming the interface/processor with too much data to handle.

If my recollection is correct, in the old MIDI forum, this was discussed several years ago.
Polyphonic aftertouch, as I recall, can have a similar effect.

Bavi is quite correct about 10 bits per byte over the Din plug interface but I assume it's 8 bits per byte over USB.
However, USB is a polled protocol and introduces its own problems in dealing with processing large packets of data.

Just my 2c.
JohnG.
  • Page :
  • 1
There are no replies made for this post yet.