Comments (3)
per ogni signal flow realizzare un dsp richiamndoli con component
from fc2003dsaae2.
import("seam.discipio.lib");
//------------------------------------------- signal flow 1a
/*signal_flow_1a(var1, var2, mic1, mic2, mic3, mic4) = mic1, mic2,(mic3, mic4 <: +,(
_,_,(integrator(0.01), integrator(0.01) :
delay(0.01,0.95),delay(0.01,0.95) :
+ :
mapsum(_,6,6) <:
_,_,_) :
_,ro.cross(2),_,_ :
localmax, localmax,_ :
-,_ :
localmax <:
delay(12,0),_ :
+ :
mapsum(_,0,0.5) :
lp1p(0.5)) :
_ ,(_<: _,_) :
ro.cross(2),_ :
_, (_<: _,_,_,_),_ :
_,_,_,_,* :
mapsub(_,1,1),
(fi.highpass(3,var2) : integrator(0.05)),
(fi.lowpass(3,var2) : integrator(0.1)),
integrator(0.1),
integrator(0.01) :
_,-,_,_ :
*,_,_:
delay(0.01,0.995),
delay(0.01,0.9),
delay(0.01,0.995) :
par(i,3,fi.lowpass(5,25)):
mapsum(_,0.5,0.5),
(( mapsub(_^2,1,1)) <: delay(var1/2,0),delay(var1/3,0),_),
(_<: delay(var1/3,0),delay(var1/2,0), mapcond,_));*/
signal_flow_1a = component("signalflow1a.dsp").signal_flow_1a;
//------------------------------------------- signal flow 1b
signal_flow_1b(var1, var3, grainOut1, grainOut2, mic1, mic2, memWriteLev, cntrlMain) =
(
mic1, mic2 : hp1(50),hp1(50) : lp1p(6000), lp1p(6000) : integrator(0.01), integrator(0.01) : delay(0.01,0.999), delay(0.01,0.999) : fi.lowpass(5, 0.5), fi.lowpass(5, 0.5)
),
(
grainOut1, grainOut2: + : integrator(0.01) : delay(0.01, 0.97) : fi.lowpass(5,0.5) <: _+delay(var1*(2), (1-var3)*(0.5)) : mapsub(_,1,0.5)
), (
(timeIndex(var1)<: mapmul(_,-2,0.5),mapmul(_,1,0.5)), triangle1(var1, memWriteLev)*memWriteLev,triangle2(var1, cntrlMain), triangle3(var1)
)with{
timeIndex(var1) = os.lf_trianglepos(1/(var1*(2)));
triangle1(var1, memWriteLev) = os.lf_trianglepos(1/(var1*(6)));
triangle2(var1, cntrlMain) = os.lf_trianglepos(var1*(1-cntrlMain));
triangle3(var1) = os.lf_trianglepos(1/var1);
}
;
/*, cntrlMic1, cntrlMic2, directLevel, triangle1, triangle2, mic1, mic2, diffHL, memWriteDel1, memWriteDel2, memWriteLev, cntrlFeed, cntrlMain*/
signal_flop_2a(
var1,
var2,
cntrlMic1,
cntrlMic2,
directLevel,
triangle1,
triangle2,
mic1,
mic2,
diffHL,
memWriteDel1,
memWriteDel2,
memWriteLev,
cntrlFeed,
cntrlMain
) = mic1,mic2,sampleread(ratio1, memchunk1), sampleread(ratio2, memchunk2), sampleread(ratio3, memchunk3), sampleread(ratio4, memchunk4), sampleread(ratio5, memchunk5) /* :
hp1(50), hp1(50), par(i,5,fi.highpass(4, 50)) : lp1p(6000), lp1p(6000), de.delay(pm.l2s(var1)/2), de.delay(pm.l2s(var1)), de.delay(pm.l2s(var1)/1.5), de.delay(pm.l2s(var1)/3), de.delay(pm.l2s(var1)/2.5) : *(1-cntrlMic1), *(1-cntrlMic2) <:
*(directLevel), *(directLevel), _, _ */
with{
ratio1 = (var2+(diffHL*1000))/261;
memchunk1 = (1-memWriteDel2);
ratio2 = (var2+(diffHL*1000))/261;
memchunk2 = (1-memWriteDel2);
ratio3 = (var2+(diffHL*1000))/261;
memchunk3 = (1-memWriteDel2);
ratio4 = (var2+(diffHL*1000))/261;
memchunk4 = (1-memWriteDel2);
ratio5 = (var2+(diffHL*1000))/261;
memchunk5 = (1-memWriteDel2);
};
//signal_flow_2b() = ;
//process = no.no.multinoise(2) : *(0.1),*(0.1) : signal_flow_1a;
//process = signal_flow_1b(no.noise*(0.1),no.pink_noise*(0.2), _, _, 0.5,23,1,23);
/*
process = signal_flow_1a(var1,var2) <:
si.bus(20) :
23, 42, _,_,!,!,!,_,!,!,!,_,
_,_,_,_,_,_,!,!,_,_
: (signal_flow_1b(var1,var3) <: si.bus(16)) , _,_,_,_,_,!,!,!:
!,!,!,_,_,!,!,_, signal_flow_2a(var1, var2);
*/
//ciccio = signal_flow_2a;
signal_flow_2a(
var1,
var2,
cntrlMic1,
cntrlMic2,
directLevel,
triangle1,
triangle2,
mic1,
mic2,
diffHL,
memWriteDel1,
memWriteDel2,
memWriteLev,
cntrlFeed,
cntrlMain
) = (_ <:
(sampleread(ratio1, memchunk1), sampleread(ratio2, memchunk2), sampleread(ratio3, memchunk3) :
par(i,3,fi.highpass(4,50)) : si.bus(2), (_<: _,_): de.delay(delMax,pm.l2s(var1)/2), de.delay(delMax,pm.l2s(var1)),(_<: fi.svf.bp(1000,1), fi.svf.bp(2000,1)), de.delay(delMax, pm.l2s(var1)/1.5) :> (si.bus(4) :> _*(cntrlFeed)*(memWriteLev) <: _,_ : (_,(mic1 : hp1(50) : lp1p(6000) *(1-cntrlMic1)),(mic2 : hp1(50) : lp1p(6000) *(1-cntrlMic2)) <: _,_,_,_,_,_ : (_,_,_ :> *(triangle1)), !,*(directLevel),*(directLevel)) ,(*(memWriteLev) <: (de.delay(delMax,(0.05*ba.sec2samp(cntrlMain))) *(triangle2)*(directLevel)),*(1-triangle2)*(directLevel))),_), (sampleread(ratio4, memchunk4) : fi.highpass(4,50) : de.delay(delMax,pm.l2s(var1)/3)), (sampleread(ratio5, memchunk5) : fi.highpass(4,50) : de.delay(delMax,pm.l2s(var1)/2.5)) )~_ : !,si.bus(7) : si.bus(4),ro.crossNM(1,2)
with{
ratio1 = (var2+(diffHL*1000))/261;
memchunk1 = (1-memWriteDel2);
ratio2 = (var2+(diffHL*1000))/261;
memchunk2 = (1-memWriteDel2);
ratio3 = (var2+(diffHL*1000))/261;
memchunk3 = (1-memWriteDel2);
ratio4 = (var2+(diffHL*1000))/261;
memchunk4 = (1-memWriteDel2);
ratio5 = (var2+(diffHL*1000))/261;
memchunk5 = (1-memWriteDel2);
};
//process = signal_flow_2a;
signal_flow_2b(timeIndex1,timeIndex2,triangle3,sig1,sig2,sig3,sig4,sig5,sig6,sig7, memWriteDel1, memWriteDel2, memWriteLev, cntrlLev1,cntrlLev2) =
((granular_sampling(timeIndex1,memWriteDel1,cntrlLev1,21),
granular_sampling(timeIndex2,memWriteDel2,cntrlLev2,20) <:
_,_, *(1-(memWriteLev)),*(1-(memWriteLev)),*(memWriteLev),*(memWriteLev)) : _,_,_,_,ro.cross(2)),
(sig5 <: _,de.delay(delMax, ba.sec2samp(0.05)) <:
_*(triangle3),_*(triangle3), _*(1-triangle3),_*(1-triangle3)),
((sig6 <: _,de.delay(delMax, ba.sec2samp(0.036)) <:
_*(1-triangle3),_*(1-triangle3),_*(triangle3),_*(triangle3)) : ro.cross(2),ro.cross(2)),
sig1,sig2,sig2,sig3,sig4,sig7 : _,_,(si.bus(18):> _,_)
;
//process = granular_sampling;
signal_flow_3= _,_ <:
_,_,de.delay(delMax, (var4/2/344)), de.delay(delMax, (var4/2/344)),de.delay(delMax, (var4/344)), de.delay(delMax, (var4/344));
process = signal_flow_1a(var1,var2) <:
si.bus(30) :
(_, _, _,_,!,!,!,_,!,!,!,_,
_,_,_,_,_,_,!,!,_,_,
!,!,!,_,_,_,_,_,!,!:
(signal_flow_1b(var1,var3) <: si.bus(16)) , _,_,_,_,_,!,!,!,_,_,_,_,_:
!,!,!,_,_,!,!,_, signal_flow_2a(var1, var2),_,_,_,_,_ :
signal_flow_2b)~si.bus(2) : !,!,_,_ : signal_flow_3;
import("seam.discipio.lib");
//------------------------------------------- signal flow 1a
signal_flow_1a(var1, var2, mic1, mic2, mic3, mic4) = mic1, mic2,(mic3, mic4 <: +,(
_,_,(integrator(0.01), integrator(0.01) :
delay(0.01,0.95),delay(0.01,0.95) :
+ :
mapsum(_,6,6) <:
_,_,_) :
_,ro.cross(2),_,_ :
localmax, localmax,_ :
-,_ :
localmax <:
delay(12,0),_ :
+ :
mapsum(_,0,0.5) :
lp1p(0.5)) :
_ ,(_<: _,_) :
ro.cross(2),_ :
_, (_<: _,_,_,_),_ :
_,_,_,_,* :
mapsub(_,1,1),
(fi.highpass(3,var2) : integrator(0.05)),
(fi.lowpass(3,var2) : integrator(0.1)),
integrator(0.1),
integrator(0.01) :
_,-,_,_ :
*,_,_:
delay(0.01,0.995),
delay(0.01,0.9),
delay(0.01,0.995) :
par(i,3,fi.lowpass(5,25)):
mapsum(_,0.5,0.5),
(( mapsub(_^2,1,1)) <: delay(var1/2,0),delay(var1/3,0),_),
(_<: delay(var1/3,0),delay(var1/2,0), mapcond,_));
process = signal_flow_1a;
import("stdfaust.lib");
var1 = 40;
var2 = 1000;
var3 = 1000;
var4 = 12;
//cntrlMain = 42;
//memWriteLev = 23;
mapsum(x,s,m) = s+(x*(m));
mapsub(x,s,m) = s-(x*(m));
mapmul(x,s,m) = m*(x+s);
mapcond(x) = select2(x>0.5,1, (1-x)*2);
delMax = 2^16;
//
integrator(s) = an.amp_follower(s);
//
localmax(frame) = ba.peakholder(frame);
// max del 1 sec
delay(del,fb) = (+ : de.delay(ma.SR,ba.sec2samp(d)))~*(fb)
with{
d = min(0, del);
dmax = d : ba.sec2samp : ma.np2;
};
eavg(a) = *(a) : +~*(1-a);
acor(fc) = cos(omega(fc))-1+sqrt(cosq(omega(fc))-4*cos(omega(fc))+3);
lp1p(fc) = eavg(acor(fc));
hp1(fc) = _<:_-(lp1p(fc));
// 2pi
twopi = 2*ma.PI;
tau = twopi;
//------------------------------------------------------------------------ e ---
eu = 2.71828182845904523536028747135266249775724709369995957496696762772407663;
ecalc = _ <: (1+(1/_))^_;
//-------------------------------------------------------------------- OMEGA ---
omega(fc) = fc*twopi/ma.SR;
//------------------------------------------------------- BILINEAR TRANSFORM ---
w(fc) = tan(ma.PI*fc/ma.SR);
//------------------------------------------------------------ SIN^2 - COS^2 ---
cosq(x) = cos(x)*cos(x);
//================================sampleread
sampleread_wannabe(ratio, memchunk, x) = x <: (it.frwtable(N, S, 0.0, wIdx, _, rIdx))
with{
N = 5;
S = 44100; //TODO change with SR
rIdx = os.phasor(S, ratio);
wIdx = ba.period(S);
};
sampleread(ratio, memchunk, sig) =
// delay frazionario * crossfade
de.fdelay(maxDelay,d,sig) * ma.fmin(d/xfade,1) +
de.fdelay(maxDelay,d+bufsize,sig) * (1-ma.fmin(d/xfade,1))
with {
maxDelay = 65536;
bufsize = int(min(maxDelay, pm.l2s(var1)) * (memchunk) : si.smoo);
xfade = 128;
d = (1 - ratio : si.smoo) : (+ : +(bufsize) : fmod(_,bufsize)) ~ _;
};
//process = _ <: _,sampleread(ratio, memchunk);
//ratio = hslider("ratio", 1, 0.5, 2, 0.01);
//memchunk = hslider("memchunk", 1, 0.1, 1, 0.01);
/*granular sampling = read sample sequences off subsequent buffer memory chunks, and envelopes the signal chunk with a pseudo-Gaussian envelope curve; the particular implementation should allow for time-stretching (slower memory pointer increments at grain level), as well as for "grain density" controls and slight random deviations ("jitter") on grain parameters; no frequency shift necessary*/
granular_sampling(timeIndex,memWriteDel,cntrlLev1,div) =
div;
from fc2003dsaae2.
elementi suddivisi per porzioni dei signal flow e importate come da esempio signal_flow_1a = component("signalflow1a.dsp").signal_flow_1a;
.
Il test di ogni singola microporzione è stato realizzato richiamando semplicemente la porzione di codice in ogni singolo file: process=nome_microporzione(parametri)
.
from fc2003dsaae2.
Related Issues (16)
- AE Maggio improvements
- Lista degli ingredienti HOT 2
- IR - ea
- Inserire i meter e gli slider per le variabili di controllo HOT 1
- Controllare le variabili di inizializzazione
- Implementazione del granulatore HOT 1
- Pulizia del codice e indentazione adeguata HOT 1
- Inserire in libreria elementi utilizzati più volte!
- granulatore da cambiare `varUno` con `var1`
- granulatore: manca mem buffer in ingresso al granulatore
- tabella delay e feedback per le linee di ritardo
- inserire anche gli slider per le variabili
- inserire dei meter in dB per i 4 microfoni in ingresso
- inserire il pannello dei meter sotto ogni Signal Flow, come fatto per il Signal Flow 1a
- continuare a controllare la libreria seam.discipio.lib
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fc2003dsaae2.