"Hidden" Vowel Filter Device!

How to

Recently I noticed the Chorus device has a “Vowel” setting… But waitaminute! Vowel Filter? We don’t have a Vowel Filter device!

So I figured, what if I set the Chorus to the lowest Rate, zero depth, zero feedback, zero delay, 100% wet and the effect to “Vowel”? You should get just the Vowel Filtered signal without any of the chorusing.

7894 formant.png

And this works!!!

(do as I did and save it to a preset named “Vowel Filter” for the Chorus Device, for easy use)

From a quick listening comparison, it appears this Vowel Filter is the very same filter that you can find in the instrument Modulation sets under the “Cut” (filter/effects) column.

Except that you can use this one as a regular effects device in any of your Device Chains! You can control the “Vowel”, “Resonance” and “Drive” sliders using automation, LFOs or pattern commands. You can use it in send tracks, or the (parallel!) effect chains in Renoise instruments. So many possibilities, such versatility!

The only downside appears to be that the “Vowel” slider doesn’t seem to smoothly “morph” the formants, rather discretely steps through a predefined number of formant configurations (I haven’t yet checked how many steps it has exactly, if someone figures that out please post because it’ll help drawing the right envelopes). The modulation set version of the Vowel Filter has the same problem behaviour btw.

That’s too bad because if it’d morph (interpolate) the frequencies, that would give us a powerful key ingredient to create the deliciously filthy disgusting “growl” sounds found in certain oldschool psytrance, a lot of dubstep and (relatively modern) drumnbass styles.

That’s the trick I wanted to share.

And now, I’ll just ramble on for a bit:

I digress–Formants and ways to build Vowel Filters that can morph

This may be a bit too technical for some, but knowledge is cool. Since I haven’t yet built out these ideas to an extent that I’m happy with, there won’t be any screenshots. Just ask for details if my explanation is unclear.

Quick bit of background on what exactly is a Vowel Filter and why’s it sound like human(-ish) speech vowels:

When you say “AAAAA”, a harmonically rich buzzing sound emanates from your vocal chords, at the frequency you’re singing or speaking. I imagine the original vocal chord buzz sounds a lot like a pulse wave (aka pulse train), but a regular sawtooth will do in a pinch (or try a super short loop on a random wave such as a snaredrum sample, I love that sound when filtered). But that doesn’t sound like voice yet, it’s just the sort of waves you preferably want to use the filter on. After the vocal chords comes the vocal tract. Basically your throat/vocal tract is a kind of cavity resonator, which can be seen as a filter with multiple sharp resonant peaks. These peaks are called “formants”. Changing the shape of your vocal tract (aka “speaking”) changes the centre frequencies of these peaks. The two largest peaks/formants are the most important for a human to determine what vowel is spoken (there’s more peaks in real speech but I guess they’re for character or flavour or something). You can find a nice list of vowels and their two major formant frequencies F1 and F2 on Wikipedia: https://en.wikipedia.org/wiki/Formant#Phonetics

Since a Vowel filter is controlled by two frequencies instead of one, and the formant table (when plotted in 2D) doesn’t quite interpolate to a nice single 2D curve or anything, you can’t easily control it with just a single slider. So I can understand why the Renoise team went with a discrete stepping sequence of “vowel points”, instead of smoothly morphing. Though an inertia setting for the frequencies would have been possible, and nice to have, IMHO.

If you want that, you’re gonna have to build your own though. Which is not that hard to do really.

One way of building your own formant filter in Renoise is by using the EQ5 to make two sharp (small Width value) frequency boosts, and controlling their centre frequencies using a Meta Device. For quick experimenting, I find the XY Pad to be a good one for this. Set the frequency ranges to the ranges found in the Wikipedia link above (235-850Hz for F1, and 595-2400 for F2). You’ll find some very vowel-y sounds quickly if you move the XY Pad controller around.

Another way to do it, different sound, but just as “vowel-y”: Use a highpass and lowpass filter in sequence, both with resonance boosted quite high, creating two peaks at their respective resonant frequencies. Control F1 with the highpass and F2 with the lowpass (so together they form a sort of bandpass with a peak at each slope). You can use any filter that has both a HP and LP mode and a resonance control: Digital Biquad, Analog K35, Analog Moog or even the oldschool “deprecated” legacy Filter device (search the forums for how to activate it, I find it quite useful sometimes because it’s got yet a slightly different sound than the other filters). Use the XY Pad again to control both frequencies, for quick experimenting.

