It's also missing the definition of x :(

Help?

Phil

On 16/07/17 16:55, Hermann Meyer wrote:


Am 16.07.2017 um 17:49 schrieb Hermann Meyer:
Am 16.07.2017 um 16:17 schrieb Yassin Philip:
Hello everyone

The idea is to rapidly rise, and (a bit slower) fall, the pitch of a sound, so this pitch has to evolve over time..? Googling for it is a bit tricky, and I can't find any recipe anywhere :(

Also, is is possible to assign the parameter value of a Faust function's to the output of another? To, for instance, lower or rise an eQ band frequency with the output of a compressor?

If it is, I'd really like to learn how :)

yPhil


Hi

It's easier then you think. So, for example what I'm using in GxQuack (envelope controlled wah pedal with some extra features) is:

Wah = (x : lowpass(1,6000.0) : highpass(1,10.0) : reduce(max,256) : amp_follower_ud(attack,release) : min(1.0) : max(0.0) );

instead a slider like this

Wah = vslider("Wah[name:Wah]", 0.5, 0, 1, 0.01) : Inverted(0) : smooth(s);


Note, that this is with faust-0.9.73, so you need to convert that to the new faust library structure.

attack is the "rise" time, release is the "fall" time.


https://github.com/brummer10/GxQuack.lv2

regards
hermann


For reference, here is the full GxQuack dsp file ( only work with faust > 0.9.90) :

// generated by build_wah.py
// DO NOT MODIFY!
declare id "quack";
declare name "quack";
declare category "Envelope Filter";

import("filter.lib");
import("effect.lib");
import("reduce.lib");

p2 = pre : iir((b0/a0,b1/a0),(a1/a0)) with {
    LogPot(a, x) = if(a, (exp(a * x) - 1) / (exp(a) - 1), x);
    Inverted(b, x) = if(b, 1 - x, x);
    s = 0.993;
    fs = float(SR);
    pre = _;


    b0 = 0.0260145681581686;

    b1 = 0.0260145681581686;

    a0 = 2.02913631633715e-5*fs + 0.0260145681581686;

    a1 = -2.02913631633715e-5*fs + 0.0260145681581686;
};

p2a = pre : iir((b0/a0,b1/a0),(a1/a0)) with {
    LogPot(a, x) = if(a, (exp(a * x) - 1) / (exp(a) - 1), x);
    Inverted(b, x) = if(b, 1 - x, x);
    s = 0.993;
    fs = float(SR);
    pre = _;


    b0 = 1.85778624631907e-5*fs;

    b1 = -1.85778624631907e-5*fs;

    a0 = 1.85778624631907e-5*fs + 0.108262601766846;

    a1 = -1.85778624631907e-5*fs + 0.108262601766846;
};

    pr = vslider("Tone[enum:Off|Low|High]", 0, 0, 2,1) ;
    tone = _<:select3(pr,_,p2,p2a) ;
    dri = cubicnl(0.25,0.01);
    d = vslider("Drive[enum:Off|On]", 0, 0, 1,1) ;
    drive = _<:select2(d,_,dri) ;

    s = 0.993;
    Inverted(b, x) = if(b, 1 - x, x);
attack = 0.01; //vslider("Attack[name:Attack]", 0.01, 0.01, 1, 0.01) : smooth(s); release = 0.1; //vslider("Release[name:Release]", 0.1, 0.01, 1, 0.01) : smooth(s); Gain = hslider("Gain[name:Gain]", 0, -12, 6, 0.01) : component("music.lib").db2linear : smooth(s); peak = hslider("Peak[name:Peak]", 5, -6, 20, 0.1) : component("music.lib").db2linear : smooth(s);
    r = vslider("Range[enum:Low|High]", 0, 0, 1,1) ;
    range = vslider("Depth[name:Depth]", 1.0, 0, 1, 0.01) : smooth(s);

