Nice jitter analysis! I'm new to all this latency stuff, but bending my brain around it.
My Sylphyo needed a reset after all the hundreds of settting changes, so I decided to review my entire Sylphyo config and (now that I understand things a lot better) made some fundamental changes.
My feeling is that my prior testing is highly dependent on my prior settings. I'll basically need to re-test with the new settings (shown below).
Two interesting techniques I've stumbled on:
Humming into the flute is a great way to see how a sound module behaves at rapid-fire breath pressure changes and/or lots of note-on/note-off pairs per sec.
Playing into speakers and changing your distance from those speakers. At one msec per foot, I got to experience the sound/feel of adding another 20msec of latency. Works great with a dry sound. Great ear training for latency.
>>> Setting Changes
Here are the mods I've made in my setup, with some rationale. These changes have made, for me, a substantial improvement in playability and latency. My full setup is listed below.
MIDI Mapping / Breath / Breath rate: Low (125 Hz) ==> High (500 Hz)
After all my testing (rather than real playing) it turns out that Low (125 Hz) simply doesn't work on my VL70-m. Not usable. Don't know exactly why, but after exercising the VL70-m, XpressO, and Respiro, High (500 Hz) is the winner.
Max (1 kHz) overloads the VL70-m.
MIDI Mapping / Breath / Delay notes if needed: On ==> Off
Turned this off on general principle. I can see the results in the MIDI stream, but have not (yet) heard any real-world results from this setting.
Note that the "syndrome" described below (in Note-off delay) does NOT seem to be affected by whether this setting is ON or OFF.
MIDI Mapping / Velocity: Dynamic, 20ms, 127 ==> 1, ---, ---
To eliminate the 20ms delay in determining the dynamic velocity. The VL70-m and XpressO seem OK with this.
MIDI Mapping / Note-off delay: 10ms ==> 1ms
Lowered in a general bid to improve latency. I see the change in the MIDI stream, but cannot detect a real-world difference in Respiro or the VL70-m. Setting this value too high (like 60ms) induces a syndrome where, occasionally during extremely fast legato runs with Respiro, sound will come to an end.
It looks like a MIDI sequencing issue - there is no pending Note On even though Breath Controller data is still flowing.
Breath / Curve: Log ==> Linear
Change from Log to Linear produces much better response at low breath pressures. This long-standing issue (error) was born in the days when I was wrestling with "grit" from aliasing as Breath Controller values hovered around 0-1-2-3-2-3-2-1-0 levels. I had applied the Log curve, thinking it was something line an exponential curve, when actually the Log increases its output quickly from low breath pressures.
Breath / Filtering: On ==> Off
Based on the description, this should have been off all-along. Interesting to note that Pedro Eustache [PE] had this set ON in his May 2019 settings.
Keys / Reaction time: 20ms ==> 1ms
A good test is whether intermediate notes are heard when doing a trill involving multiple fingers. On NativeFlute, trilling between <ooo|xoo and <xxo|xoo is a good test. If there are intermediate transient fingerings of <oxo|xoo, then an octave-up "pop" will be heard in addition to the two intended trill pitch. However, this is an extreme case. In practice, a trill between <xxx|xxx and <xxx|xoo is more representative of real play, and an accidental transient note of <xxx|xxo is hardly noticable (if at all).
In tests on 12/1/2021, using Respiro and the <ooo|xoo and <xxo|xoo trill, I got frequent pops at 1ms, occasional pops at 10ms, and almost no pops at 15 ms. However, I am chosing 1ms now because of the excellent responsive play on the VL70-m in exchange for an occasional unintended transient note in oddball situations.
Keys / More Sensitive: On ==> Off
Not much info on this setting. I'm turning it off to see what happens.
>>> Full Settings
Clint's Configuration Settings for the Aodyo Sylphyo Firmware version: 1.4.8 As of 12/01/2021 %% A non-default setting (these are the only ones that need to be changed after a Reset). ## A setting that significantly affects the typical MIDI playability of the instrument. * Sound Volume: 100% %% Reverb: 70% %% * MIDI Mapping Breath: CC 2, --, -- %% Breath rate: High (500 Hz) %% ## ...per CC: On Delay notes if needed: Off %% ## Velocity: 1 %% ## Capture delay: 20ms Max. velocity: 127 %% Slider ctrl. CC 1 Top slider ctrl. CC 12 Btm. slider ctrl. CC 13 Elevation ctrl. CC 75 Roll ctrl. CC 76 Compass ctrl. CC 77 Key-bend ctrl. CC 78 Program change > Off, ---, --- Note-off delay: 1ms %% ## * Breath Minimum: 20 Range: 600 Curve: Linear %% ## Filtering: Off %% ## * Keys Fingering: NativeFlute+ %% Octaves: 5(+2) octaves Invert ocatves: Disabled Left pinky: -1st: Disabled Right pinky: +1st: Disabled Replay same note: Disabled Reaction time: 1ms %% ## R.time octaves: 30ms More sensitive: Disabled %% ## Key-bend (BETA): PB+ %% Key noise (BETA): Disabled * Slider Function: Control (latch) Top edge: Bend - Btm. edge: Control Edge size: 9mm * Movement Shake to move: On Shake vibrato: On Range: 20% %% Sensitivity: 43% Threshold: 9% Elevation control: On Bidirectional: Off Absolute: Off Range: +-35 degrees Roll control: On Bidirectional: Off Absolute: Off Range: +-20 degrees Compass ctrl. (BETA): On Absolute: Off Bidirectional: Off Range: +-20 degrees %% Always on: Off ---- * Base Key: A3 %% * Output: MIDI ch. 1 ---- * Invert Display: Off * Receiver device: Connected CH 23 * LED: Off