AngularMomentum ·
Example of a formant filter with 10 vowels (ee, i, e, ae, ah, aw, uh, oo, u, er) and an X-Y pad to mix four vowels.
From the original SynthMaker forum (2004–2014), with its members’ names and dates.
AngularMomentum ·
Example of a formant filter with 10 vowels (ee, i, e, ae, ah, aw, uh, oo, u, er) and an X-Y pad to mix four vowels.
MichaelBenjamin ·
sounds pretty nice!
AngularMomentum ·
15 dl's 1 reply? That isn't very encouraging posting stuff... 😉
Thanks Benjamin!
Andrew J ·
Thanks Thomas.
It's quite fun morphing when you play a chord. Might be another thing that attic could try for his experimental sound design - perhaps form a sequence of vowels from a well known text and run the filters over the frogs in the rain 😉
Jay ·
This is great AM 😀 i made one of these a wee while ago!
yours uses the same freq tables that i used in my version but i would say that your version isa lot smoother than sounding the one i built. I take it its to do with the secondary bandpass in each block! never thought of doing that!
It makes CPU usage a good bit higher (98%) than in my own filter but, worth it in sound quality 🙂
Great stuff, i will find use in this!
Best Regards
rl ·
+1 download. +1 comment: nice and straight-forward. To optimize CPU you could use a bandpass filter instead of each SVF pair. IIRC, some time ago, Stefan posted a simple and light bandpass code somewhere here.
To further improve CPU, the 4 formant filter sections could be replaced by one section of 3 BP filters, pre-calculate the filter coefficients and only morph the coefficients. Just an idea, not tested yet.
oddson ·
AngularMomentum wrote: 15 dl's 1 reply? That isn't very encouraging posting stuff... 😉
I DL'd and though it was pretty cool... but I figured you get your ego stroked plenty already 😈
RunBeerRun2 ·
That's cool, I'll be playing around with this.
AngularMomentum ·
Woohoo! 🙂
rl wrote: +1 download. +1 comment: nice and straight-forward. To optimize CPU you could use a bandpass filter instead of each SVF pair. IIRC, some time ago, Stefan posted a simple and light bandpass code somewhere here.
To further improve CPU, the 4 formant filter sections could be replaced by one section of 3 BP filters, pre-calculate the filter coefficients and only morph the coefficients. Just an idea, not tested yet.
Great idea, I used the SV because it sounded best imo for the example, I tried others. There is leaner (and greener) code on the forum for the SV filter, but I was not too bothered for the example. Would be cool if we can transform this into something CPU lean and ready to use.
oddson wrote: AngularMomentum wrote: 15 dl's 1 reply? That isn't very encouraging posting stuff... 😉
I DL'd and though it was pretty cool... but I figured you get your ego stroked plenty already 😈
No better high then get my ego stroked by you! I was thinking lately of returning back to addtable, have you ever thought about giving the osc's more waves or use wavetables?
Andrew J wrote: Thanks Thomas.
It's quite fun morphing when you play a chord. Might be another thing that attic could try for his experimental sound design - perhaps form a sequence of vowels from a well known text and run the filters over the frogs in the rain 😉
Great also for those funkin' clavi chords. 🙂
Thanks for the comments guys, good to know I am not posting inferior stuff here in vain, most of the stuff here baffles me in many ways, I know I am not worthy!! 😉
If we can work more on this, maybe this could be moved to projects?
Tzarls ·
Just tried it on my netbook and even with the tiny speakers this is fun to play with - can´t wait to get back to the studio for more ahs and ohs.
And idea - this could be set so that a certain path for the XY pad is triggered on note on, so every time you press a key, a morphing vowel is produced - kind like an auto talk box fx.
Andrew J ·
Jay wrote: This is great AM 😀 i made one of these a wee while ago!
yours uses the same freq tables that i used in my version but i would say that your version isa lot smoother than sounding the one i built. I take it its to do with the secondary bandpass in each block! never thought of doing that!
It makes CPU usage a good bit higher (98%) than in my own filter but, worth it in sound quality 🙂
Great stuff, i will find use in this!
Best Regards
Good to see you're still with us Jay!
Acrobat ·
AngularMomentum wrote: Example of a formant filter with 10 vowels (ee, i, e, ae, ah, aw, uh, oo, u, er) and an X-Y pad to mix four vowels.
that's really nice, mr, something about the GUI: this stuff requires much experimentation and fast, numerous changes of vowels settings, so I guess it's MUCH better to use BUTTONS instead of dropdown menus. Multiple buttons are much FASTER to use than a drop-down menu, this last literally BLOCKS the pointer for the choosing time and that's no good! 😉 😉
AngularMomentum ·
40 buttons on a GUI?!?! You could easily have it setup with four sliders on your external controller. 😉
infuzion ·
Thanks AM, that was going to be one of my side-projects in a few months, so you saved me the work! I was planning to use 4 filters though for the formants; where are the best places to find the frequencies at for that please?
AngularMomentum ·
Can't recall, it is a long time ago I made this, I found it while cleaning the hardrive.
I have seen this on the forum though, the table has one more vowel, I might throw that one in later and check if the list has the same values I used, or if these are better sounding.
British English http://www.phon.ucl.ac.uk/home/wells/fo ... able-1.htm http://www.phon.ucl.ac.uk/home/wells/fo ... able-2.htm http://www.phon.ucl.ac.uk/home/wells/fo ... able-3.htm
American English http://www.phon.ucl.ac.uk/home/wells/fo ... able-4.htm http://www.phon.ucl.ac.uk/home/wells/fo ... able-5.htm http://www.phon.ucl.ac.uk/home/wells/fo ... able-6.htm http://www.phon.ucl.ac.uk/home/wells/fo ... able-7.htm
rl ·
Did some experiments: Using a single SVF instead of the double SVF as suggested above has pretty much the same transfer function, uses only half CPU but looses gain and sound quality.
Since your design uses filters with fixed frequency/Q settings, the frequency/resonance dependent part of the SVF code need not be calculated for every sample. With 'hopping' that part of the code the CPU reduces from 32% to 24% on my system:
streamin input; streamin cut; streamin resonance;
streamout lowpass; streamout highpass; streamout bandpass; streamout notch; streamout peak; float cutoff, rez, f; float lp1, hp1, bp1; float multi, x, x2, x3, x5, x7;
hop (1024) { multi = 0.33333333333333333333333333333333;
rez = 1.0 - resonance; // clamp at 1.0 and 20/44100 cutoff = max(cut, 0.00045351473922902494331065759637188); cutoff = min(cutoff, 1.0); // tunable version //f = 2 * sin1((3.141592 * (cutoff / 36.0))); // taylor series version of 2 * sin(x) // cutoff * 1/38.0 x = 3.141592 * (cutoff * 0.026315789473684210526315789473684) * 2 * 3.141592; x2 = x*x; x3 = x2*x; x5 = x3*x2; x7 = x5*x2; // x3 / 6, x5 /120, x7 / 5040; f = 2.0 * (x - (x3 * 0.16666666666666666666666666666667) + (x5 * 0.0083333333333333333333333333333333) - (x7 * 0.0001984126984126984126984126984127)); } input = input + 0.000000001; lp1 = lp1 + f * bp1; hp1 = input - lp1 - rez * bp1; bp1 = f * hp1 + bp1; lowpass = lp1; highpass = hp1; bandpass = bp1;
lp1 = lp1 + f * bp1; hp1 = input - lp1 - rez * bp1; bp1 = f * hp1 + bp1; lowpass = lowpass + lp1; highpass = highpass + hp1; bandpass = bandpass + bp1;
input = input - 0.000000001; lp1 = lp1 + f * bp1; hp1 = input - lp1 - rez * bp1; bp1 = f * hp1 + bp1; lowpass = (lowpass + lp1) * multi; highpass = (highpass + hp1) * multi; bandpass = (bandpass + bp1) * multi;
peak = input + bandpass; notch = lowpass + highpass;
The hopped part can also be completely taken out from the code module to be calculated on 'green' code.
infuzion ·
AngularMomentum wrote: infuzion wrote: I was planning to use 4 filters though for the formants; where are the best places to find the frequencies at for that please?
Can't recall, it is a long time ago I made this, I found it while cleaning the hardrive.... British English http://www.phon.ucl.ac.uk/home/wells/fo ... able-1.htm http://www.phon.ucl.ac.uk/home/wells/fo ... able-2.htm http://www.phon.ucl.ac.uk/home/wells/fo ... le-3.htm...
Thanks! But urm, I was looking for a source of using four (4) frequencies, not 3 like you have.
rl ·
Is there a specific reason you want 4? Most articles I read used 3 format peaks. And that's one bandpass filter less.
infuzion ·
rl wrote: Is there a specific reason you want 4? Most articles I read used 3 format peaks. And that's one bandpass filter less.
Think about it... what else in SM & CPUs use 4? edit: BTW, Google brought up more technical articles that used 5 formats for me, a few 7+; the better resolution the closer to nature. So the best bet for SM IMHO is: 4 formats for low-resolution 8 formats for high-resolution
AngularMomentum ·
infuzion wrote: Thanks! But urm, I was looking for a source of using four (4) frequencies, not 3 like you have.
Oh, where you now? 😉
infuzion ·
AngularMomentum wrote: infuzion wrote: Thanks! But urm, I was looking for a source of using four (4) frequencies, not 3 like you have.
Oh, where you now? 😉
Thanks for asking. After frantically Googling for four hours for a four-finite filter formant phoneme, I failed to find a freq & gain table. 😝 Then I opened my Abelton Live 7 & found them as an EQ Eight presets (likely as a holdover from Live5/6 when there was only an EQ Four). 😊 I think those presets are great; they use low & high pass for the ends, & different gains & Qs. More vowels & voice/age/sex ranges would be nice though.
infuzion ·
Is my math rusty, or is the following actually correct? Might save 6-12 cycles or so if not hopped. ... //f = 2 * sin1((3.141592 * (cutoff / 36.0))); // taylor series version of 2 * sin(x) // cutoff * 1/38.0 //x = 3.141592 * (cutoff * 0.026315789473684210526315789473684) * 2 * 3.141592; x= cutoff * 0.5194528632152294009912889999934; //SM will round this off to single-precision, but good to have ...
echopark ·
Downloaded it ! Thanks for your stuff Angular Momentum !
AngularMomentum ·
Your very welcome mate!
attic ·
It's quite fun morphing when you play a chord. Might be another thing that attic could try for his experimental sound design - perhaps form a sequence of vowels from a well known text and run the filters over the frogs in the rain
Very cool stuff here indeed, and yes I ran the frogs in rain through it already. lol 😀 Weird thing is that I thought I typed grain in the search box and ran across this post seems that it was a Freudian slip and I had actually typed in rain and that's what its doing here right now.
McBarGig ·
Man great work, I tried doing this before but mine never worked this well...I'm gonna study this a bit... Thanks
Acrobat ·
AngularMomentum wrote: 40 buttons on a GUI?!?! You could easily have it setup with four sliders on your external controller. 😉
Mh, I was underlining a difference, about the fact that a selector is something completely "unreal", a button or even a slider is "virtual". That's why a selector is definitely NOT handy in any case... but that's ok anyway.. 😉
Wrote something here? To have a post removed or your name hidden, write to [email protected].