[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sc-users] Emulate throat singing?



On May 9, 2009, at 5:18 PM, Julian Rohrhuber wrote:

Overtone singing is a method to alter the formants that you have learned when you learned speaking in a way that they become single resonant frequencies. This is effectively done by creating helmholtz resonators in one's mouth (between lips and tongue) and by tuning the vocal chords to the appropriate spectrum. This is why it sounds so "artificial". To model this artificially, it may be interesting to investigate in the imperfections and transitions between techniques and styles. Techniques like sygyt are easier than kargyraa, where the vocal chords behave more nonlinearly. For a simpler model one may start with a Blip and a Ringz.

I really like Formlet better for this. Ringz is the same as Formlet with attack set to 0. As you raise the attack time, keeping it below the decay time, it really softens the hard edge of the filter's impulse response. You can modulate very easily between grungy and buzzy (with very short attack times) to almost exactly sinusoidal with attack times closer to the decay time.

I wrote this synth once upon a time that's pretty close to this technical description.

Instr([\analog, \formletbydiff], { arg freq, gate, freqlag, fundfreq, attacktime, decayadd,
env, vsense, detune;
var amp;
amp = (Latch.kr(gate, gate) - 1) * vsense + 1;
Formlet.ar(Blip.ar([fundfreq, fundfreq*detune], 200, amp), freq, attacktime,
attacktime + decayadd)
* EnvGen.kr(env, gate, doneAction:2);
}, [\freq, [0, 1], [0, 10], \freq, [0.001, 1, \exponential], [0.001, 1, \exponential], EnvSpec(Env.adsr(0.01, 1, 0.75, 0.1)), [0, 1], \mydetune]);

hjh


: H. James Harkins
.::!:.:.......:.::........:..!.::.::...:..:...:.:.:.:..:

"Come said the Muse,
Sing me a song no poet has yet chanted,
Sing me the universal."  -- Whitman