p_orig(x) = x : pre : iir((b0/a0,b1/a0,b2/a0,b3/a0,b4/a0),(a1/a0,a2/a0,a3/a0,a4/a0)) with {
    LogPot(a, x) = if(a, (exp(a * x) - 1) / (exp(a) - 1), x);
    Inverted(b, x) = if(b, 1 - x, x);
    fs = float(SR);
    pre = dcblockerat(228.092318096);

Wah = (x : lowpass(1,6000.0) : highpass(1,10.0) : *(peak) : reduce(max,256) : amp_follower_ud(attack,release) : min(1.0) : max(0.0) : Inverted(r) : *(range)); // Wah = vslider("Wah[name:Wah]", 0.5, 0, 1, 0.01) : Inverted(0) : smooth(s);

b0 = Wah*(Wah*pow(fs,2)*(fs*(1.25354929406751e-21*fs + 3.48240441754786e-17) + 5.13677938472839e-14) + fs*(fs*(fs*(-1.25190991419205e-21*fs - 3.48523283496869e-17) - 5.2316993141028e-14) - 1.41321715027133e-12)) + fs*(fs*(fs*(-7.5608386057978e-21*fs - 2.50316072052274e-16) - 3.73895528562635e-13) - 2.00079255029258e-12);

b1 = Wah*(Wah*pow(fs,3)*(-5.01419717627005e-21*fs - 6.96480883509573e-17) + fs*(pow(fs,2)*(5.0076396567682e-21*fs + 6.97046566993739e-17) - 2.82643430054267e-12)) + fs*(pow(fs,2)*(3.02433544231912e-20*fs + 5.00632144104549e-16) - 4.00158510058516e-12);

b2 = Wah*(Wah*pow(fs,2)*(7.52129576440508e-21*pow(fs,2) - 1.02735587694568e-13) + pow(fs,2)*(-7.5114594851523e-21*pow(fs,2) + 1.04633986282056e-13)) + pow(fs,2)*(-4.53650316347868e-20*pow(fs,2) + 7.47791057125271e-13);

b3 = Wah*(Wah*pow(fs,3)*(-5.01419717627005e-21*fs + 6.96480883509573e-17) + fs*(pow(fs,2)*(5.0076396567682e-21*fs - 6.97046566993739e-17) + 2.82643430054267e-12)) + fs*(pow(fs,2)*(3.02433544231912e-20*fs - 5.00632144104549e-16) + 4.00158510058516e-12);

b4 = Wah*(Wah*pow(fs,2)*(fs*(1.25354929406751e-21*fs - 3.48240441754786e-17) + 5.13677938472839e-14) + fs*(fs*(fs*(-1.25190991419205e-21*fs + 3.48523283496869e-17) - 5.2316993141028e-14) + 1.41321715027133e-12)) + fs*(fs*(fs*(-7.5608386057978e-21*fs + 2.50316072052274e-16) - 3.73895528562635e-13) + 2.00079255029258e-12);

a0 = Wah*(Wah*pow(fs,2)*(fs*(-4.43653850014272e-20*fs - 6.36752117412588e-18) - 6.90511452690395e-14) + fs*(fs*(fs*(2.9643704767506e-19*fs + 2.20654546981828e-17) + 5.22620199762732e-14) + 1.96168026332498e-12)) + fs*(fs*(fs*(5.00642970042579e-20*fs + 3.44255097306176e-17) + 6.23836917291325e-13) + 1.48605150860605e-11) + 5.57295529353689e-11;

a1 = Wah*(Wah*pow(fs,3)*(1.77461540005709e-19*fs + 1.27350423482518e-17) + fs*(pow(fs,2)*(-1.18574819070024e-18*fs - 4.41309093963656e-17) + 3.92336052664997e-12)) + fs*(pow(fs,2)*(-2.00257188017031e-19*fs - 6.88510194612353e-17) + 2.9721030172121e-11) + 2.22918211741475e-10;

a2 = Wah*(Wah*pow(fs,2)*(-2.66192310008563e-19*pow(fs,2) + 1.38102290538079e-13) + pow(fs,2)*(1.77862228605036e-18*pow(fs,2) - 1.04524039952546e-13)) + pow(fs,2)*(3.00385782025547e-19*pow(fs,2) - 1.24767383458265e-12) + 3.34377317612213e-10;

a3 = Wah*(Wah*pow(fs,3)*(1.77461540005709e-19*fs - 1.27350423482518e-17) + fs*(pow(fs,2)*(-1.18574819070024e-18*fs + 4.41309093963656e-17) - 3.92336052664997e-12)) + fs*(pow(fs,2)*(-2.00257188017031e-19*fs + 6.88510194612353e-17) - 2.9721030172121e-11) + 2.22918211741475e-10;

a4 = Wah*(Wah*pow(fs,2)*(fs*(-4.43653850014272e-20*fs + 6.36752117412588e-18) - 6.90511452690395e-14) + fs*(fs*(fs*(2.9643704767506e-19*fs - 2.20654546981828e-17) + 5.22620199762732e-14) - 1.96168026332498e-12)) + fs*(fs*(fs*(5.00642970042579e-20*fs - 3.44255097306176e-17) + 6.23836917291325e-13) - 1.48605150860605e-11) + 5.57295529353689e-11;
};


