# questo file e' pensato per essere incluso # definisce alcune variabili (quindi dovete toglierle dal file di conf, ma le potete comunque usare) # e la funzione filtroAM che include tutte le smanipolazioni varie # taglio banda = interactive.float("banda", 4500.) centrobanda = interactive.float("centrobanda", 2350.) # compressione attack = interactive.float("attack", 100.) gain = interactive.float("gain", -0.1) knee = interactive.float("knee", 1.) ratio = 4. release = interactive.float("release", 50.) rms_window = 0.1 threshold = interactive.float("threshold", -10.) # queste variabili booleane permettono di disabilitare alcuni step in tempo reale # in questo modo si puo' testare l'effetto che fa ogni componente. # non e' pero' possibile riordinare i componenti phaser = interactive.bool("phaser", true) tagliabanda = interactive.bool("tagliabanda", true) eq = interactive.bool("eq", true) vlevel = interactive.bool("vlevel", true) comp = interactive.bool("comp", true) bassi = interactive.float("bassi", -3.) def ifelse(cond, s1, s2) switch(track_sensitive=false, [(cond, s1), ({true}, s2)]) end def bandaAM(in) = # facciamo molti stages per rendere il taglio passabanda piu "netto". Se facciamo meno stages ci troviamo # con i 5000Hz ad una intensita' paragonabile, cosa non buona in modulazione. # # sperimentalmente, dando noise() in pasto a questo filtro si ottiene che la 5000 sta a -6dB rispetto alla # banda desiderata ladspa.bandpass_iir(id="passabanda", bandwidth=banda, center_frequency=centrobanda, stages=6, in) end def filtroAM(in) = a = mean(in) # mono a = ifelse (tagliabanda, bandaAM(a), a) # il phaser rimette in fase (la voce, tipicamente) così poi quando la comprimi viene piu' forte a = ifelse(phaser, ladspa.autophaser(a), a) # la normalizzazione avviene dopo le operazioni piu' invasive (taglio e phaser) in modo che il volume sia # normalizzato su qualcosa di simile al volume percepito a = ifelse( vlevel, ladspa.vlevel_mono(a), a) # caliamo un po' di bassi a = ifelse(eq, ladspa.mbeq(id="eq", _100hz_gain=bassi, _156hz_gain=bassi, _220hz_gain=bassi, a), a) ifelse(comp, compress(id="comprimo", attack=attack, gain=gain, knee=knee, ratio=ratio, release=release, rms_window=rms_window, threshold=threshold, a), a) end