Øvelse: Anvendelse af filtre
Denne øvelse går ud på at anvende og modulere gængse filter-UGens.
Valg og indstilling af filtre
Brug følgende filtre til at modificere klangen af hvid støj:
- Et low pass-filter med cutoff-frekvens på 1000 Hz.
- Et high pass-filter med cutoff-frekvens på 800 Hz.
- Et band pass-filter med centerfrekvens på 500 Hz.
- Et resonerende low pass-filter med cutoff-frekvens på 800 Hz og rq-værdi på 0.1.
Du kan finde hjælp og eksempler i cheat sheetet om filtre.
Modulation af filtre
Brug følgende kilder til at modulere cutoff-frekvensen for et low pass-filter, så cutoff-frekvensen bevæger sig mellem 500 Hz og 1000 Hz (se evt. afsnittet om modulation af UGens for relevante teknikker).
- Den allerede noterede envelope.
- En
XLine
-envelope, vælg selv tidsinterval. - En LFO-UGen - vælg selv bølgeform og passende frekvens.
{
var source = PinkNoise.ar;
var env = EnvGen.ar(Env.linen(0.5, 0.5, 2), doneAction: Done.freeSelf);
var cutoff = ;
var sig = LPF.ar(source, cutoff);
sig * env;
}.play;
Subtraktiv SynthDef
Omskriv kildekoden fra ovenstående opgave til en SynthDef, som gør brug af subtraktiv syntese. Du kan evt. gøre brug af en SynthDef-skabelon som ramme for dit arbejde. Se også hvordan en SynthDef adskiller sig fra UGen-funktioner.
SynthDef'en skal overholde følgende krav:
- Lydkilden ændres fra pink støj til en oscillator med en periodisk bølgeform og et righoldigt spektrum (fx en savtakket eller firkantet bølge).
- Oscillatorens frekvens styres af et argument kaldet
freq
med default-værdi 440 Hz. - Filteret ændres til typen
RLPF
. - Filterets cutoff-frekvens bevæger sig mellem 2 og 4 oktaver over oscillatorfrekvensen i takt med envelope-generatoren.
- Filterets rq-værdi styres af et SynthDef-argument med default-værdi 0.5.
- Følgende envelope-parametre kan styres ved hjælp af SynthDef-argumenter:
attackTime
, default-værdi 0.1.curve
, default-værdi 0.
Skriv en Pbind-komposition, som demonstrerer SynthDef'ens forskellige klangmuligheder, dvs. hvor nøglerne i kodeblokken herunder varieres ved hjælp af pattterns. Husk at erstatte \navnetPåMinFantastiskeSynthDef
med det navn, du selv har valgt.