midi timing testing

Len Ovens len at ovenwerks.net
Wed Jul 18 23:26:14 UTC 2012

I am reposting some notes I made on some testing I did on MIDI timing with
USB ports. These tests were all done on my desktop machine... 8years old
or so.
DMI:        /IC7/IC7-G(Intel i875P-ICH5), BIOS 6.00 PG 04/27/2004
CPU0: Intel(R) Pentium(R) 4 CPU 2.40GHz stepping 09
2.5G ram.
Sound IFs:
 - internal ac97, disabled in bios
 - PCI ensoniq used only for MIDI port. Turned off in pulse, not used in
alsa or jack otherwise.
 - M-Audio D66 Used for everything
 - Roland Cakewalk USB MIDI IF used - advanced driver switch off (dumb
mode?) This is my netbook midi IF used here for testing.

It had seemed to me that if I recorded a demo track from an external synth
on the netbook, there were issues with timing that got better if /dev/hpt
and /dev/rtc were added to the audio group. So I set out to measure this
so I could "see" what difference various changes made. So far I am hitting
my first problem. With this setup on this machine, there seem not to be
problems as I had on the other machine. Maybe the track I started with is
too easy, or qtractor sends more information for timing than my external
synth. Any ideas? Below are my tests:

>>> Created a track on hydrogen. Solid quarter notes, bas drum on 1 and 3
>>> snare on 2 and 4.
>>> try 1) Stock 12.04 HPT setup.
>>>    hydrogen -> a2j -> ensoniq midi -> cable -> ensoniq midi -> a2j ->
>>> qtractor (recording)
>>> Examining notes in qtractor shows all notes are late by about .005 of a
>>> bar (120bpm) +-.001
>>>  - re-recorded on second instance of qtractor:
>>> qtractor0 -> a2j -> ensonic midi -> cable -> ensonic midi -> a2j ->
>>> qtractor1
>>> notes on second record (testing play and record) are ahead (bar time
>>> delayed I guess) .015 +- .003
>>> Comment: not bad enough to hear
>>> try 2) I thought about this and realized Jack and a2j may have effected
>>> those results. Try alsa only.
>>>  - take one
>>>  hydrogen -> alsa -> ensoniq midi -> cable -> ensoniq midi -> alsa ->
>>> qtractor.
>>> greatest error was .001, but mostly .000  ... That is no delay, but
>>> same
>>> variablilty.
>>>  - take two re-record on qtractor1
>>> qtractor0 -> midi cable -> qtractor1
>>> hmm same lead or more. Rerecorded midi is .018-.019 ahead. This must be
>>> qtractor playback.
>>> Comment: The ensoniq seems to be quite solid. A2J adds some delay and
>>> jitter, but not a lot.
>>> Try 3) Time to try a USB MIDI IF. Just for the record, the USB MIDI IF
>>> has
>>> male ends so I can't use a cable to tie them together, It will have to
>>> be
>>> a midi through. This may add some delay, but should not add jitter.
>>  - take one
>> hydrogen -> usbmidi-> through -> usbmidi -> qtractor
>> delay of .001 +-.001
>>  - take two
>> qtractor0 -> usbmidi -> through -> usbmidi -> qtractor1
>> delay of .014 Pretty consistent. +- .001
> Comments: There is a difference from one port to the next, but it seems to
> be transport. The notes don't seem to have jitter. They are all the same
> amount ahead or behind. It does seem to be qtractor related. The stuff
> coming out of hydrogen is very stable.
> --
> Len Ovens
> www.OvenWerks.net

Len Ovens

More information about the Ubuntu-Studio-devel mailing list