Maar moeten de beginwaarden dan niet x0=0 en x1=1 zijn?
Hoe bedoel je dat? Het gekozen rijtje is maar een voorbeeldje om te zien of het progje goed werkt. Dit krijg ik bij x0=0 en x1=1:
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature currently requires accessing the site using the built-in Safari browser.
Maar moeten de beginwaarden dan niet x0=0 en x1=1 zijn?
declare name "Riedel Alpha";
import("filters.lib");
import("delays.lib");
import("oscillators.lib");
restartvalue0 = hslider("Initial Condition 0",1,-10,10,0.0001); // 0th value periodical restart
restartvalue1 = hslider("Initial Condition 1",1,-10,10,0.0001); // 1st value periodical restart
freq = hslider("Restart Frequency",3.5,0.1,10,0.001); //frequency of periodical restarts
gain = hslider("Gain",10, 1,500,0.0001); // gains inside loop
p = 1 - hslider("Leakiness",0.002,0,0.02,0.0000001); // pole reflects (non)leakiness of integrator
restart0 = lf_imptrain(freq) ; //impulstrain signaling restart with restartvalue0
restart1 = lf_imptrain(freq) : delay(1,1) ; //impulstrain signaling restart with restartvalue1
restart(x) = restartvalue0*restart0 + restartvalue1*restart1 + (1-restart0-restart1)*x;
A = _ : restart : _*-1 : _ ;
B = _ : pole(p) : _*gain : pole(p) : _*gain : atan : _;
C = A~B ;
safe(x) = atan(x)/5; //suppression of extreme output values
process = C <: safe,safe : _,_ ;
Had het bijna opgegeven, maar heb 'm nu toch zover gekregen dat die rustige melodietjes speelt:
Bekijk bijlage 3838595
Weet iemand of dit binnen een of andere maatsoort valt? Het klinkt niet als volstrekte willekeur...
Eigenlijk lijkt me dit heel geschikt voor een hybride systeem, een analoge schakeling voor het genereren van een chaotisch signaal en vervolgens met wat digitale toverkunst daar iets bruikbaars van maken dat goed klinkt.
declare name "ChaosSynth5";
declare options "[midi:on]";
declare options "[nvoices:8]";
import("maths.lib");
import("reverbs.lib");
import("filters.lib");
import("stdfaust.lib");
//------------------------------
freq = hslider("v:chaos/v:[1]basic/[2]freq",200,50,5000,0.01);
gate = button("v:chaos/v:[1]basic/[1]gate");
gain = hslider("v:chaos/h:[2]control/[1]gain[style:knob]",0.1,0,1,0.01);
bend = ba.semi2ratio(hslider("v:chaos/h:[2]control/[2]bend[midi:pitchwheel][style:knob]",0,-20,20,0.01)) : si.smoo;
oct = hslider("v:chaos/h:[2]control/[3]octave[style:knob]", 1, 1, 2, 0.01);
//------------------------------
//------------------------------
add(x,y) = x,y : +;
block(x,y) = x,y :_*(1-_);
leak(x) = x*(1-le);
C = ((add,_) : (block:leak)) ~ _;
A(x,y) = x,y,y;
AA(x,y) = x,x,y,y;
AAA(x,y) = x,x,y;
//------------------------------
//------------------------------
le = hslider("v:chaos/v:[3]chaos/[1]leak[scale:log]", 0.00000000001,0.00000000001,1,0.00000000001);
pa = hslider("v:chaos/v:[3]chaos/[2]parameter", 0.6, 0.55,1,0.001);
tw1 = hslider("v:chaos/v:[3]chaos/[3]tweak1", 0, -0.1,0.01,0.00001);
tw2 = hslider("v:chaos/v:[3]chaos/[4]tweak2[scale:log]", 100, 1,200,0.001) : si.smoo ;
tw3 = hslider("v:chaos/v:[3]chaos/[5]tweak3", 0,0,0.08,0.00001);
timeconstant = 0.1585/(bend*(freq*oct));
//------------------------------
//---- R -----------------------
B = _ : _/SR : _/timeconstant : _;
Integrator = A : B,_,_ : block,_ : C;
P = _,_,_ : add,_ : A : Integrator,_ : AA : _,Integrator,_ : _,AAA : _,_, Integrator : _,_,_;
Q(x,y,z) = -1*pa*x - (1 + tw1)*y + abs(tw2*atan(z/tw2))^(1 + tw3) - 1;
R = (P : Q) ~ _;
//------------------------------
//-----envelope-----------------
att = hslider("v:chaos/h:[2]control/[6]attack[style:knob]", 0.01, 0, 1, 0.01);
dec = hslider("v:chaos/h:[2]control/[7]decay[style:knob]", 0.01, 0, 1, 0.01);
sus = hslider("v:chaos/h:[2]control/[8]sustain[style:knob]", 0.8, 0.1, 1, 0.01);
rel = hslider("v:chaos/h:[2]control/[9]release[style:knob]", 0.1, 0, 5, 0.01);
envelope = en.adsr(att,dec,sus,rel,gate)*gain;
//------------------------------
//---------reverb---------------
t60 = hslider("v:chaos/h:[4]reverb/reverberation time[style:knob]", 10, 0.1, 60, 0.01);
damp = hslider("v:chaos/h:[4]reverb/damping[style:knob]", 0.5, 0, 1, 0.01);
size = hslider("v:chaos/h:[4]reverb/size[style:knob]", 3, 0.5, 5, 0.01);
early_diff = hslider("v:chaos/h:[4]reverb/early reflections[style:knob]", 0.5, 0, 1, 0.01);
mod_depth = hslider("v:chaos/h:[4]reverb/modulation depth[style:knob]", 0.1, 0, 1, 0.01);
mod_freq = hslider("v:chaos/h:[4]reverb/modulation frequency[style:knob]", 1, 0, 10, 0.01);
low = hslider("v:chaos/h:[4]reverb/low band[style:knob]", 0.5, 0, 1, 0.01);
mid = hslider("v:chaos/h:[4]reverb/mid band[style:knob]", 0.5, 0, 1, 0.01);
high = hslider("v:chaos/h:[4]reverb/high band[style:knob]", 0.5, 0, 1, 0.01);
low_cutoff = hslider("v:chaos/h:[4]reverb/low cutoff[style:knob]", 500, 100, 6000, 1);
high_cutoff = hslider("v:chaos/h:[4]reverb/high cutoff[style:knob]", 5000, 1000, 10000, 1);
V = re.jpverb(t60, damp, size, early_diff, mod_depth, mod_freq, low, mid, high, low_cutoff, high_cutoff);
//------------------------------
//------------------------------
vol = hslider("v:chaos/[5]volume", 0.5, 0, 1, 0.0001);
//------------------------------
safe(x) = atan(x)/5; //suppression of extreme output values
process = R*vol : _*envelope <: V : dcblocker,dcblocker : safe,safe;
Heb je wel Chrome gebruikt?