Hm ... pretty large standard deviation ...
What can be the cause for such variations and do they play a role for general latency?
That's maybe Jitter. The higher the breath rate, the more jitter you get. Here are MIDI Jitter measurements from a Sylphyo connected via USB:
The first graph is just a breath example for the test, don't compare it to the other graphs. Please do not trust the 1000 Hz graph because this seems to go beyond the border of my measurement possibilities.
If a "jitter interpreter" drops unrealistic jumps instead of interpolating the history, you may get less "good" events and therefore, in an unlucky moment, more latency with a high breath rate than with the tamer jitter of lower rates. An unlucky moment could be right at the start of playing, at least this may be part of explanation why you get the best attack at the lowest rate, where almost every event counts. This is just a wild theory but as good as many others :-)
But the most important question, after you switched back from technician to musician again:
Do you actually feel a better attack with the lowest breath rate? It's clear that slow rates do not allow advanced techniques like flutter tounge, but is the overall feeling different? Specifically for the attack I would expect a timing difference between Sylphyo's audio out and any MIDI process but not so much between settings of MIDI processes. Well, for a MIDI guitar the attack is very important, but for a wind instrument ... ?
I'm not a trained horn player, but I can't create a puff of air that is comparable to the attack of a string or a key.
Yeah, these are good solutions too. Many times during design I've pondered whether to do solution 2, but I wouldn't because it is sort of complicated to pull off right… but now that we're seeing that mitigating the downsides of the simplest way (sequential evaluation) could be complicated too, maybe it's worth a shot after all.
I'll think about it. Don't hesitate to shoot ideas, I won't hesitate to steal them :).
edit: Evaluating mappings in the reverse order could maybe also work with minimal effort. For modulators, an evaluation in the correct order is better, but there will be cases where you want to add something in the middle of a series of transformations, and the problem will show up again.
@join This is super excellent news !!! Day long LFOs... I've been wanting these since my 1st day with this gear... MIDI CC matrix control !!!! So great !
Well... Looking forward to the beta... of 2.0 !!!
Thank you so much for the feedback. I am new to this kind of analysis / testing, but I really want to understand how this all works to get the best control over my sound ...
Settings are provided below. Key settings I guess are:
** MIDI Mapping
Breath rate: Low (125 Hz) -- Based on the XpressO and Ingo's advice
Capture delay: 20ms
Reaction time: 20ms
Breath rate is Low / 125Hz because of the XpressO, which was choking (for a while, at least) on Medium and above.
Velocity = Dynamic because many of the VSTs I use depend on that. My VL70-m is fantastic, but I currently have a (very) hybrid rig (still in the expansion / exploration phase with my rig).
Key Feature would be a way to re-configure the Sylphyo via MIDI program changes. I could then switch settings when switching sound rendering modules or VSTs. Without that, I am really stuck with the "least common denominator" across all my sound rendering tools.
I am not sure what your term "key debounce time" is ... is it Keys / Reaction time?
I will use 15 - Cheap Tunes in the future for testing ... (that sounds the most immediate to me of the choices you suggested).
I never considered that the sound triggering mechanism might be other than MIDI. But, of course, analog synths use CV and that's a whole 'nother world ... would love to understand how this actually works on the Sylphyo!
All the settings I used for latency tests:
Clint's Configuration Settings for the Aodyo Sylphyo
Firmware version: 1.4.8
As of 11/27/2021
* MIDI Mapping
Breath: CC 2
Breath rate: Low (125 Hz) -- Based on the XpressO and Ingo's advice
...per CC: On
Delay notes if needed: On
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 >
Send Bank Off
Bank (MSB) ---
Bank (LSB) ---
Note-off delay 10ms
Octaves: 5(+2) octaves
Invert ocatves: Disabled
Left pinky: -1st: Disabled
Right pinky: +1st: Disabled
Replay same note: Disabled
Reaction time: 20ms
R.time octaves: 20ms (If [Reaction time] is 0ms, then this must be 0ms)
More sensitive: Enabled
Key-bend (BETA): PB+
Key noise (BETA): Disabled
Function: Ctrl (latch)
Top edge: Bend -
Btm. edge: Ctrl.
Edge size: 9mm
Shake to move: On
Shake vibrato: On
Elevation control: On
Range: +-35 degrees
Roll control: On
Range: +-20 degrees
Compass ctrl. (BETA): On
Range: +-20 degrees
Always on: Off
* Base Key: A3
* Output: MIDI ch. 1
* Invert Display: Off
* Receiver device: Connected CH 23
* LED: Off
Not quite a rig schematic, but a rigging schematic, somehow :-)
This is the first part of my Sylphyo interface to play with software instruments.
Originally I wanted it in Logic or Mainstage or another DAW I own, but the basically simple task went more complicated than I had expected. So I decided to make my own Sylphyo DAW in Max and enjoy the graphical possibilities.
Top left, Sylphyo MIDI comes in through moving faders and is routed by a 12x12 matrix. Horizontal top is incoming, vertical right matrix border is outgoing. Each matrix output can be scaled, slowed down (Glide) and can have a curve applied. The right side of the screenshot is the graphical live display and shows all used Sylphyo messages after processing. Breath is the filled circle, blue background is Elevation, the two lines are Roll and Compass.
The screenshot tells that the Sylphyo is blown with medium force (thin outer circle is maximum). The instrument is held down and slightly rolled to the left with a bit of left Compass. The played note is a G4 with velocity 115. All other values are also shown in several colored faders.
Have not played much yet, but it seems to work well. Not many refinements needed, just a little technical elegance is missing (you have to look at the backside of the screenshot to see that).
Click on the image to show it in original size.
Next part to do are connections and mappings to a handful of virtual instruments.
There is no audio input directly on the Sylphyo, nor Bluetooth connectivity (primarily for latency reasons), but there are a few things I can recommend you, having been doing this myself when practicing with iReal Pro and the Amazing Slow Downer.
You can play the backing track on the iPhone speakers or on Bluetooth speakers, and get an inexpensive battery-powered speaker with AUX input only (a bit hard to find, but generally all Bluetooth speakers tend to have outrageously high latency even with the AUX input).
But when I want to practice at the local park, I use a headset cable splitter, which has a male TRRS connector and a headphone and a mic female connectors at the other end.
With this, I plug:
the TRRS end into your iPhone,
your headphones or speakers into the headphone port of the splitter,
and a minijack cable connected to your Sylphyo into the mic port of the splitter.
Then, I use the Audiobus 2 app on my iPhone to monitor the mic input, so that I can hear the Sylphyo on the headphones, in addition to whatever play-along app I use.
It's not as straightforward as having a direct AUX input on the Sylphyo (which we might consider for a future version), but in practice its no big deal.
I always have my cables and headphones ready to use in my backpack, so I just have to plug the thing to my iPhone and Sylphyo, open Audiobus and my play-along with a few taps, and I'm good for hours of being the weird guy having fun blowing into a silent thing in the middle of the park :).
This is definitely not expected behavior, and to my knowledge not related to the firmware, and none of the sounds are remotely close to the CPU load that would result in audio dropouts in any situation (we aggressively test against this before releasing each sound). As Matthias is investigating the issue with you by mail and will try to determine where the problem comes from and what we can do about it, I hope you don't mind that we close this topic here.
More generally, is there a list of compatible mini keyboards anywhere on the Anyma site? I cannot find one.
On the assumption that the MPK isn't going to be able to be supported anytime soon, I would like to get an inexpensive one, but fear buying another brand that won't communicate with the synth – as there seem to be many that don't work at the moment.
@bengersfood Yes. I've tried various power sources, including an Apple ipad USB charger, direct power from a smallish USB power brick, and 5V produced from an adjustable step up / down (aka buck boost) converter, powered by a 9V DC wall wart, then the same converter powered by a NiMH battery pack.
The advantages of the buck boost converter are that it is a very quiet power supply, which I normally use with guitar pedals, and also that it meant I could eliminate the USB A -> DC jack cable because it has its own (short) DC jack cable.
In all cases, the 2.3kHz (or so) whine noise starts within a minute of turning it on from cold, or immediately, if it's already warmed up, i.e. it's been on for a while, then turned off and back on again.
About the LED noise being picked up - if I use a patch with the external audio in, I can hear the difference when I turn the LED brightness level up and down in the settings - brighter is louder.
My guess is that it's the LEDs I'm hearing at all times, even with the volume turned all the way down, which is why I asked about the PWM frequency that drives them.
@origami23 I didn't noticed something that strong but I agree it's slightly unstable in the timing.
Also something that would be great is to be able to have all the values for the pitch. I tried to set up on 5st but it's impossible. It jump from 4.9 to 5.1st. And it the case of complexes harmonics ratios, frequencies are beating in each others a lot... Would it be possible to have every single float values (by steps of 0.1)? I also tried to modify it on the synth and in the Editor and it just seems to jump from odd value to the next odd value (0.1 > 0.3 > 0.5 > 0.7 > 0.9 etc).
Thanks : your advices will be very usefull. looking at the warbl default fingering i realize that i will need to invent a new fingering to get # and b notes and this is not easy ... and may be sylphyo offers more possibility on that. Probably there is already a best choice which has been adopted by most other recorder players...(?)
@peter-ostry I should also point out another issue: cross-fingered key bends produce no bend at all. For example, key-bending from <xox|ooo to <oox|ooo does not produce a key bend. This is critical for the Native American flute fingerings I typically play, and I am guessing is probably an issue in other fingerings.
The challenge (I'm guessing) is knowledge of the pitch of the target note of the key bend. The static default of +2 semitones needs to be replaced by a look-ahead to what pitch will result when a key-bend is initiated and carried to full-bend ...
The motivation is different in my case. I'd like to do sound design with the Anyma Phi as a standalone device, no keyboard (in whatever location I want, sofa, park), then when I'm done, connect a keyboard.
You can kind of hack round this using the piezo with envelope follower rise and fall as ADSR type controls, but that's not really the same thing.
@andyhornblower Thanks for your suggestion.
The issue with that, is that we designed the physical model to play well in a certain range. And while we could feasibly extend it a few semitones lower, it becomes a slippery slope, as we need to rework the physical model to include lower tones, which then prompts people to ask why we can't go even lower, etc.
I hope this makes sense, we will consider your request as much as we are able but can't promise anything to that end. Let me know if you have any further questions.
@jay-ayliff There are two ways to play the middle C in the recorder mode (assuming you are in base key of C), first with the index finger of the left hand (OxooOooo_), and second with the middle finger of left hand and the octave thumb (XxooOooo_). If your thumb is incorrectly pressing the octave key you might be accidentally playing a C instead of a B?