
- tester.jpg (119.76 KiB) Viewed 95448 times
Preliminaries
I built a little latency tester prototype and ran it against most of the test hardware I have around here.
There are 1000 milliseconds (ms) in one second. On a typical computer monitor or tablet (running at 60 frames per second), each frame lasts for 1000/60 = 16.7ms.
Procedure
This testing device sends a "Note On: Middle C at max velocity" message through a MIDI cable, starts a timer immediately, and counts the time until the very first evidence of any sound at all coming in from the headphone jack. It can measure that result down to the nearest two microseconds (a thousandth of a millisecond), so we've got about 500x the resolution we need to accurately characterize things at the millisecond level. It continues to send Note On/Off pairs automatically to acquire 25 separate measurements.
Baseline
As a sanity check (and because I was curious

), I tested a few digital pianos directly. Their whole job is to produce sound quickly after a key strike, so presumably they will also respond to MIDI messages quickly. Keyboards should be the fastest things around, so these tests establish a nice baseline for the fastest we should realistically ever hope to see a software synth behave.
Keyboard average time to respond to a MIDI "Note On" message:
- 6.4ms (800μs std dev) - Casio LK-100
- 9.9ms (260μs std dev) - Yamaha EZ-200
- 12.4ms (780μs std dev) - Yamaha P-70
These are delightfully fast (as you'll see) with an amazingly tight distribution. Every one of them produces sound in less time (often substantially) than a single video frame.
More data points that may be interesting:
- 57.1ms (2.3ms std dev) - Synthesia on iPad 4
- 57.2ms (30μs std dev) - Synthesia on iPad 2
Results
Computer/tablet average time to respond to a MIDI "Note On" using
legacy synths (Windows MME on Windows and Sonivox on Android), with the latency tester connected through an E-MU Xmidi 1x1:
- 241.2ms (10ms std dev) - Surface Pro 2 (Windows 8.1)
- 245.5ms (8.8ms std dev) - Intel NUC (D54250WYK, Windows 10 MME driver)
- 59.7ms (3.8ms std dev) - Intel NUC (D54250WYK, Windows 10 UWP driver)
- 182.0ms (6.7ms std dev) - Nvidia SHIELD tablet (Android 7.0)
- 119.9ms (10.5ms std dev) - Google Nexus 7 (2013, Android 6.0.1)
- 195.2ms (11.8ms std dev) - Kindle Fire 7 (Android 5.1.1)
- 254.2ms (10.7ms std dev) - ASUS Transformer Pad (TF103C, Android 4.4.2)
Right away we can see that the legacy synths take ~15-40x longer to produce a note than a keyboard. The Windows synth at a quarter second is especially shameful. The wider spread most-likely has to do with Synthesia's own MIDI polling once per frame. (2x either of those standard deviations is close to a 16.7ms frame.)
Computer/tablet average time to respond to a MIDI "Note On" using the
new BASS 2.4.13.8 based synth (WASAPI on Windows and OpenSL on Android), with the latency tester connected through an E-MU Xmidi 1x1:
- 76.7ms (5.5ms std dev) - Surface Pro 2 (Windows 8.1)
- 69.9ms (0.2ms std dev) - Surface Pro 2 (Windows 8.1) with V-sync off (~160 fps)
- 69.4ms (6.5ms std dev) - Intel NUC (D54250WYK, Windows 10)
- 74.8ms (6.1ms std dev) - Nvidia SHIELD tablet (Android 7.0)
- 114.ms (6.6ms std dev) - Google Nexus 7 (2013, Android 6.0.1)
- 241.6ms (7.6ms std dev) - Kindle Fire 7 (Android 5.1.1)
- 331.8ms (8.0ms std dev) - ASUS Transformer Pad (TF103C, Android 4.4.2)

- chart.png (16.73 KiB) Viewed 93603 times
There is a lot to take in, here.
For computers and "newer" Android, BASS is consistently half to one-third the time it takes the old synths! Four video frames is still inside the range of "imperceptible delay" for me (and hopefully you!), and this synth can use arbitrary SoundFonts and add effects like reverb (without impacting that latency). This is very exciting.
Tripling the frame rate (on Surface Pro 2) appears to have soaked up the "average 8ms in either direction" slop and tightened up the standard deviation (more than should have been expected).
The older the Android device, the less rosy the picture. On devices that don't have an audio "Fast Path", it's neck-and-neck with Sonivox usually winning on speed but BASS easily still winning on sound quality. I've decided to leave it up to users: both synths will be available in the Android version of Synthesia 10.5 (defaulting to the new BASS synth, which is the easy answer on Android 6 and later).
(Checking against
my manual measurements from six years ago, I'm happy to see these results are very consistent with those.)
Conclusions
- The only software synths that can break into the high 50ms range are Apple's and the broken/unusable UWP synth in Windows 10 at the expense of pops and crackles. So, really just Apple's.

- BASS is often just behind that at ~70ms response time.
- BASS universally has tighter response timing (i.e., lower standard deviations)
- BASS universally sounds (or can sound) better than the built-in alternatives.
- BASS is always faster (often much faster) on modern hardware.
- On older 4.x and 5.x Android hardware, your mileage may vary... but as the owner of one of those devices, you already knew that!
