Flute Physics

Just for fun, I started experimenting with a glass armonica design. It’s based on the flute resonator, but instead of a jet we drive it with something between filtered noise and a sine. Then instead of normal polyphony, it’s 37 independent resonators that are all potentially running at once with long delay tails. I think it sounds quite lovely, but it just does the one thing!

The mode of operation is a poly v/oct in and a poly gate - these control which bowls you are touching. Then a poly velocity input controls how hard you press the bowls. Lastly, a poly damper input can be used to dampen whichever v/oct notes are specified. It’s a little awkward with the gate and damp as separate gate inputs, but it seemed to make the most sense. Another, more complex, option would be to have a separate v/oct for the damper, but I think it’s probably overkill. There’s a global damper control as well, for all the bowls at once, that’s easier to operate.

Opinions welcome!

5 Likes

superb idea!

RELEASE VELOCITY comes to my mind as an optional feature, instead of “natural” sounding decay it could be mapped as a dampening (you decide only in loudness or combined with filtering - I hope I have explained myself, caffeine is still not at 100% this morning)

p.s. your Flute Physics is running for hours in my PC, burning in new headphones, I LOVE the droning sounds it is capable of

Awesome, glad you like it!!

You can set attack/release in the context menu of the flute (and the armonica).

Also you can use the armonica pressure input to may any curve to the pressure gate, so you can make like a really looong release or whatnot with external patching.

1 Like

Now in the nightly builds. Glass has 37 resonators that pan in stereo, and it takes poly v/oct gate and velocity inputs. I added an external input, which only stimulates the active notes, leading to some interesting harmonic effects. Enjoy!

8 Likes

Now THIS is something even better! We don’t really have any physical model like this! Flutes we may have more options but a glass armonica? Yes we’d love this to be added to the rack! Needs to be able to be struck and played with sustain

1 Like

@codyge today - for the second time in 3 days (since I have updated AULOS) - my pc shut down while playing a patch with AULOS loaded. win10pro, workstation laptop, dell precision 7710 with 48gb of ram. in these years it shut down for cpu high temperature or cpu spikes, only. I don’t know if it’s something changed from the first version to the second one you uploaded. just to let you know :wink:

1 Like

Thank you for the feedback. I will look into the CPU spikes!

1 Like

Hi all. Thanks again to everyone for their comments and testing feedback!

I have a new version in the nightly builds for you. This one is a big one.

First for Glass, I’ve reworked the overdrive system so the output is louder without distorting. I also worked a lot on the CPU, to get it to be more reasonable with so many resonators.

Then for Aulos: I totally went all in on CPU optimizations, so the flutes go to sleep when not in use. This makes a big difference when playing polyphonically, as you might only use 1 out of 6 voices at a time mostly. I also think I fixed the ‘overblow’ system, now it is much more stable when you blow too hard! Instead of my fancy energy drain (CPU drain!) system, I changed it so that high RMS ducks the internal filtering system and that’s way more stable. Then I fixed the range problem, when you play out of register of the flute the Jet function adapts to the next higher harmonic automatically. So you can now play about 3 octaves on any flute length by playing in higher registers, and naturally this results in less fundamental when you play in a higher register vs adjusting the pipe length to longer. I think I might have also fixed the CPU spiking.

2 Likes

Man, you knocked it out of the park. Glass is awesome, and only played with it an hour or so so far. This will be in many a patch I surmise, when I fully grok this beast. Thanks for another fun toy!

2 Likes

opening a new discussion for GLASS ? first thing: IMHO the faders still have to be “tuned” with proper min/max values internally. I recognize it because in the pseudo-generative patche I use to test it, it varies too much in “output volume”. AULOS atm has much more wide sweet spots.

p.s. btw I’m loving to play it manually. if you don’t love the sounds of a GLASSharmonica I don’t know what to say :smiley:

p.p.s. no spikes atm on GLASS, but I didn’t test AULOS properly again. probably tomorrow

1 Like

The real glass armonica is actually a lot worse even than that, to play a note you need to adjust the rotation speed to get the proper lateral speed for each bowl to sound!

This video is the best one on the topic imo:

So the glass setting especially is very touchy, but it’s a bit how the instrument works. The model simulates the friction based on the pressure applied and rotation speed (ignoring the diameters for sanity) and the water. The energy stimulates the bowl resonances, with water allowing the bowls to resonate more strongly at their fundamental. Then the bowl energies all decay naturally. The sliders will be quite sensitive to modulation, so set up for your sweet spot and set the trimmers quite low.

3 Likes

Adding some useless Trivia…

The Glass Armonica/Hamonica/Harp dates from 1761 (!) and was invented by none other then Benjamin Franklin (!).

When Benjamin Franklin invented his mechanical version of the instrument in 1761, he called it the armonica, based on the Italian word armonia , which means “harmony”.[3][4] The unrelated free-reed wind instrument aeolina, today called the “harmonica”, was not invented until 1821, sixty years later.

3 Likes

Just chippin’ in for the Flute model(s).

Maybe checkout this very elegant and great sounding solution for ‘legato’ flute note transitions, based on crossfading: preparing the next note and transitioning towards it.

Obviously for a flute with per-note holes, ‘legato’ is actually transitioning from one note to another in discrete steps. But…in this solution it is not simply jumping from one note to the next. The next note is prepared (in a seperate delay line) and note1 transitions towards exciter-noise-only and then towards note2.