p_bass(x) = x : pre : iir((b0/a0,b1/a0,b2/a0,b3/a0,b4/a0),(a1/a0,a2/a0,a3/a0,a4/a0)) with {
    LogPot(a, x) = if(a, (exp(a * x) - 1) / (exp(a) - 1), x);
    Inverted(b, x) = if(b, 1 - x, x);
    s = 0.993;
    fs = float(SR);
    pre = dcblockerat(228.53988396);

Wah = (x : lowpass(1,6000.0) : highpass(1,10.0) : *(peak) : reduce(max,256) : amp_follower_ud(attack,release) : min(1.0) : max(0.0) : Inverted(r) : *(range)); //Wah = vslider("Wah[name:Wah]", 0.5, 0, 1, 0.01) : Inverted(0) : smooth(s);

b0 = Wah*(Wah*pow(fs,2)*(fs*(1.25853611928206e-21*fs + 5.53488632351979e-18) + 7.58413873162652e-15) + fs*(fs*(fs*(-1.25689021768392e-21*fs - 5.56328301682433e-18) - 7.7275071769974e-15) - 2.08652817705965e-13)) + fs*(fs*(fs*(-7.59091686512077e-21*fs - 3.78902125065437e-17) - 5.52177453027185e-14) - 2.95404710580664e-13);

b1 = Wah*(Wah*pow(fs,3)*(-5.03414447712823e-21*fs - 1.10697726470396e-17) + fs*(pow(fs,2)*(5.0275608707357e-21*fs + 1.11265660336487e-17) - 4.17305635411929e-13)) + fs*(pow(fs,2)*(3.03636674604831e-20*fs + 7.57804250130874e-17) - 5.90809421161329e-13);

b2 = Wah*(Wah*pow(fs,2)*(7.55121671569235e-21*pow(fs,2) - 1.5168277463253e-14) + pow(fs,2)*(-7.54134130610355e-21*pow(fs,2) + 1.54550143539948e-14)) + pow(fs,2)*(-4.55455011907246e-20*pow(fs,2) + 1.10435490605437e-13);

b3 = Wah*(Wah*pow(fs,3)*(-5.03414447712823e-21*fs + 1.10697726470396e-17) + fs*(pow(fs,2)*(5.0275608707357e-21*fs - 1.11265660336487e-17) + 4.17305635411929e-13)) + fs*(pow(fs,2)*(3.03636674604831e-20*fs - 7.57804250130874e-17) + 5.90809421161329e-13);

b4 = Wah*(Wah*pow(fs,2)*(fs*(1.25853611928206e-21*fs - 5.53488632351979e-18) + 7.58413873162652e-15) + fs*(fs*(fs*(-1.25689021768392e-21*fs + 5.56328301682433e-18) - 7.7275071769974e-15) + 2.08652817705965e-13)) + fs*(fs*(fs*(-7.59091686512077e-21*fs + 3.78902125065437e-17) - 5.52177453027185e-14) + 2.95404710580664e-13);

a0 = Wah*(Wah*pow(fs,2)*(fs*(-4.45418777953964e-20*fs - 3.69499160249299e-18) - 1.01949767761838e-14) + fs*(fs*(fs*(2.97616322976291e-19*fs + 2.01184007540029e-17) + 7.79442896477869e-15) + 2.89630022050677e-13)) + fs*(fs*(fs*(5.02634610074678e-20*fs + 1.02230662165229e-17) + 9.2275013955392e-14) + 2.19628701391733e-12) + 8.22812562643968e-12;

a1 = Wah*(Wah*pow(fs,3)*(1.78167511181586e-19*fs + 7.38998320498597e-18) + fs*(pow(fs,2)*(-1.19046529190516e-18*fs - 4.02368015080057e-17) + 5.79260044101354e-13)) + fs*(pow(fs,2)*(-2.01053844029871e-19*fs - 2.04461324330459e-17) + 4.39257402783466e-12) + 3.29125025057587e-11;

a2 = Wah*(Wah*pow(fs,2)*(-2.67251266772379e-19*pow(fs,2) + 2.03899535523677e-14) + pow(fs,2)*(1.78569793785775e-18*pow(fs,2) - 1.55888579295574e-14)) + pow(fs,2)*(3.01580766044807e-19*pow(fs,2) - 1.84550027910784e-13) + 4.93687537586381e-11;

a3 = Wah*(Wah*pow(fs,3)*(1.78167511181586e-19*fs - 7.38998320498597e-18) + fs*(pow(fs,2)*(-1.19046529190516e-18*fs + 4.02368015080057e-17) - 5.79260044101354e-13)) + fs*(pow(fs,2)*(-2.01053844029871e-19*fs + 2.04461324330459e-17) - 4.39257402783466e-12) + 3.29125025057587e-11;

a4 = Wah*(Wah*pow(fs,2)*(fs*(-4.45418777953964e-20*fs + 3.69499160249299e-18) - 1.01949767761838e-14) + fs*(fs*(fs*(2.97616322976291e-19*fs - 2.01184007540029e-17) + 7.79442896477869e-15) - 2.89630022050677e-13)) + fs*(fs*(fs*(5.02634610074678e-20*fs - 1.02230662165229e-17) + 9.2275013955392e-14) - 2.19628701391733e-12) + 8.22812562643968e-12;
};

