Re: [Jack-Devel] Dispersing MIDI messages: one to multiple

PrevNext  Index
DateSun, 01 Feb 2015 18:16:18 +0800
From Happy <[hidden] at gmail dot com>
ToHarry van Haaren <[hidden] at gmail dot com>
CcMarjan Mrak <[hidden] at gmail dot com>, JACK <[hidden] at lists dot jackaudio dot org>
In-Reply-ToHarry van Haaren Re: [Jack-Devel] Dispersing MIDI messages: one to multiple
Follow-UpPaul Davis Re: [Jack-Devel] Dispersing MIDI messages: one to multiple
Just for completeness. MIDI version 1 runs at 1.5 and 12Mb/sec
Mostly only mice and keyboards run at 1.5Mb/s. Most other hardware
(not the Access Virus) mostly use USB 2.0 (480Mb/sec)
because they also may send audio. Funny enough, the Roland TR-8 applies
running status on the MIDI 5-pin connection but does NOT apply running
status on the MIDI/Audio USB connection. Probably all modern devices 
do this in the same way. Thanks a lot for pointing out the jack
implementation. I coded an ALSA client and had to deal with status bytes
and after that coded the Jack client to record MIDI. Jack inserting the
status slipped my attention. 


On 六, 2015-01-31 at 12:32 +0000, Harry van Haaren wrote:
> @Christian Schoenebeck wrote:
> - Good point about JACK MIDI input implementation, etc.
> 
> Yes, exactly.
> I'll add the following re Hardware MIDI / software MIDI, just for
> completeness and future reference.
> 
> On Sat, Jan 31, 2015 at 6:16 AM, Happy <[hidden]> wrote:
> > For whatever it is worth, many older devices any even modern devices
> > (For example I can guarantee it for the Roland TR-8, released in 2014)
> > still apply running status on their MIDI outs.
> Yes indeed: and it makes sense for *hardware* MIDI units to do so. The
> MIDI cable[1] runs at a baud rate of 31250, which limits the amount of
> messages that can be sent over the cable in a certain time-period.
> Using running-status increases the amount of events that can be sent.
> 
> On the software side, having running status is a bad idea: the 4 bytes
> duplicated to have a status per message is well worth spending, if
> consideration is given to ease of implementation of MIDI code.
> 
> So in a best-of-both-worlds, hardware uses running status (as the
> hardware you mention does), and software always includes the status
> byte, so implementations check the first byte of the message and
> easily deal with it.
> 
> As Christian noted, this is exactly what JACK does - MIDI input
> drivers add the running status byte to messages that did not include a
> status byte, and provides the JACK MIDI graph (and hence all JACK
> clients) with normalized "status byte included" MIDI messages.
> 
> Cheers, -Harry
> 
> [1] Note that an actual 5 pin DIN MIDI cable is meant: USB MIDI
> generally runs at 115200 baud, allowing many more events per unit
> time.
> 
PrevNext  Index

1422785790.21931_0.ltw:2, <1422785778.3863.10.camel at HOME3>