Upload
maximilian-clayman
View
222
Download
1
Tags:
Embed Size (px)
Citation preview
Frequency ModulationFrequency ModulationFrequency ModulationFrequency Modulation• related to musical vibratorelated to musical vibrato• VibratoVibrato - Periodic variation of frequency - Periodic variation of frequency• A simple signal:A simple signal:
sample(time) = sin(2 freq(time)time)sample(time) = sin(2 freq(time)time)• with vibratowith vibrato
freq(time) = freqfreq(time) = freq11 + vib + vibwidwidsin(2 vibsin(2 vibrateratetime)time)
• vibvibwidwid = vibrato width = vibrato width• amount of vibratoamount of vibrato
• vibvibraterate = vibrato rate = vibrato rate• frequency of vibratofrequency of vibrato
VibratoVibratoVibratoVibrato• Typical vibrato values:Typical vibrato values:
• vibvibraterate = 5 Hertz = 5 Hertz• normal range:normal range:
1-6 Hertz, with slight acceleration during tone1-6 Hertz, with slight acceleration during tone
• vibvibwidwid
• minimum: 0 (none)minimum: 0 (none)• usual maximum for instruments:usual maximum for instruments:
.01*freq.01*freq11 (1%) (1%)• usual maximum for voices:usual maximum for voices:
.05*freq.05*freq11 (5%) (5%)• maximum for special effects:maximum for special effects:
SR/2 - highest frequency in signal SR/2 - highest frequency in signal
[iii:1][iii:1] Tenor Voice Vibrato Tenor Voice Vibrato[iii:1][iii:1] Tenor Voice Vibrato Tenor Voice Vibrato• Tenor voice has 5 Hertz vibrato rate and Tenor voice has 5 Hertz vibrato rate and
vibrato width of 4.5% vibrato width of 4.5%
Vibrato in CsoundVibrato in CsoundVibrato in CsoundVibrato in Csound• [iii:2][iii:2] synthesized tenor without vibrato synthesized tenor without vibrato• [iii:3] [iii:3] synthesized tenor with vibratosynthesized tenor with vibrato
• [iii:1][iii:1] the real tenor the real tenor
Vibrato in CsoundVibrato in CsoundVibrato in CsoundVibrato in Csound
• orchestra:orchestra:avibavib oscili ivibwidth, ivibrate, 1oscili ivibwidth, ivibrate, 1 ; modulator; modulator
asigasig oscili iamp, ifreqoscili iamp, ifreq+avib+avib, 2, 2 ; carrier; carrier
outout asig asig ; output; output
• score:score:f1 0 16385 -10 1f1 0 16385 -10 1 ; for modulator; for modulator
f2 0 16385 -10 1 .9 .8 whatever …f2 0 16385 -10 1 .9 .8 whatever … ; for carrier; for carrier
[iii:4][iii:4] Vibrato Rate Vibrato Rate[iii:4][iii:4] Vibrato Rate Vibrato Rate• vibvibraterate = 0 -----> 10 Hertz (over 10 seconds) = 0 -----> 10 Hertz (over 10 seconds)
• vibvibwidwid = .01 * freq = .01 * freq11 (1%) (1%)
slow vibrato fast vibrato
Vibrato RateVibrato RateVibrato RateVibrato Rate• orchestra:orchestra:;fmbasic.orc - use with fmbasic.sco
instr 1 ; increase vibrato rateidur = p3 ; (10)iamp = p4ifreq = p5ivibwidth = .01*ifreqiwave1 = 1
kvibratelinseg 0, idur, 10aenv linseg 0, .1, 1, idur-.3, 1, .2, 0avib oscili ivibwidth, kvibrate, iwave1asig oscili iamp, ifreq+avib, iwave1
out asig * aenvendin
Vibrato RateVibrato RateVibrato RateVibrato Rate
• score:score:
; fmbasic.sco – use with fmbasic.orc; fmbasic.sco – use with fmbasic.orcf1 0 16385 -10 1f1 0 16385 -10 1 ; sine; sine
; start dur amp freq; start dur amp freq
i1 0 10 10000 261.6 i1 0 10 10000 261.6 ; Middle C; Middle C
[iii:5][iii:5] Vibrato Amount Vibrato Amount[iii:5][iii:5] Vibrato Amount Vibrato Amount• vibvibraterate = 5 Hertz = 5 Hertz
• vibvibwidwid = 0 -----> .05 * freq = 0 -----> .05 * freq11 (0-5% over 0:10) (0-5% over 0:10)
small vibrato large vibrato
Vibrato AmountVibrato AmountVibrato AmountVibrato Amount• orchestra:orchestra:;fmbasic.orc - use with fmbasic.scoinstr 2 ; increase vibrato widthidur = p3 ; (10)iamp = p4ifreq = p5ivibrate= 5iwave1 = 1
kvibwidth linseg 0, idur, .05 * ifreqaenv linseg 0, .1, 1, idur-.3, 1, .2, 0avib oscili kvibwidth, ivibrate, iwave1asig oscili iamp, ifreq+avib, iwave1
out asig * aenvendin
Vibrato -----> FMVibrato -----> FMVibrato -----> FMVibrato -----> FM
• A sine wave with vibrato becomes a full A sine wave with vibrato becomes a full spectrum when vibspectrum when vibraterate is in the audio is in the audio
range (above 20 Hz), especially as vibrange (above 20 Hz), especially as vibraterate
approaches freqapproaches freq11..
• Since it is no longer vibrato, we use the Since it is no longer vibrato, we use the term term modulation frequencymodulation frequency instead of instead of vibrato rate.vibrato rate.
• When vibWhen vibraterate is above 20 Hz: is above 20 Hz:
freqfreqmodmod = vib = vibraterate
Vibrato -----> FMVibrato -----> FMVibrato -----> FMVibrato -----> FM• With FM, we may not get the frequency With FM, we may not get the frequency
out that we put in.out that we put in.• We call the base frequency of the outer sine We call the base frequency of the outer sine
wave the carrier frequency freqwave the carrier frequency freqcarcar::
sample(time) = sin(2 freq(time)time)sample(time) = sin(2 freq(time)time)
with:with:
freq(time) = freqfreq(time) = freqcarcar + vib + vibwidwidsin(2 freqsin(2 freqmodmodtime)time)
Vibrato -----> FMVibrato -----> FMVibrato -----> FMVibrato -----> FM• FM uses a FM uses a modulation indexmodulation index as well as as well as
the vibrato width to describe the the vibrato width to describe the amount of modulation. The relationship amount of modulation. The relationship between them is:between them is:
vibvibwidwid = Index * freq = Index * freqmodmod
or:or:
Index = vibIndex = vibwidwid / freq / freqmodmod
• Typical values for modulation index:Typical values for modulation index:0 <= Index <= 10 0 <= Index <= 10
[iii:6][iii:6] Vibrato -----> FM Vibrato -----> FM[iii:6][iii:6] Vibrato -----> FM Vibrato -----> FM• freqfreqmodmod = 1 ---> 6 Hz ---> 261.6 Hz (= vib = 1 ---> 6 Hz ---> 261.6 Hz (= vibraterate))
(vib) (FM)(vib) (FM)• Index = .02Index = .02
• (vib(vibwidwid = .02 * freq = .02 * freqmodmod))
• When the frequency of When the frequency of the modulator reaches the modulator reaches 6 Hertz (at 5 seconds), 6 Hertz (at 5 seconds), the effect changes the effect changes from vibrato to FM. from vibrato to FM.
Vibrato -----> FMVibrato -----> FMVibrato -----> FMVibrato -----> FM• The amplitude of the first harmonic The amplitude of the first harmonic
remains the same ...remains the same ...
Harmonic 1 Amplitude
Vibrato -----> FMVibrato -----> FMVibrato -----> FMVibrato -----> FM• … … but the amplitudes of the other but the amplitudes of the other
harmonics change.harmonics change.
Amplitudes of the Other Harmonics
Vibrato -----> FMVibrato -----> FMVibrato -----> FMVibrato -----> FM• The frequency changes of all the The frequency changes of all the
harmonics get much faster during FM.harmonics get much faster during FM.
Harmonic 1 Frequency
Vibrato -----> FMVibrato -----> FMVibrato -----> FMVibrato -----> FM• The frequency changes of all the The frequency changes of all the
harmonics get much faster during FM.harmonics get much faster during FM.
Harmonic 2 Frequency
Vibrato -----> FMVibrato -----> FMVibrato -----> FMVibrato -----> FM• orchestra:orchestra:;fmbasic.orc - use with fmbasic.scoinstr 3 ; vibrato --> fmidur = p3 ; (10)iamp = p4ifreq = p5ivibwidth = .02 * ifreq ; (~5.2 Hertz)iwave1 = 1
kvibratelinseg 1, idur * .5, 6, idur * .5, ifreqaenv linseg 0, .1, 1, idur-.3, 1, .2, 0amod oscili ivibwidth, kvibrate, iwave1acar oscili iamp, ifreq+amod, iwave1
out acar * aenvendin
Modulation IndexModulation IndexModulation IndexModulation Index
• Index = 0 (no modulation)Index = 0 (no modulation)• Index = .01 - .05 (vibrato range)Index = .01 - .05 (vibrato range)
• As modulation index increases, the As modulation index increases, the spectrum bandwidth increases (and spectrum bandwidth increases (and gets brighter).gets brighter).
[iii:7][iii:7] Modulation Index Modulation Index[iii:7][iii:7] Modulation Index Modulation Index• freqfreqmodmod = 261.6 Hertz = 261.6 Hertz
• index = 0 -----> 20 (over 0:10) index = 0 -----> 20 (over 0:10)
Harmonic Amplitude vs. Time
Bessel Function,
orders 0 - 3
Modulation IndexModulation IndexModulation IndexModulation Index• freqfreqmodmod = 261.6 Hertz = 261.6 Hertz
• index = 0 -----> 20 (over 10 seconds) index = 0 -----> 20 (over 10 seconds)
Frequency vs. Time
Modulation IndexModulation IndexModulation IndexModulation Index• orchestra:orchestra:;fmbasic.orc - use with fmbasic.scoinstr 4 ; vibrato --> fmidur = p3 ; (10)iamp = p4ifreq = p5imodfr = ifreqicarfr = ifreqiwave1 = 1
kindex linseg 0, idur, 20aenv linseg 0, .1, 1, idur-.3, 1, .2, 0amod oscili kindex*imodfr, imodfr, iwave1acar oscili iamp, icarfreq+amod, iwave1
out acar * aenvendin
Frequency Frequency Modulation Modulation
Block DiagramBlock Diagram
Frequency Frequency Modulation Modulation
Block DiagramBlock Diagram
Add NoiseAdd NoiseAdd NoiseAdd Noise
• Random Noise VariationRandom Noise Variationanoiseanoise randirandi .3, 15, giseed.3, 15, giseed
giseedgiseed == frac(giseed*105.947)frac(giseed*105.947)
anoiseanoise == anoise + 1anoise + 1
avrateavrate linseglinseg 1, idur, 101, idur, 10
avrateavrate == avrate avrate * anoise* anoise
avibwidavibwid == ivibwid ivibwid * anoise* anoise
• Try different combinations of the parameters to Try different combinations of the parameters to find one that really suits your soundfind one that really suits your sound