On 04/19/2014 06:18 PM, Ralf Mardorf wrote:
On Sat, 2014-04-19 at 16:42 +0200, Robin Gareus
wrote:
On 04/19/2014 04:13 PM, Jeremy Jongepier wrote:
Why not use Jack2's built-in alsarawmidi
driver?
because it [excuse my language] sucks. very bad timing & jitter.
In the past I used jack2's -Xalsarawmidi option to get rid of bad timing
and jitter. I can't speak for current jack1 and jack2, but some time ago
-Xalsarawmidi improved those things a lot compared to jack1, which
didn't provide this option and compared to jack2 without using this
option.
Indeed they're pretty close these days. That was not true last time I
measured it. a2jmidid still has a slight edge, here. Same latency as
alsarawmidi but less jitter.
jackd2 from git (ab409a65df).
measured with
https://github.com/x42/jack_midi_latency
using a PreSonus 1818VSL on a thinkpad x60s. linux 3.2.35 SMP PREEMPT RT
======================
## jackd -S -dalsa -dhw:2 -r48000 -p64 -n2 -Xraw
JACK settings: samplerate: 48000, samples/period: 64
probable nominal jack latency: 128 [samples] = 2.67 [ms]
TOTAL: 10000 MIDI events sent+received.
min= 183 max= 209 range= 26 avg= 193.6 dev= 4.69 [samples]
min= 3.81 max= 4.35 range= 0.54 avg= 4.0 dev= 0.10 [ms]
0.00 .. 3.78 [ms]: 0
3.78 .. 3.80 [ms]: 2 #
3.80 .. 3.81 [ms]: 0
3.81 .. 3.83 [ms]: 13 #
3.83 .. 3.85 [ms]: 44 #
3.85 .. 3.86 [ms]: 127 #
3.86 .. 3.88 [ms]: 0
3.88 .. 3.89 [ms]: 142 #
3.89 .. 3.91 [ms]: 270 ##
3.91 .. 3.93 [ms]: 222 ##
3.93 .. 3.94 [ms]: 491 ####
3.94 .. 3.96 [ms]: 0
3.96 .. 3.98 [ms]: 4930 ###########################################
3.98 .. 3.99 [ms]: 263 ##
3.99 .. 4.01 [ms]: 174 #
4.01 .. 4.03 [ms]: 0
4.03 .. 4.04 [ms]: 159 #
4.04 .. 4.06 [ms]: 152 #
4.06 .. 4.07 [ms]: 612 ######
4.07 .. 4.09 [ms]: 200 ##
4.09 .. 4.11 [ms]: 0
4.11 .. 4.12 [ms]: 298 ###
4.12 .. 4.14 [ms]: 170 #
4.14 .. 4.16 [ms]: 188 #
4.16 .. 4.17 [ms]: 132 #
4.17 .. 4.19 [ms]: 0
4.19 .. 4.20 [ms]: 733 #######
4.20 .. 4.22 [ms]: 490 ####
4.22 .. 4.24 [ms]: 153 #
4.24 .. inf [ms]: 34 #
======================
## jackd -S -dalsa -dhw:2 -r48000 -p64 -n2
## a2jmidid -e
JACK settings: samplerate: 48000, samples/period: 64
probable nominal jack latency: 128 [samples] = 2.67 [ms]
TOTAL: 10000 MIDI events sent+received.
min= 184 max= 209 range= 25 avg= 193.0 dev= 4.09 [samples]
min= 3.83 max= 4.35 range= 0.52 avg= 4.0 dev= 0.09 [ms]
0.00 .. 3.80 [ms]: 0
3.80 .. 3.83 [ms]: 48 #
3.83 .. 3.85 [ms]: 73 #
3.85 .. 3.88 [ms]: 99 #
3.88 .. 3.91 [ms]: 131 #
3.91 .. 3.93 [ms]: 164 #
3.93 .. 3.96 [ms]: 6318 ############################################
3.96 .. 3.98 [ms]: 252 #
3.98 .. 4.01 [ms]: 174 #
4.01 .. 4.04 [ms]: 133 #
4.04 .. 4.06 [ms]: 906 #######
4.06 .. 4.09 [ms]: 223 #
4.09 .. 4.11 [ms]: 151 #
4.11 .. 4.14 [ms]: 96 #
4.14 .. 4.17 [ms]: 220 #
4.17 .. 4.19 [ms]: 623 ####
4.19 .. inf [ms]: 388 ###
======================
## jackd -S -dalsa -dhw:2 -r48000 -p64 -n2 -Xseq
interestingly has the lowest latency (one period less) but 3 times the
jitter.
JACK settings: samplerate: 48000, samples/period: 64
probable nominal jack latency: 128 [samples] = 2.67 [ms]
TOTAL: 10000 MIDI events sent+received.
min= 128 max= 179 range= 51 avg= 154.2 dev= 13.59 [samples]
min= 2.67 max= 3.73 range= 1.06 avg= 3.2 dev= 0.28 [ms]
0.00 .. 2.57 [ms]: 53 #
2.57 .. 2.69 [ms]: 542 ##############
2.69 .. 2.81 [ms]: 1834 ############################################
2.81 .. 2.93 [ms]: 1078 #############################
2.93 .. 3.05 [ms]: 764 ####################
3.05 .. 3.18 [ms]: 1750 #########################################
3.18 .. 3.30 [ms]: 887 ########################
3.30 .. 3.42 [ms]: 1164 ###############################
3.42 .. 3.54 [ms]: 1720 ########################################
3.54 .. 3.66 [ms]: 207 #####
3.66 .. 3.78 [ms]: 0
3.78 .. inf [ms]: 0
ciao,
robin