While the XY Pad works fine to explore the formant space and find some nice vowel-y sounds, the real proper way to do it would be to remap the ranges using two LFOs so wherever you drag the control, it’ll hit on or be close to an actual proper vowel from the frequency table (being a bit vague here–use your imagination) (also maybe not use the entire table because some vowels are more useful than others, start with your basic “aeiou” perhaps). That requires quite a bit of fiddling and creative thinking on how exactly you want it to behave, I’m currently still playing with Python code to generate these LFO curves. Mostly playing, so don’t expect anything soon, but when I have something I’ll post it of course :slight_smile: My goal is to create something that isn’t just capable of making the vowel sounds (that’s easy enough) but also has controls that make morphing between them pleasant and intuitive.

Final question / thoughts

I almost kind of feel like I discovered an “Easter Egg”, with the Formant Vowel Filter sort-of hidden in the Chorus Device :slight_smile:

But maybe this trick was already widely known, or known by our Renoise Ninjas? I’d love to hear about it.

Thanks for reminding me about that hidden gem. Actually it seems to work great also as some subtle coloration filter! Very nice, will try that.

What annoys me a bit:

  • Frequency is not in Hz, only percent :smashed:

  • On mouse over, IMO the value should appear IMMEDIATELY, and not as tooltip, but on the place where it appears while dragging

  • This filters inside a Filter4 device

Ok, sorry for beating a dead horse again (and again and again).

Frequency is not in Hz, only percent :smashed:

Actually, to be precise, the “Vowel” slider doesn’t quite control a particular frequency at all, regardless of its units being percent or Hz.

Like I explained in the “Quick bit of background” part of my post, a formant filter is basically a filter with two peaking resonant frequencies. And they don’t really have an obvious relation to one another (it’s not like one is always 3x the freq of the other or something like that). So you can imagine it’s a bit hard to capture that (basically 2D) behaviour as a (one dimensional) slider, let alone a single frequency value in Hz.

You can clearly see this if you load the noise_white_mono sample preset, turn the Resonance to max (and Drive to zero), turn on the spectogram view (slow scrolling). Then move the “Vowel” slider around a bit.

In fact I just tried this (I should have done so earlier) and I noticed a few interesting things about the Vowel Filter:

  • It turns out that Renoise’s Vowel Filter does in fact use THREE formant peaks, not just one!
  • Sliding the “Vowel” value slowly, you can see the three peaks moving apart and to and fro, but not in any obvious pattern. That’s what I meant above with not having an obvious relation to eachother.
  • And I was wrong about another thing. The formant peaks do sort of morph. I hooked the “Vowel” slider to a very slow (512LPC, @128BPM) LFO (custom envelope, triangle from 0% to 100% back to 0%). If you do this, it moves slowly through all the different vowels (still haven’t bothered to count how many it moves through btw). And it does in fact interpolate the peaks from one vowel to the next (or previous, when the LFO moves back down). The shape of the interpolation looks like your basic exponential “leaky bucket” interpolator, basically exactly what the “Inertial Slider” Formula Device would do to a point envelope. So not only does it interpolate, it’s got exactly the sort of inertia that my original post said “would be nice to have”, apologies to the Renoise team for making assumptions from just a quick listen instead of MATH and ANALYSIS :wink: But while this is nice, it’s still not very useful, because the three formant peak frequencies are still a discrete set (probably a lookup-table), and the interpolation occurs only when you move from a formant to the one right next to it (before or after). If you give it a discrete LFO envelope (Random or Custom points), it just switches without interpolation. If you would give it a randomized Custom linear envelope, it would very quickly interpolate through all the vowels in between, giving an unwanted warbly sound. Imagine the Vowel slider goes through a table of formant peaks for the vowels “aeiou”, in order (it doesn’t, but for the sake of demonstration). Now you don’t only want to be able to make a smooth “aaaaeeee” or “ooooiiii”, but also “eeeeuuuu” but if you try that you’ll get a “eeiioouu”, which isn’t at all like quite how your vocal tract would move the peaks. Fortunately this should be achievable with the other methods I described, it’s just a bit of work :slight_smile:

On mouse over, IMO the value should appear IMMEDIATELY, and not as tooltip, but on the place where it appears while dragging

You could sort of fix this by encapsulating the thing into a Doofer Device, and you’ll get some nice round knobs :slight_smile:

This filters inside a Filter4 device

I’m really curious what you mean by this, cause I don’t understand :slight_smile: What’s a Filter4 device?

