1// generated automatically 2// DO NOT MODIFY! 3declare id "rolandwah"; 4declare name "Roland Double Beat"; 5declare category "Guitar Effects"; 6declare shortname "Double Beat"; 7declare description "Roland Double Beat"; 8 9import("stdfaust.lib"); 10import("trany.lib"); 11 12 LogPot(a, x) = ba.if(a, (exp(a * x) - 1) / (exp(a) - 1), x); 13 Inverted(b, x) = ba.if(b, 1 - x, x); 14 s = 0.993; 15 fs = float(ma.SR); 16 17 wet = vslider("wet_dry[name:Dry/Wet][tooltip:percentage of processed signal in output signal]", 100, 0, 100, 1) : /(100); 18 dry = 1 - wet; 19 // gain = vslider("Gain[name:Gain][tooltip:Gain of the Fuzz Section (dB)]", -12, -40, 4, 0.1) : ba.db2linear : si.smooth(s); 20 clip = tranystage(TB_KT88_68k,86.0,2700.0,5.562895) : tranystage(TB_KT88_68k,86.0,2700.0,5.562895) ; 21 22fuzz = fi.iir((b0/a0,b1/a0,b2/a0,b3/a0,b4/a0,b5/a0,b6/a0,b7/a0,b8/a0),(a1/a0,a2/a0,a3/a0,a4/a0,a5/a0,a6/a0,a7/a0,a8/a0)) with { 23 shape = (1.1 -Fuzz ) * 20.; 24 atan_v=1.0/atan(shape); 25 //clip(x) = 0.4 * (min(0.7514,max(-0.4514,x))); 26 27 Fuzz = vslider("Fuzz[name:Fuzz]", 0.5, 0, 1, 0.01) : Inverted(0) : si.smooth(s); 28 29 b0 = Fuzz*pow(fs,4)*(fs*(fs*(8.60349117319693e-33*fs + 7.42470650533226e-26) + 3.80828462584721e-23) + 8.28085042193987e-22) + pow(fs,3)*(fs*(fs*(fs*(-2.62267793598193e-32*fs - 2.30252524666021e-25) - 1.21809214941527e-22) - 4.47006878788668e-21) - 4.14042521096994e-20); 30 31 b1 = Fuzz*pow(fs,5)*(fs*(-5.16209470391816e-32*fs - 2.9698826021329e-25) - 7.61656925169443e-23) + pow(fs,3)*(pow(fs,2)*(fs*(1.57360676158916e-31*fs + 9.21010098664083e-25) + 2.43618429883054e-22) - 8.28085042193987e-20); 32 33 b2 = Fuzz*pow(fs,4)*(fs*(fs*(1.20448876424757e-31*fs + 2.9698826021329e-25) - 7.61656925169443e-23) - 3.31234016877595e-21) + pow(fs,3)*(fs*(fs*(fs*(-3.6717491103747e-31*fs - 9.21010098664083e-25) + 2.43618429883054e-22) + 1.78802751515467e-20) + 8.28085042193987e-20); 34 35 b3 = Fuzz*pow(fs,5)*(fs*(-1.20448876424757e-31*fs + 2.9698826021329e-25) + 2.28497077550833e-22) + pow(fs,3)*(pow(fs,2)*(fs*(3.6717491103747e-31*fs - 9.21010098664083e-25) - 7.30855289649162e-22) + 2.48425512658196e-19); 36 37 b4 = Fuzz*pow(fs,4)*(-7.42470650533226e-25*pow(fs,2) + 4.96851025316392e-21) + pow(fs,4)*(2.30252524666021e-24*pow(fs,2) - 2.68204127273201e-20); 38 39 b5 = Fuzz*pow(fs,5)*(fs*(1.20448876424757e-31*fs + 2.9698826021329e-25) - 2.28497077550833e-22) + pow(fs,3)*(pow(fs,2)*(fs*(-3.6717491103747e-31*fs - 9.21010098664083e-25) + 7.30855289649162e-22) - 2.48425512658196e-19); 40 41 b6 = Fuzz*pow(fs,4)*(fs*(fs*(-1.20448876424757e-31*fs + 2.9698826021329e-25) + 7.61656925169443e-23) - 3.31234016877595e-21) + pow(fs,3)*(fs*(fs*(fs*(3.6717491103747e-31*fs - 9.21010098664083e-25) - 2.43618429883054e-22) + 1.78802751515467e-20) - 8.28085042193987e-20); 42 43 b7 = Fuzz*pow(fs,5)*(fs*(5.16209470391816e-32*fs - 2.9698826021329e-25) + 7.61656925169443e-23) + pow(fs,3)*(pow(fs,2)*(fs*(-1.57360676158916e-31*fs + 9.21010098664083e-25) - 2.43618429883054e-22) + 8.28085042193987e-20); 44 45 b8 = Fuzz*pow(fs,4)*(fs*(fs*(-8.60349117319693e-33*fs + 7.42470650533226e-26) - 3.80828462584721e-23) + 8.28085042193987e-22) + pow(fs,3)*(fs*(fs*(fs*(2.62267793598193e-32*fs - 2.30252524666021e-25) + 1.21809214941527e-22) - 4.47006878788668e-21) + 4.14042521096994e-20); 46 47 a0 = Fuzz*fs*(fs*(fs*(fs*(fs*(fs*(fs*(9.64198439050231e-55*fs - 5.76952472985784e-34) - 1.84629565839962e-29) - 5.28116058056682e-26) - 3.4488417342687e-23) - 6.7753494863719e-21) - 1.6046797673707e-19) - 6.03074438986166e-19) + fs*(fs*(fs*(fs*(fs*(fs*(fs*(-1.08067210692624e-54*fs + 1.6917880698614e-33) + 2.29812823706864e-29) + 5.73340871630524e-26) + 3.80795187898005e-23) + 8.56555972538848e-21) + 5.00114968075696e-19) + 8.62923424920947e-18) + 3.01537219493083e-17; 48 49 a1 = Fuzz*fs*(fs*(fs*(pow(fs,2)*(fs*(fs*(-7.71358751240185e-54*fs + 3.46171483791471e-33) + 7.38518263359847e-29) + 1.05623211611336e-25) - 1.35506989727438e-20) - 6.41871906948282e-19) - 3.618446633917e-18) + fs*(fs*(fs*(pow(fs,2)*(fs*(fs*(8.64537685540996e-54*fs - 1.01507284191684e-32) - 9.19251294827458e-29) - 1.14668174326105e-25) + 1.7131119450777e-20) + 2.00045987230279e-18) + 5.17754054952568e-17) + 2.41229775594467e-16; 50 51 a2 = Fuzz*fs*(fs*(fs*(fs*(fs*(fs*(fs*(2.69975562934065e-53*fs - 8.07733462180098e-33) - 7.38518263359847e-29) + 1.05623211611336e-25) + 1.37953669370748e-22) + 1.35506989727438e-20) - 6.41871906948282e-19) - 8.44304214580633e-18) + fs*(fs*(fs*(fs*(fs*(fs*(fs*(-3.02588189939348e-53*fs + 2.36850329780596e-32) + 9.19251294827458e-29) - 1.14668174326105e-25) - 1.52318075159202e-22) - 1.7131119450777e-20) + 2.00045987230279e-18) + 1.20809279488933e-16) + 8.44304214580633e-16; 52 53 a3 = Fuzz*fs*(fs*(fs*(pow(fs,2)*(fs*(fs*(-5.3995112586813e-53*fs + 8.07733462180098e-33) - 7.38518263359847e-29) - 3.16869634834009e-25) + 4.06520969182314e-20) + 6.41871906948282e-19) - 8.44304214580633e-18) + fs*(fs*(fs*(pow(fs,2)*(fs*(fs*(6.05176379878697e-53*fs - 2.36850329780596e-32) + 9.19251294827458e-29) + 3.44004522978315e-25) - 5.13933583523309e-20) - 2.00045987230279e-18) + 1.20809279488933e-16) + 1.68860842916127e-15; 54 55 a4 = Fuzz*pow(fs,2)*(pow(fs,2)*(pow(fs,2)*(6.74938907335162e-53*pow(fs,2) + 1.84629565839962e-28) - 2.06930504056122e-22) + 1.6046797673707e-18) + pow(fs,2)*(pow(fs,2)*(pow(fs,2)*(-7.56470474848371e-53*pow(fs,2) - 2.29812823706864e-28) + 2.28477112738803e-22) - 5.00114968075697e-18) + 2.11076053645158e-15; 56 57 a5 = Fuzz*fs*(fs*(fs*(pow(fs,2)*(fs*(fs*(-5.3995112586813e-53*fs - 8.07733462180098e-33) - 7.38518263359847e-29) + 3.16869634834009e-25) - 4.06520969182314e-20) + 6.41871906948282e-19) + 8.44304214580633e-18) + fs*(fs*(fs*(pow(fs,2)*(fs*(fs*(6.05176379878697e-53*fs + 2.36850329780596e-32) + 9.19251294827458e-29) - 3.44004522978315e-25) + 5.13933583523309e-20) - 2.00045987230279e-18) - 1.20809279488933e-16) + 1.68860842916127e-15; 58 59 a6 = Fuzz*fs*(fs*(fs*(fs*(fs*(fs*(fs*(2.69975562934065e-53*fs + 8.07733462180098e-33) - 7.38518263359847e-29) - 1.05623211611336e-25) + 1.37953669370748e-22) - 1.35506989727438e-20) - 6.41871906948282e-19) + 8.44304214580633e-18) + fs*(fs*(fs*(fs*(fs*(fs*(fs*(-3.02588189939348e-53*fs - 2.36850329780596e-32) + 9.19251294827458e-29) + 1.14668174326105e-25) - 1.52318075159202e-22) + 1.7131119450777e-20) + 2.00045987230279e-18) - 1.20809279488933e-16) + 8.44304214580633e-16; 60 61 a7 = Fuzz*fs*(fs*(fs*(pow(fs,2)*(fs*(fs*(-7.71358751240185e-54*fs - 3.46171483791471e-33) + 7.38518263359847e-29) - 1.05623211611336e-25) + 1.35506989727438e-20) - 6.41871906948282e-19) + 3.618446633917e-18) + fs*(fs*(fs*(pow(fs,2)*(fs*(fs*(8.64537685540996e-54*fs + 1.01507284191684e-32) - 9.19251294827458e-29) + 1.14668174326105e-25) - 1.7131119450777e-20) + 2.00045987230279e-18) - 5.17754054952568e-17) + 2.41229775594467e-16; 62 63 a8 = Fuzz*fs*(fs*(fs*(fs*(fs*(fs*(fs*(9.64198439050231e-55*fs + 5.76952472985784e-34) - 1.84629565839962e-29) + 5.28116058056682e-26) - 3.4488417342687e-23) + 6.7753494863719e-21) - 1.6046797673707e-19) + 6.03074438986166e-19) + fs*(fs*(fs*(fs*(fs*(fs*(fs*(-1.08067210692624e-54*fs - 1.6917880698614e-33) + 2.29812823706864e-29) - 5.73340871630524e-26) + 3.80795187898005e-23) - 8.56555972538848e-21) + 5.00114968075696e-19) - 8.62923424920947e-18) + 3.01537219493083e-17; 64}; 65 66wah(x) = x : fi.iir((b0/a0,b1/a0,b2/a0,b3/a0,b4/a0,b5/a0,b6/a0),(a1/a0,a2/a0,a3/a0,a4/a0,a5/a0,a6/a0)) with { 67 68 Wah1 = (x : an.amp_follower_ud(0.01,0.1) : min(0.9) : max(0.09) ); 69 70 Wah2 = vslider("Wah[name:Wah]", 0.5, 0.02, 1, 0.01) : Inverted(1) : LogPot(1) : si.smooth(s); 71 72 sl = checkbox("mode[enum:manual|auto|alien]"); 73 74 Wah3 = (os.oscs(freq) + 1) / 2 : min(0.9) : max(0.09) : Inverted(1) with { 75 freq = vslider("lfobpm[name:Alien Freq][tooltip:LFO in Beats per Minute]",24,24,360,1)/60; 76 }; 77 78 Wah = select3(sl, Wah2, Wah1, Wah3); 79 80 b0 = Wah*(Wah*pow(fs,3)*(fs*(fs*(7.18082556296232e-31*fs + 1.2196809675607e-26) + 1.81635217972948e-23) + 9.8345184835125e-22) + pow(fs,2)*(fs*(fs*(fs*(-7.16633351212421e-31*fs - 1.22012125074374e-26) - 1.83126711766163e-23) - 1.21592229012527e-21) - 1.2608516331659e-20)) + pow(fs,2)*(fs*(fs*(fs*(-9.65744972703433e-31*fs - 3.08822188644282e-26) - 4.82624719521696e-23) - 2.88264605310366e-21) - 1.49007855810795e-20); 81 82 b1 = Wah*(Wah*pow(fs,4)*(fs*(-4.30849533777739e-30*fs - 4.87872387024281e-26) - 3.63270435945895e-23) + pow(fs,2)*(pow(fs,2)*(fs*(4.29980010727452e-30*fs + 4.88048500297496e-26) + 3.66253423532326e-23) - 2.5217032663318e-20)) + pow(fs,2)*(pow(fs,2)*(fs*(5.7944698362206e-30*fs + 1.23528875457713e-25) + 9.65249439043393e-23) - 2.98015711621591e-20); 83 84 b2 = Wah*(Wah*pow(fs,3)*(fs*(fs*(1.07712383444435e-29*fs + 6.09840483780351e-26) - 1.81635217972948e-23) - 2.95035554505375e-21) + pow(fs,2)*(fs*(fs*(fs*(-1.07495002681863e-29*fs - 6.1006062537187e-26) + 1.83126711766163e-23) + 3.64776687037582e-21) + 1.2608516331659e-20)) + pow(fs,2)*(fs*(fs*(fs*(-1.44861745905515e-29*fs - 1.54411094322141e-25) + 4.82624719521696e-23) + 8.64793815931099e-21) + 1.49007855810795e-20); 85 86 b3 = Wah*(Wah*pow(fs,4)*(-1.43616511259246e-29*pow(fs,2) + 7.2654087189179e-23) + pow(fs,2)*(pow(fs,2)*(1.43326670242484e-29*pow(fs,2) - 7.32506847064652e-23) + 5.0434065326636e-20)) + pow(fs,2)*(pow(fs,2)*(1.93148994540687e-29*pow(fs,2) - 1.93049887808679e-22) + 5.96031423243182e-20); 87 88 b4 = Wah*(Wah*pow(fs,3)*(fs*(fs*(1.07712383444435e-29*fs - 6.09840483780351e-26) - 1.81635217972948e-23) + 2.95035554505375e-21) + pow(fs,2)*(fs*(fs*(fs*(-1.07495002681863e-29*fs + 6.1006062537187e-26) + 1.83126711766163e-23) - 3.64776687037582e-21) + 1.2608516331659e-20)) + pow(fs,2)*(fs*(fs*(fs*(-1.44861745905515e-29*fs + 1.54411094322141e-25) + 4.82624719521696e-23) - 8.64793815931099e-21) + 1.49007855810795e-20); 89 90 b5 = Wah*(Wah*pow(fs,4)*(fs*(-4.30849533777739e-30*fs + 4.87872387024281e-26) - 3.63270435945895e-23) + pow(fs,2)*(pow(fs,2)*(fs*(4.29980010727452e-30*fs - 4.88048500297496e-26) + 3.66253423532326e-23) - 2.5217032663318e-20)) + pow(fs,2)*(pow(fs,2)*(fs*(5.7944698362206e-30*fs - 1.23528875457713e-25) + 9.65249439043393e-23) - 2.98015711621591e-20); 91 92 b6 = Wah*(Wah*pow(fs,3)*(fs*(fs*(7.18082556296232e-31*fs - 1.2196809675607e-26) + 1.81635217972948e-23) - 9.8345184835125e-22) + pow(fs,2)*(fs*(fs*(fs*(-7.16633351212421e-31*fs + 1.22012125074374e-26) - 1.83126711766163e-23) + 1.21592229012527e-21) - 1.2608516331659e-20)) + pow(fs,2)*(fs*(fs*(fs*(-9.65744972703433e-31*fs + 3.08822188644282e-26) - 4.82624719521696e-23) + 2.88264605310366e-21) - 1.49007855810795e-20); 93 94 a0 = Wah*(Wah*pow(fs,2)*(fs*(fs*(fs*(-4.29845675581904e-29*fs - 3.19373566665743e-26) - 8.90038927961101e-23) - 4.87042253786579e-20) - 3.50713071672392e-19) + fs*(fs*(fs*(fs*(fs*(1.72206886126217e-28*fs + 1.1453389852842e-25) + 9.7683567600612e-23) + 5.2144154673581e-20) + 1.07969798611464e-18) + 5.31383441927866e-18)) + fs*(fs*(fs*(fs*(fs*(5.0345082751012e-30*fs + 1.05561747816346e-26) + 2.55142258602227e-22) + 1.48648313435063e-19) + 3.76182116601294e-18) + 3.09198451037471e-17) + 8.05126427163433e-17; 95 96 a1 = Wah*(Wah*pow(fs,2)*(pow(fs,2)*(fs*(2.57907405349142e-28*fs + 1.27749426666297e-25) + 1.7800778559222e-22) - 7.01426143344783e-19) + fs*(fs*(pow(fs,2)*(fs*(-1.0332413167573e-27*fs - 4.5813559411368e-25) - 1.95367135201224e-22) + 2.15939597222928e-18) + 2.12553376771146e-17)) + fs*(fs*(pow(fs,2)*(fs*(-3.02070496506072e-29*fs - 4.22246991265385e-26) - 5.10284517204454e-22) + 7.52364233202588e-18) + 1.23679380414989e-16) + 4.8307585629806e-16; 97 98 a2 = Wah*(Wah*pow(fs,2)*(fs*(fs*(fs*(-6.44768513372856e-28*fs - 1.59686783332872e-25) + 8.90038927961101e-23) + 1.46112676135974e-19) + 3.50713071672392e-19) + fs*(fs*(fs*(fs*(fs*(2.58310329189325e-27*fs + 5.726694926421e-25) - 9.7683567600612e-23) - 1.56432464020743e-19) - 1.07969798611464e-18) + 2.65691720963933e-17)) + fs*(fs*(fs*(fs*(fs*(7.55176241265181e-29*fs + 5.27808739081731e-26) - 2.55142258602227e-22) - 4.4594494030519e-19) - 3.76182116601294e-18) + 1.54599225518736e-16) + 1.20768964074515e-15; 99 100 a3 = Wah*(Wah*pow(fs,2)*(pow(fs,2)*(8.59691351163808e-28*pow(fs,2) - 3.5601557118444e-22) + 1.40285228668957e-18) + pow(fs,2)*(pow(fs,2)*(-3.44413772252433e-27*pow(fs,2) + 3.90734270402448e-22) - 4.31879194445857e-18)) + pow(fs,2)*(pow(fs,2)*(-1.00690165502024e-28*pow(fs,2) + 1.02056903440891e-21) - 1.50472846640518e-17) + 1.61025285432687e-15; 101 102 a4 = Wah*(Wah*pow(fs,2)*(fs*(fs*(fs*(-6.44768513372856e-28*fs + 1.59686783332872e-25) + 8.90038927961101e-23) - 1.46112676135974e-19) + 3.50713071672392e-19) + fs*(fs*(fs*(fs*(fs*(2.58310329189325e-27*fs - 5.726694926421e-25) - 9.7683567600612e-23) + 1.56432464020743e-19) - 1.07969798611464e-18) - 2.65691720963933e-17)) + fs*(fs*(fs*(fs*(fs*(7.55176241265181e-29*fs - 5.27808739081731e-26) - 2.55142258602227e-22) + 4.4594494030519e-19) - 3.76182116601294e-18) - 1.54599225518736e-16) + 1.20768964074515e-15; 103 104 a5 = Wah*(Wah*pow(fs,2)*(pow(fs,2)*(fs*(2.57907405349142e-28*fs - 1.27749426666297e-25) + 1.7800778559222e-22) - 7.01426143344783e-19) + fs*(fs*(pow(fs,2)*(fs*(-1.0332413167573e-27*fs + 4.5813559411368e-25) - 1.95367135201224e-22) + 2.15939597222928e-18) - 2.12553376771146e-17)) + fs*(fs*(pow(fs,2)*(fs*(-3.02070496506072e-29*fs + 4.22246991265385e-26) - 5.10284517204454e-22) + 7.52364233202588e-18) - 1.23679380414989e-16) + 4.8307585629806e-16; 105 106 a6 = Wah*(Wah*pow(fs,2)*(fs*(fs*(fs*(-4.29845675581904e-29*fs + 3.19373566665743e-26) - 8.90038927961101e-23) + 4.87042253786579e-20) - 3.50713071672392e-19) + fs*(fs*(fs*(fs*(fs*(1.72206886126217e-28*fs - 1.1453389852842e-25) + 9.7683567600612e-23) - 5.2144154673581e-20) + 1.07969798611464e-18) - 5.31383441927866e-18)) + fs*(fs*(fs*(fs*(fs*(5.0345082751012e-30*fs - 1.05561747816346e-26) + 2.55142258602227e-22) - 1.48648313435063e-19) + 3.76182116601294e-18) - 3.09198451037471e-17) + 8.05126427163433e-17; 107}; 108 109process = _<:*(dry),(*(wet) : fuzz : wah : clip ):>_; 110