Sounds great! Maybe add to the flute model as an option?

Notes on Waveguide Synthesis
(realtime examples on the page)

Note Transitions

Notice that the model above has staccato notes. Why? Because I was too lazy to implement proper note transitions. If we attempt to change the length of the delay line while a note is playing, the output does not remotely resemble a legato sound (at best, we can change it slowly and obtain a slide whistle sound). In the legato transition of a real flute, a tone hole is opened or closed, and the bore effectively has a Y-junction during the transition. This can be better modeled by cross-fading between two fixed-length delay lines in the loop. In fact, two delay lines will suffice for any sequence of notes: one of them can always sound while the other secretly changes length.

1 Like

Turns out that the output is mono in Glass even if I feed it 4 channels of V/Oct and modulation. Why would that be? Also the output volume still need a 10dB push to be loud enough. Here is a patch illustrating that:

FG_R2_562_08_Glass_Fun.vcv (17.8 KB)

1 Like

All 37 resonators are panned L to R. So when you play poly v/oct you are just exciting multiple resonators at once. If you want it louder increasing either/both the Water setting or Rotation speed will increase the loudness a lot - as both factor into the friction.

So Glass is a funny one… since it has 37 resonators that all sum together, if you hit a lot of notes it can get very saturated fast. The module uses a golden spiral ratio to set all the resonators at different phases to each other to avoid constructive interference - and this helps a ton. Since the golden ratio is very irrational, it prevents any two notes from being in perfect constructive/destructive alignment. Then the final L/R mixes are sent to a soft ADAA tanh saturator.

But still the issue is that if I increase the gain much more than it is it’ll soft clip frequently when you play a drone of any of lower notes. I could increase the output range a little more (maybe as a context option even?), but you’ll have to accept that doing so will cause more cases where the instrument might clip.

The real armonica instrument is surprisingly quiet! But I know in VCV that’s no excuse :stuck_out_tongue:

Edit: Forgot to mention what an amazingly ethereal patch you made there! Cool stuff!

3 Likes

That is an interesting idea! It would at least 2x the CPU cost though… and Aulos is already a doubled double-waveguide instrument and a CPU hog as it is. I could imagine that if the v/oct changes while the gate remains high, the implementation would be to spin up an extra resonator channel and excite it, and then crossfade over some delta to it. That delta time would be an important parameter. But it’s not clear to me that it would sound right since the notes are generated by sending a simulated turbulant flow into a waveguide resonator, and it takes some time for the note to stabilize.

However, I guess I could see it as a context option if there’s enough interest. I think it is a lot more trouble than the effect is worth personally.

That’s mainly why I suggested as an option. Something you could switch on (if so desired…and at a cost) or off.

Since the transition from one note to another will take some time, there’s probaby plenty time for the waveguide to settle before it’s is even audible while crossfading?

Not sure if you could cheat by not really spinning op a separate shorter or longer delayline, but instead use a phasor approach to modulate the position of an extra pickup point at audiorate, thus simulating a longer or shorter delayline and a thus a different frequency?

Yup. Intended as an option. I just thought it was an interesting and great sounding solution.Especially for slower transitions.

1 Like

Great website you linked to by the way. That would have helped a lot when I was starting Aulos! It has a very similar waveguide structure in the end actually.

Aulos has a dual waveguide, where the secondary one runs in parallel at a register-dependent ratio to reinforce the mode. The feedback loop has a low pass filter in it, and ADAA tanh saturation for the non-linearity. The two v/oct controls set the tube length and the fingering/register, (so if you set Finger lower than the root fundamental of the tube you won’t be able to sound the pipe properly, it’ll make fun squeals). Also, if you finger octave higher notes than the root, the flute shifts into higher registers, which is driven by a change in the jet dynamics. This directly simulates the overblowing in the tube, which I think sounds very nice if you do it right. The problem is that I think it’s a little unintuitive at first how to set pipe vs finger controls.

I guess you have also had a look at the mindboggling amount of research and publications by Julius O. Smith III at Center for Computer Research in Music and Acoustics (CCRMA)

He more or less pioneered the domain of the Digital Waveguide (as implemented in the revolutionary Yamaha VL1 Virtual Acoustic Synthesizer (1993)). But has pioneered and improved so much more in DSP…

Where to even start…

Some top level entries…

Global JOS Index

PHYSICAL AUDIO SIGNAL PROCESSING FOR VIRTUAL MUSICAL INSTRUMENTS AND AUDIO EFFECTS

On Interpolation…

Interpolated Delay Lines, Ideal Bandlimited Interpolation, and Fractional Delay Filter Design

Some sub pages…

Digital Waveguide Synthesis Selected Tutorials, Papers, Programming Examples, (Some) Sound Samples, and Related Links

Physical Modeling Synthesis Update

Winds

3 Likes

Holy moly. Thank you what a treasure trove of quality DSP content those sites are. I just spent hours digging in it and I can see myself getting lost for the foreseeable future trying to wrap my head around some of that stuff!

I also stumbled across this DoctorMix YT video about the YamahaVL1. Honestly I’m blown away by how amazing the VL1 sounds, and especially considering it was made in the early 90s!

In the second video in the same series he also has a great great interview with Julius Smith:

All of this triggers my imposter syndrome quite deeply, but I’m also just having a ton of fun trying to make more realistic and physical sounding instruments in VCV.

3 Likes