p_vol(x) = x : pre : iir((b0/a0,b1/a0,b2/a0,b3/a0,b4/a0),(a1/a0,a2/a0,a3/a0,a4/a0)) with {
    LogPot(a, x) = if(a, (exp(a * x) - 1) / (exp(a) - 1), x);
    Inverted(b, x) = if(b, 1 - x, x);
    s = 0.993;
    fs = float(SR);
    pre = dcblockerat(228.351628894);

Wah = (x : lowpass(1,6000.0) : highpass(1,10.0) : *(peak) : reduce(max,256) : amp_follower_ud(attack,release) : min(1.0) : max(0.0) : Inverted(r) : *(range)); // Wah = vslider("Wah[name:Wah]", 0.5, 0, 1, 0.01) : Inverted(0) : smooth(s);

b0 = Wah*(Wah*pow(fs,2)*(fs*(1.25815054436106e-21*fs + 7.79948641775953e-18) + 1.09694347514731e-14) + fs*(fs*(fs*(-1.25650514701418e-21*fs - 7.82787441123208e-18) - 1.11751090038047e-14) - 3.0178818591385e-13)) + fs*(fs*(fs*(-7.58859125274344e-21*fs - 5.43147073307993e-17) - 7.98575025005554e-14) - 4.27263109584156e-13);

b1 = Wah*(Wah*pow(fs,3)*(-5.03260217744424e-21*fs - 1.55989728355191e-17) + fs*(pow(fs,2)*(5.02602058805673e-21*fs + 1.56557488224642e-17) - 6.03576371827701e-13)) + fs*(pow(fs,2)*(3.03543650109738e-20*fs + 1.08629414661599e-16) - 8.54526219168312e-13);

b2 = Wah*(Wah*pow(fs,2)*(7.54890326616636e-21*pow(fs,2) - 2.19388695029462e-14) + pow(fs,2)*(-7.53903088208509e-21*pow(fs,2) + 2.23502180076095e-14)) + pow(fs,2)*(-4.55315475164607e-20*pow(fs,2) + 1.59715005001111e-13);

b3 = Wah*(Wah*pow(fs,3)*(-5.03260217744424e-21*fs + 1.55989728355191e-17) + fs*(pow(fs,2)*(5.02602058805673e-21*fs - 1.56557488224642e-17) + 6.03576371827701e-13)) + fs*(pow(fs,2)*(3.03543650109738e-20*fs - 1.08629414661599e-16) + 8.54526219168312e-13);

b4 = Wah*(Wah*pow(fs,2)*(fs*(1.25815054436106e-21*fs - 7.79948641775953e-18) + 1.09694347514731e-14) + fs*(fs*(fs*(-1.25650514701418e-21*fs + 7.82787441123208e-18) - 1.11751090038047e-14) + 3.0178818591385e-13)) + fs*(fs*(fs*(-7.58859125274344e-21*fs + 5.43147073307993e-17) - 7.98575025005554e-14) + 4.27263109584156e-13);

a0 = Wah*(Wah*pow(fs,2)*(fs*(-4.45282315991132e-20*fs - 3.901628158932e-18) - 1.47456601855703e-14) + fs*(fs*(fs*(2.97525142923867e-19*fs + 2.02689444660496e-17) + 1.12326060302109e-14) + 4.1891080072643e-13)) + fs*(fs*(fs*(5.02480619021936e-20*fs + 1.20943680866159e-17) + 1.33374698092444e-13) + 3.17546887465293e-12) + 1.19008750206372e-11;

a1 = Wah*(Wah*pow(fs,3)*(1.78112926396453e-19*fs + 7.80325631786401e-18) + fs*(pow(fs,2)*(-1.19010057169547e-18*fs - 4.05378889320992e-17) + 8.3782160145286e-13)) + fs*(pow(fs,2)*(-2.00992247608775e-19*fs - 2.41887361732318e-17) + 6.35093774930585e-12) + 4.76035000825489e-11;

a2 = Wah*(Wah*pow(fs,2)*(-2.67169389594679e-19*pow(fs,2) + 2.94913203711407e-14) + pow(fs,2)*(1.7851508575432e-18*pow(fs,2) - 2.24652120604218e-14)) + pow(fs,2)*(3.01488371413162e-19*pow(fs,2) - 2.66749396184888e-13) + 7.14052501238233e-11;

a3 = Wah*(Wah*pow(fs,3)*(1.78112926396453e-19*fs - 7.80325631786401e-18) + fs*(pow(fs,2)*(-1.19010057169547e-18*fs + 4.05378889320992e-17) - 8.3782160145286e-13)) + fs*(pow(fs,2)*(-2.00992247608775e-19*fs + 2.41887361732318e-17) - 6.35093774930585e-12) + 4.76035000825489e-11;

a4 = Wah*(Wah*pow(fs,2)*(fs*(-4.45282315991132e-20*fs + 3.901628158932e-18) - 1.47456601855703e-14) + fs*(fs*(fs*(2.97525142923867e-19*fs - 2.02689444660496e-17) + 1.12326060302109e-14) - 4.1891080072643e-13)) + fs*(fs*(fs*(5.02480619021936e-20*fs - 1.20943680866159e-17) + 1.33374698092444e-13) - 3.17546887465293e-12) + 1.19008750206372e-11;
};

