123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # 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
|