First impressions

Feel free to post any broad WARBL questions or comments here.
User avatar
admin
Site Admin
Posts: 680
Joined: Tue Mar 26, 2019 5:17 pm
Contact:

Re: First impressions

Post by admin »

I thought I'd make a diagram to try to make it a bit more clear how the register control "state machine" currently works. I've been meaning to do that for a while.

https://warbl.xyz/WARBL%20state%20machine.pdf
Andrew Mowry
info@warbl.xyz
Dollhead
Posts: 8
Joined: Thu Sep 02, 2021 1:39 pm

Re: First impressions

Post by Dollhead »

ahh, yes OK.

I've only had it a few days and I've fine tuned everything to "slightly better then a real whistle" if I do say so myself, lol, minus some foibles. It's even responding to some more outlandish techniques like flutter tongue and trill flicking. I wanna say congrats on making such a kick ass piece of kit.

The only 'catapillar in the salad' is this register yodelling issue, I read some of those links and those charts, and now I wish to throw in my own 2c.
I'll tell you some of my reasoning, and conclusions, and let you do with it what you will :D
It's both a complex problem and a simple problem and I propose a "LIFE HACK" to fix it and make everything better.

I reckon. There should be enough time for a tool like WARBL — more simply — to emulate 'knowing' your intent to 'drop-a-register' or 'go-to-silence', then what I've seen in some of those flow charts and discussions here thus far. What's more, it should be possible to do this without impacting the player's response-feel in any tangible way becasue it's something that happens naturally in real life, when whistle players drops registers on a sustained note (lets call it drop lag, or drop resistance). In other other words, If WARBL can make the decision in-the-same-time-or-less as a real whistle — and it should be capable of it; it already does more difficult things — then it would instantly fix this issue and never "yodel down a register" unintentionally; not only when heading down to silence, but never at any point in fact.

With a real whistle/lo whistle/trad flute, there are those few milliseconds when the instrument holds the overblown note by itself, with it's own acoustic energy rather than go down the 8ve of that same note. You can stop the note immediatly yes, or change the note immediatly yes (to another note in that register or the lower register) but you can't go down a register on that note immediatly; the whistle 'fights you' for a few milliseconds. Real whistles tend not to 'yodel' on softly held upper-register-notes because of this.
Wouldn't it be infinitely more straight-forward to just mirror that by putting a few milliseconds of "are you SURE you wanna drop register?" built into 'overblown register' itself? Nothing to do with note-off, or change-of-note, or going up a register, just a personal, few milliseconds "vendetta" against flicking down from a sustained upper note to it's lower octave brother specifically.
That's what I though 'drop time' actually did. It's what real acoustic whistles do.

What's more, now you have this 'grace period' that is just reflecting how real instrument behave anyways, specifically-and-only when leaving an overblown note for the same note in the register below. This would probably help register drops elsewhere (not just going to silence) and make the instrument easier to finetune elsewhere as well.

In the few milliseconds of lag leaving the upper register, the instrument will already know if the note is being stopped by the player (according to the other parameters that are already a part of how WARBL functions) or, if the player had indeed intended to flick to the lower register organically. Meanwhile the only lag this "fix" will cause, is the delay a real whistle also does doing this down-flick. It wouldn't interfere with the other parameters, or with the player overriding the bias (forcing a faster register drop) with silence, note changes or ornamentation etc.

All the mathematics and adjustment can just start and stop right there, and the problem is solved by mimicking what a real instrument does anyways.

win/win?
User avatar
admin
Site Admin
Posts: 680
Joined: Tue Mar 26, 2019 5:17 pm
Contact:

Re: First impressions

Post by admin »

I'll experiment a little and see what I can come up with. I see your point that a delay would be only necessary when the pressure is dropping, so wouldn't add latency to most notes. I think this is basically what Louis suggested in his comments on GitHub in the above link. I guess the only question is how much of the lag effect that you describe is due to pressure hysteresis and how much is an actual time lag--I suppose on a real instrument it's the same thing because of the pressure taking some time to dissipate. Possibly some combination of the two would be best in terms of emulation. I've had some people see this discussion and ask me not change anything, so I can't guarantee that something make its way to official firmware, but I'll test some options. Thanks again for your input!
Andrew Mowry
info@warbl.xyz
LouisB
Posts: 16
Joined: Fri Jul 02, 2021 4:22 pm

Re: First impressions

Post by LouisB »

Yes @Dollhead I had quite a few problems with overblowing. It is working well for me now. I have just released a test version of the code that I have been working on. Instructions are here: viewtopic.php?p=1031#p1031
User avatar
admin
Site Admin
Posts: 680
Joined: Tue Mar 26, 2019 5:17 pm
Contact:

Re: First impressions

Post by admin »

Louis' changes to overblowing are now available in the release of firmware v. 2.1:

viewtopic.php?f=7&t=311

I also updated the state machine diagram to illustrate how the new jump/drop algorithm works:

https://warbl.xyz/WARBL%20state%20machine.pdf
Andrew Mowry
info@warbl.xyz
Post Reply