Direct vs Link Latency
-
While doing latency tests of MIDI produced by my Sylpyo over different routes (Direct vs Link) I found some perplexing behavior ...
The "Direct" route was set up with a wire from the Sylphyo to a USB Hub into my laptop running Cantabile.
The "Link" route used measured simultaneously using a Link paired to the Sylphyo and wired from the USB Power Supply (USB Mini-B) port to the same Hub into my laptop running Cantabile.
- The MIDI arriving over the Direct route is noticeably different than the Link route. In some cases, a single note over the Direct route become 2 or 3 separate notes arriving from the Link route.
... Note-off events also seem to arrive earlier over the Link route than the MIDI route.
- The Link MIDI is delayed behind the Direct MIDI by a latency that ranged from 1 to 12 msec, in my tests.
This random jitter was not affected by the setting of MIDI Mapping / Velocity (Dynamic vs 127) nor MIDI Mapping / Breath / Breath Rate (I tried High (500Hz) through Low (125 Hz)).
Doing a full reset on the Sylphyo did not seem to affect the latency.
However, power-cycling the Link did seem to improve the latency noticeably.
- The delay I measured in the Link MIDI behind the Direct MIDI was always an exact multiple of 1.000 msec. Not sure why this is or what I might be doing wrong in taking my measurements.
Can anyone possibly shed any light on these pecular findings??
Summary Stats
All measured at a sample rate of 44.1 KHz. All tests done 10 or 20 times:
Velocity = Dynamic / Breath Rate = High
Link MIDI behind Direct MIDI: 88-441 Samples (2.00 to 10.00 msec)Velocity = 127 / Breath Rate = High
Link MIDI behind Direct MIDI: 353-441 Samples (8.00 to 10.00 msec)Velocity = 127 / Breath Rate = Medium
Link MIDI behind Direct MIDI: 44-485 Samples (1.00 to 11.00 msec)Velocity = 127 / Breath Rate = Low
Link MIDI behind Direct MIDI: 309-529 Samples (7.01 to 12.00 msec)Velocity = 127 / Breath Rate = Low (After power-cycle on the Link)
Link MIDI behind Direct MIDI: 133-265 Samples (3.02 to 6.01 msec) -
I just tried removing the Hub and sending the wired Sylphyo and the Link directly into two USB ports on my laptop.
Latency was still variable (1 to 12 msec), but there was less modification of the Link's MIDI as compared with the direct MIDI from the Sylphyo.
It does look like the Link is not simply producing a copy of the MIDI coming out of the Sylphyo, but composing its own MIDI stream from ?maybe? transmitted sensor data?
It also may be that config changes on the Sylphyo (e.g. changing Breath Rate) may not completely change the behavior of the Link ... but power-cycling the Link does seem to fix that.
-
Here is a diagram of my test setup:
-
@clint
Just to say anything:
I can't say anything.
At least not something that explains anything.You compare the two paths in a clean way and you tried everything you can. Unless someone tells us about the signal- and processing paths (block-schema?) of the Sylphyo and the Link, we can not even guess what is going on.
—
But, aside of your technical interest, are you complaining about the 12 ms latency or worried that the time via cable and wireless route is different, or do you feel that the jitter of 1-12 ms affects your playing? If I were a perfect player, I would be worried about the random jitter that cannot be compensated while playing. But I don't feel it.
-
@peter-ostry I've done a deep-dive into latency to understand and improve my rig. I did this particular test looking for the source of something that happened to me on a gig on Saturday ... while doing a series of fast runs (in an awesome duet jam with a drummer), what I thought was my last run on the Sylphyo was followed by another run coming out of my rig. Big surprise to me ... and likely an extreme case of latency (like maybe 1 second?)
do you feel that the jitter of 1-12 ms affects your playing?
It's the jitter, but on a larger scale ...
In general, latency on the various setups I use is inconsistent - sometimes it's "pretty darn good" and sometimes its "barely usable". It seems to vary unpredictably at different times with the same rig setup. Subjectively, the variation seems to be much more than 12 msec - like maybe 50 msec? I've never played with a CV setup direct to a synth (latency in nanoseconds, people say), but I've gotten pretty sensitive to changes in latency - especially unpredictable ones.
Wondering now if the Radio interface and Link could be the issue. Does the Link get into "states" where it is backed up or bogged down? Maybe it has to do with the WiFi environment it is running in?? Would a Link Reset help (have not really explored this)???
and you tried everything you can.
I think there are many more things to try ... a change in DAW (I have some some quick tests with Reaper, and get different results ... but at a different time, not side-by-side with Cantabile), a change in host, audio interface, USB configuration, etc etc.
However, I am on the road now (playing out 3-4 times a week for the last month and next two months) ... and don't have all the tools to do this testing. Also, I keep changing rig configurations every time I play depending on the needs (and setup time available), so I'm introducing a lot of variability. Feels like I'm around the Gemini VIII stage of the Moon program.
I am hoping that the Aodyo folks such as @join might shed some light on this, and shortcut my hours and hours of trying to track this down ...
I would hate to revert to playing with a wire attached to my Sylphyo ...
-
@clint Thank you for your work, Clint! I‘m a little bit disappointed, that nobody of Aodyo comments your efforts! And i‘m confused about Aodyo: What is their roadmap?
-
@steviek Thanks for that. I'm not really looking for recognition - I'd rather have some understanding of how this works so I can better optimize my system ... or suggestions as to things we might try to make the latency better and (more important) less variable.
-
@clint I must say that latency is no problem for me (Roland Integra 7 as sound module and Line6 Helix as effect device). The moisture problem comes and goes. I have changed my "lips configuration", so saliva doesn't flow so much into the Sylphyo. Perhaps in the future the DLIP-Method could play an important role in the Sylphyo- manufacturing.
-
@Clint Thanks for all the very detailed analyses you made. As soon as I get a sizeable chunk of free time, I intend to carefully read them all from the beginning and contribute tests that can help us understand what's going on and get to the bottom of this.
@steviek Nobody else of Aodyo can comment on this particular issue, unfortunately, but we're reading everything posted. It's just that I can only do one thing at a time, and such a question deserves proper treatment and will take time to answer. Sorry that we've not been very good for giving a sense of where we are and where we are heading to. I hope we'll be able to communicate a bit more often from this point on.
-