[LAU] Ardour MIDI tracer

Len Ovens len at ovenwerks.net
Sat Aug 16 00:24:51 UTC 2014


On Fri, 15 Aug 2014, Paul Davis wrote:

> On Wed, Aug 13, 2014 at 10:16 PM, Len Ovens <len at ovenwerks.net> wrote:
>
>       Is it just me? Has anyone else looked at pitch bend events on the
>       Ardour MIDI Tracer? Quick test:
>
>       ================================================
>        - edit->Preferences->Control surfaces.
>        - select both enabled and feedback for generic MIDI.
>        - double click on it and select bcf2000 with mackie protocol
>        - open an external midi monitor (using qmidiroute here) and connect
>       it to
>               Ardours MIDI control out.
>        - also open Ardours MIDI tracer window and connect it to the same
>       output.
>        (Now qmidiroute will be in decimal and MIDI Tracer is hex..)
>        - use the mouse to move the gain up and down on channel one with an
>       audio track.
>       =================================================
> 
>  the trace shows MIDI messages. there are no 10 or 14 bit MIDI messages. only
> "controllers" with 14 bit state. 14 bit state is sent as two messages (when
> necessary). the tracer shows each individual message.

Pitch bend, which the mackie faders use, is specified in the MIDI standard 
and in the MCP spec as: Ex yy zz in one event. WHere x = channel, yy = LSB 
(7 bits) and zz = MSB (7 bits). This is one event. This the way I send 
fader info to Ardour and It is also the way Ardour sends info back to me 
when I use a mouse to move a fader. Lets compare the output of the tracer 
with qmidiroute: (using fader5 as happens)

tracer			db	qmidiroute			midi
===========================================================================
Pitch Bend chn  5 1a	-0.5	Ch  5, Pitch  4378 (111a)	e4 1a 42
crt/alt/mousewheel down
Pitch Bend chn  5 09	-0.5	Ch  5, Pitch  4361 (1109)	e4 09 42
Pitch Bend chn  5 79	-0.5	Ch  5, Pitch  4345 (10f9)	e4 79 41
There is no second midi event with the msb, this info is missing.

I am well aware that controllers are 7 bits in an event. The MIDI standard 
does double up some of them for 14 bit, but I am not aware of anyone who 
uses them.

Speaking of which... I was looking at the MIDI codes for some more upscale 
Control surfaces:
Allen & Heath iLive control surfaces
Yamaha CL series mixers

Both of these use NRPN (Non-Registered Parameter Number) for some of their 
messages. The A&H uses this because they have run out of controllers (I 
would guess) and still only get 7 bits for their faders. They use three 
events, the first one has the mixer channel (as well as the midi channel), 
the second has a code for what in the channel it controls (0x17 for fader) 
and the third is the data. Yamaha uses four events, the first two carrying 
the controller number (they have not bothered to group them the way A&H 
has) and the last two are MSB and then LSB. The wiki for NRPN says the 
controller number for the first two bytes should be 0x63 and 0x62, 
however, Yamaha has these listed backwards. As there are other typos in 
the same page, this may just be a typo too.

I do not know if the Ardour midimap binding msg="byte byte byte" would 
handle this or not. I know Jack would consider this 4 events and probably 
not accept just the first status byte with 8 running status data bytes 
following as a single event.

--
Len Ovens
www.ovenwerks.net


More information about the Linux-audio-user mailing list