| synth {seewave} | R Documentation |
This functions synthesize pure tone sound with amplitude modulation (am) and/or frequency modulation (fm).
synth(f, d, cf, a = 1, p = 0, am = c(0, 0), fm = c(0, 0, 0), plot = FALSE, wl = 512, ovlp = 50, play = FALSE,...)
f |
sampling frequency (in Hz). |
d |
duration (in s). |
cf |
carrier frequency (in Hz). |
a |
amplitude (linear scale, relative when adding different waves). |
p |
phase (in radians). |
am |
a vector of length 2 describing amplitude modulation parameters,
see details. |
fm |
a vector of length 3 describing frequency modulation parameters,
see details. |
plot |
if TRUE returns the spectrogram
of the synthezised sound (by default FALSE). |
wl |
if plot is TRUE,
length of the window for the spectrographic analysis (even number of points). |
ovlp |
if plot is TRUE, overlap between two successive
windows of the spectrographic analysis (in %). |
play |
if TRUE the new sound is played back
using play from the package Sound
(by default FALSE). |
... |
other spectro graphical parameters. |
am is a vector of length 2 including: (1) the amplitude modulation
depth (in %), (2) the frequency of the amplitude modulation.
fm is a vector of length 3 including:
(1) the maximum excursion of a sinusoidal frequency modulation (in Hz),
(2) the frequency of a sinusoidal frequency modulation,
(3) the maximum excursion of a linear frequency modulation (in Hz).
If plot is FALSE, synth returns a one-column matrix
describing the sound synthesized.
Jérôme Sueur jerome.sueur@univ-tours.fr, Thierry Aubin thierry.aubin@ibaic.u-psud.fr and Caroline Simonis-Sueur csimonis@mnhn.fr.
Hartmann, W. M. 1998 Signals, sound and sensation. New York: Springer.
# pure tone
synth(f=22050,d=1,cf=4000,plot=TRUE)
# pure tones with am
synth(f=22050,d=1,cf=4000,am=c(50,10),plot=TRUE,osc=TRUE)
# pure tone with +2000 Hz linear fm
synth(f=22050,d=1,cf=4000,fm=c(0,0,2000),plot=TRUE)
# pure tone with sinusoidal fm
# (maximum excursion of 1000 Hz, frequency of 10 Hz)
synth(f=22050,d=1,cf=4000,fm=c(1000,10,0),plot=TRUE,wl=256,ovlp=75)
# pure tone with sinusoidal am
# (maximum excursion of 1000 Hz, frequency of 10 Hz)
# and linear fm (maximum excurion of 1000 Hz
synth(f=22050,d=1,cf=4000,fm=c(1000,10,1000),plot=TRUE,wl=256,ovlp=75)
# the same with am
synth(f=22050,d=1,cf=4000,am=c(50,10),
fm=c(1000,10,1000),plot=TRUE,wl=256,ovlp=75,osc=TRUE)
# more complex sound
F1<-synth(f=22050,cf=2000,d=1,fm=c(500,5,0),plot=FALSE)
F2<-synth(f=22050,a=0.8,cf=4000,d=1,fm=c(500,5,0))
F3<-synth(f=22050,a=0.6,cf=6000,d=1,fm=c(500,5,0))
F4<-synth(f=22050,a=0.4,cf=8000,d=1,fm=c(500,5,0))
final1<-F1+F2+F3+F4
spectro(final1,f=22050,wl=512,ovlp=75,scale=FALSE)
# insert 0.25 s silence
final1.1<-as.matrix(final1[1:(nrow(final1)/2),])
final1.2<-as.matrix(rep(0,0.25*22050))
final1.3<-as.matrix(final1[(nrow(final1)/2):nrow(final1),])
final2<-rbind(final1.1,final1.2,final1.3)
spectro(final2,f=22050,plot=TRUE,wl=512,ovlp=75,scale=FALSE)