Yes the vowel has multiple spikes, but still, I find a Hz / kHz value much more appealing than percent for a cutoff :drummer: Always take the first spike! Or wait, no, the middle!

Ok, but … what did you mean by “Filter4 device”? I feel like I’ve heard the term before, is it something to do with Renoise internals?

hmmm…this was supposed to be a comment, but i’m not sure where it went…some browser addon that turns my posts empty if i post with the quick reply.

Hi! Nice thread idea. I have already done some studies of the matter of vowel filtering, so I’d like to step into the discussion.

I also know other techniques than you describe. For example using sends (with extra send channels or inside the instrument fx), you can do parallel processing - you split the pulse signal with multiple sends, then you can make one channel per formant with dedicated filters inside to create each formants ringing. Then mixed back together to create the vowel sound. It works very nice.

I also have to add, that the formants in the human vocal tract tend to vary in “strength” between vowels, which can be simulated by gaining the filter’s output, or controlling resonance. This will enhance an organic “real voice” feeling. Also doing up to 5 formants, not just 2, will further enhance credibility of the vowels. You just need the right data. If done right, you can even tell the voice timbre of the speaker/singer the data was generated from through such modulations.

Also for further control the formula devices are gold. I have already developed formulas that can map pretty exact Hz Values to filter cutoffs of the renoise filter devices. You can just write the formant tables into the devices as data in the user code section. Last night I built such an instrument as a test (before I just used morphing between 2 vowel like sounds), it works very well, even in raw state the formants sound fantastic.

Well I’m on a pos shitty netbook tonight without my library and my experiments from last night, but I will still try to do something usable. If not tonight then I will finish at my workstation the next days. Downside is, it will have to be a renoise native instrument using sample, as the parallel processing is in the inst Fx, just like my vocoder thing. I always use saw_c1 as basic sample to generate tones, but really you can use many samples with success.

My idea on morphin control would be 2 dials, each setting a vowel from a list. These steps be discrete. when each set, it will have a configurable inertia to reaching the target state (or two inertias, one for each vowel state). I already have the direct morphing working, it is seamless. Then I thought another dial to morph between the 2 selected vowels.

But I’m open to other ideas on how to sequence vowel passages morphing between vowels, then I will try to implement what seems to make most sense. Remember in renoise you can trigger single values via pattern fx commands or with note or velocity data via vel/key trackers, and this can be much more intuitive.

And yeh I knew about the vow filter in chorus and flanger, it was also known on this forum, maybe not by all users. You basically get all the filters from the instrument modulations in these devices. Also check out the decimator, I like it a lot & already found perfect tuning formula for it.

So…yeh. Maybe you will like this. I’m currently building a tune, inspired by building yet another vowel synth, and spliced a vowel saw synth instrument out of it tonight.

@triple zero this instrument might be of interest for you. I solved the problem of interpolation going through vowels in between. In my instrumnet, each formant has its own interpolator with controllable lag 0…100ms. When you make fast moves through the range and have some lag, the target vowel is approached directly from the current position of each formant. It sounds so sweet and clean! But it requires lots of formula devices… One could also set up an xy soluting for selecting the vowels, but I stayed with a single range, also because the smoothing works so well and has so little glitches even if you morph very distant vowels.

Ok so then: There are two ways to control the vowels of this instrument.

The first is sequenced in a synth line, is using pattern fx via an instrument macro device, onto the first macro. The effect command value/number corresponds to one vowel in the list. so… FX Command on the device “XX01” will be first vowel, “XX02” the second, there’s 8. “XX00” (macro dial at 00.0%) will turn pattern control off and output the current value of the next “dial” macro. I have sequenced a little bassline in the demo file, that uses this technique of selecting the vowels. Yes you need a text file for remembering number/sound, you find the numbers in the formula device data.

The other way is using the “dial” macro, which will do a smooth run through the 8 available vowels, also interpolating in between with a lag. The “lag” macro controls the delay, small delay will sound very robotish with non-smooth automation, too long delay like drunk or hardly reaching the target vowel.

The instrument will follow both macros, but the last one touched/moved also decides which, aside from the first being zero.

Then reso and dist, these control vowel filtering resonance and some overdrive, just like with the chorus device.

The “choke” macro, well leave it at zero. Else you will know why the guy who’s voice was recorded for the data almost didn’t survive the job. Haha just kidding, I used data from the web, but it sounds cool I think.

Have fun with it ppl! If you modify and/or enhance, please upload and give me a note, and feel free to share with anyone who like renoise!

1 Like

any chance to re-upload?