//ASSERT : please report this message and the failing DSP file to Faust developers (file: old_occurences.cpp, line: 158, version: 2.54.11, options: -lang wasm-ib -cn 92e9c9e959f44d9758e31c5f4a87681c31399938fae428eecaa6da00b3ecea28 -es 1 -mcd 16 -single -ftz 0 )
import("stdfaust.lib");
//number of signals
N= 6;
//how bad the performer is
scaleTraffic= 1800;
//intensity of the gesture during sustain (sort of vibrato)
energy= hslider("energy", 1, 0.0001, 2, 0.00001);
//brain trigger
sigIn=button("bang"): ba.impulsify: (energy);
beatDur= 60/ hslider("bpm", 60, 0.01, 600, 0.0001);
atkTime= (3beatDur)/ (10^ energy);
relTime= (3beatDur)/ (10^ energy);
//route action
routeTo= 0;
envDur= atkTime+ (ma.SR (3*beatDur)/ (10^ energy)); //last value is sus time.
holdAction= (!= 0)<: , (_@ envDur): ba.on_andoff: ;
trin= sigIn: ba.selectoutn(N, routeTo): par(i, N, atkTime, 1, relTime, holdAction: en.asr:_);
//: leEnv;
//second part
//slow signals in parallel. //they represent the input
//tr: + ~ (<:ba.if(<44100,+1, 0))
//with{tr= button("bang"):ba.impulsify;};
source= no.multinoise(N) ;
//remove DC offstet (cycles > 20 sec) then RMS
toRMS= par(i, N, fi.lowpass(4,2): fi.dcblockerat(1/ (60/ 3)): ba.slidingRMS(4096));
//deriv of RMS, represent "transientness", find the most transient one at every moment
difference= par(i, N, <: - ');
activity= source: toRMS: difference;
// get the index of the most active channel;
iPeak(src)= sum(i,N-1, s(i)< s(i+1))
with{
s(n)= src: ba.selector(n,N);
};
traffic= iPeak(activity)<: == ':fi.avg_rect(0.2):fi.dcblockerat(20): (scaleTraffic);
limTra= (ba.if(traffic> 0, traffic,0));
//(ba.)pulse_countdown ORRRRRRRRRR^^^^^^^^???????
delayedThing=source: par(i,N, de.fdelay(44100,(no.lfnoise(32)+1:(0.5*limTra))):fi.dcblockerat(1)):>/(N);
process = trin;
//
//iPeak(source);
I cannot cut/paste the DSP code: please paste only the needed part and using import("stdfaust.lib"); process = +; kind of syntax or the DSP code (triple `)
//ASSERT : please report this message and the failing DSP file to Faust developers (file: old_occurences.cpp, line: 158, version: 2.54.11, options: -lang wasm-ib -cn 92e9c9e959f44d9758e31c5f4a87681c31399938fae428eecaa6da00b3ecea28 -es 1 -mcd 16 -single -ftz 0 )
import("stdfaust.lib"); //number of signals N= 6; //how bad the performer is scaleTraffic= 1800; //intensity of the gesture during sustain (sort of vibrato) energy= hslider("energy", 1, 0.0001, 2, 0.00001); //brain trigger sigIn=button("bang"): ba.impulsify: (energy); beatDur= 60/ hslider("bpm", 60, 0.01, 600, 0.0001); atkTime= (3beatDur)/ (10^ energy); relTime= (3beatDur)/ (10^ energy); //route action routeTo= 0; envDur= atkTime+ (ma.SR (3*beatDur)/ (10^ energy)); //last value is sus time. holdAction= (!= 0)<: , (_@ envDur): ba.on_andoff: ; trin= sigIn: ba.selectoutn(N, routeTo): par(i, N, atkTime, 1, relTime, holdAction: en.asr:_);
//: leEnv;
//second part //slow signals in parallel. //they represent the input
//tr: + ~ (<:ba.if(<44100,+1, 0)) //with{tr= button("bang"):ba.impulsify;}; source= no.multinoise(N) ; //remove DC offstet (cycles > 20 sec) then RMS toRMS= par(i, N, fi.lowpass(4,2): fi.dcblockerat(1/ (60/ 3)): ba.slidingRMS(4096)); //deriv of RMS, represent "transientness", find the most transient one at every moment difference= par(i, N, <: - '); activity= source: toRMS: difference; // get the index of the most active channel; iPeak(src)= sum(i,N-1, s(i)< s(i+1)) with{ s(n)= src: ba.selector(n,N); }; traffic= iPeak(activity)<: == ':fi.avg_rect(0.2):fi.dcblockerat(20): (scaleTraffic); limTra= (ba.if(traffic> 0, traffic,0)); //(ba.)pulse_countdown ORRRRRRRRRR^^^^^^^^??????? delayedThing=source: par(i,N, de.fdelay(44100,(no.lfnoise(32)+1:(0.5*limTra))):fi.dcblockerat(1)):>/(N); process = trin; // //iPeak(source);
//seq(i, N-1, ba.if(ba.take(1,sig)> ba.take(2,sig)), )
// process= findMax(par(i,N, no.noise));
// ba.if(> tak(i+ 1), , tak(i+ 1)) //suca; //ba.take(1, (suca)),ba.take(2, (suca)):max; //lol: iPeak; // manyDer<: par(i, nsig, ), (mag(nsig)<:si.bus(nsig)) // with{ // nsig= 8; // source= no.multinoise(nsig); // manyDer= source: par( i, nsig, der); // der= <: - '; // nor(n)= par(i, n, / mag(n)); // mag(num)= par(i, num, ^2):> ^(0.5):_; // };
//:>_/ nsig;