p_mid(x) = x : pre : iir((b0/a0,b1/a0,b2/a0,b3/a0,b4/a0),(a1/a0,a2/a0,a3/a0,a4/a0)) with {
    LogPot(a, x) = if(a, (exp(a * x) - 1) / (exp(a) - 1), x);
    Inverted(b, x) = if(b, 1 - x, x);
    s = 0.993;
    fs = float(SR);
    pre = dcblockerat(228.141301667);

Wah = (x : lowpass(1,6000.0) : highpass(1,10.0) : *(peak) : reduce(max,256) : amp_follower_ud(attack,release) : min(1.0) : max(0.0) : Inverted(r) : *(range)); //Wah = vslider("Wah[name:Wah]", 0.5, 0, 1, 0.01) : Inverted(0) : smooth(s);

b0 = Wah*(Wah*pow(fs,2)*(fs*(1.25673379400189e-21*fs + 1.61204970391041e-17) + 2.34083126836639e-14) + fs*(fs*(fs*(-1.25509024946765e-21*fs - 1.61488530660524e-17) - 2.38429224035913e-14) - 6.4400330373986e-13)) + fs*(fs*(fs*(-7.5800460596258e-21*fs - 1.14664610269757e-16) - 1.70393435035239e-13) - 9.11761516790774e-13);

b1 = Wah*(Wah*pow(fs,3)*(-5.02693517600757e-21*fs - 3.22409940782082e-17) + fs*(pow(fs,2)*(5.02036099787061e-21*fs + 3.22977061321047e-17) - 1.28800660747972e-12)) + fs*(pow(fs,2)*(3.03201842385032e-20*fs + 2.29329220539513e-16) - 1.82352303358155e-12);

b2 = Wah*(Wah*pow(fs,2)*(7.54040276401136e-21*pow(fs,2) - 4.68166253673278e-14) + pow(fs,2)*(-7.53054149680591e-21*pow(fs,2) + 4.76858448071827e-14)) + pow(fs,2)*(-4.54802763577548e-20*pow(fs,2) + 3.40786870070478e-13);

b3 = Wah*(Wah*pow(fs,3)*(-5.02693517600757e-21*fs + 3.22409940782082e-17) + fs*(pow(fs,2)*(5.02036099787061e-21*fs - 3.22977061321047e-17) + 1.28800660747972e-12)) + fs*(pow(fs,2)*(3.03201842385032e-20*fs - 2.29329220539513e-16) + 1.82352303358155e-12);

b4 = Wah*(Wah*pow(fs,2)*(fs*(1.25673379400189e-21*fs - 1.61204970391041e-17) + 2.34083126836639e-14) + fs*(fs*(fs*(-1.25509024946765e-21*fs + 1.61488530660524e-17) - 2.38429224035913e-14) + 6.4400330373986e-13)) + fs*(fs*(fs*(-7.5800460596258e-21*fs + 1.14664610269757e-16) - 1.70393435035239e-13) + 9.11761516790774e-13);

a0 = Wah*(Wah*pow(fs,2)*(fs*(-4.44780902320256e-20*fs - 4.66089024039189e-18) - 3.14666190356821e-14) + fs*(fs*(fs*(2.9719011238515e-19*fs + 2.08220998907639e-17) + 2.38657892377949e-14) + 8.93938040786422e-13)) + fs*(fs*(fs*(5.01914796753341e-20*fs + 1.89702499604079e-17) + 2.84390724782166e-13) + 6.77335915336719e-12) + 2.53959670677961e-11;

a1 = Wah*(Wah*pow(fs,3)*(1.77912360928102e-19*fs + 9.32178048078377e-18) + fs*(pow(fs,2)*(-1.1887604495406e-18*fs - 4.16441997815278e-17) + 1.78787608157284e-12)) + fs*(pow(fs,2)*(-2.00765918701337e-19*fs - 3.79404999208157e-17) + 1.35467183067344e-11) + 1.01583868271184e-10;

a2 = Wah*(Wah*pow(fs,2)*(-2.66868541392154e-19*pow(fs,2) + 6.29332380713641e-14) + pow(fs,2)*(1.7831406743109e-18*pow(fs,2) - 4.77315784755897e-14)) + pow(fs,2)*(3.01148878052005e-19*pow(fs,2) - 5.68781449564332e-13) + 1.52375802406776e-10;

a3 = Wah*(Wah*pow(fs,3)*(1.77912360928102e-19*fs - 9.32178048078377e-18) + fs*(pow(fs,2)*(-1.1887604495406e-18*fs + 4.16441997815278e-17) - 1.78787608157284e-12)) + fs*(pow(fs,2)*(-2.00765918701337e-19*fs + 3.79404999208157e-17) - 1.35467183067344e-11) + 1.01583868271184e-10;

a4 = Wah*(Wah*pow(fs,2)*(fs*(-4.44780902320256e-20*fs + 4.66089024039189e-18) - 3.14666190356821e-14) + fs*(fs*(fs*(2.9719011238515e-19*fs - 2.08220998907639e-17) + 2.38657892377949e-14) - 8.93938040786422e-13)) + fs*(fs*(fs*(5.01914796753341e-20*fs - 1.89702499604079e-17) + 2.84390724782166e-13) - 6.77335915336719e-12) + 2.53959670677961e-11;
};

p = vslider("Mode[enum:Low|High|Orig]", 0, 0, 2,1) ;
t = _<:select3(p,p_bass,p_mid,p_orig) ;

process = t : tone : drive : *(Gain);


--
Yassin Philip      New album NOW
http://yassinphilip.bitbucket.io


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Faudiostream-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to