While the same sounds can be created with soundgen(), this facetious function
produces the same effect more efficiently and with very few control
parameters. With default settings, execution time is ~ 10 ms per second of
audio sampled at 16000 Hz. Principle: creates separate glottal cycles with
harmonics, but no formants. See soundgen
for more details.
fart(glottis = c(50, 200), glottisAnchors = "deprecated", pitch = 65,
pitchAnchors = "deprecated", temperature = 0.25, sylLen = 600,
rolloff = -10, samplingRate = 16000, play = FALSE, plot = FALSE)
anchors for specifying the proportion of a glottal cycle with closed glottis, % (0 = no modification, 100 = closed phase as long as open phase); numeric vector or dataframe specifying time and value (anchor format)
anchors for specifying the proportion of a glottal cycle with closed glottis, % (0 = no modification, 100 = closed phase as long as open phase); numeric vector or dataframe specifying time and value (anchor format)
a numeric vector of f0 values in Hz or a dataframe specifying the time (ms or 0 to 1) and value (Hz) of each anchor, hereafter "anchor format". These anchors are used to create a smooth contour of fundamental frequency f0 (pitch) within one syllable. NB: "pitchAnchors" is deprecated; use simply "pitch" instead (same for other arguments with "Anchors" below)
a numeric vector of f0 values in Hz or a dataframe specifying the time (ms or 0 to 1) and value (Hz) of each anchor, hereafter "anchor format". These anchors are used to create a smooth contour of fundamental frequency f0 (pitch) within one syllable. NB: "pitchAnchors" is deprecated; use simply "pitch" instead (same for other arguments with "Anchors" below)
hyperparameter for regulating the amount of stochasticity in sound generation
syllable length, ms (not vectorized)
rolloff of harmonics in source spectrum, dB/octave (not vectorized)
sampling frequency, Hz
if TRUE, plays the synthesized sound. In case of errors, try
setting another default player for play
if TRUE, plots the waveform
Returns a normalized waveform.
# NOT RUN {
f = fart()
# playme(f)
# }
# NOT RUN {
while (TRUE) {
fart(sylLen = 300, temperature = .5, play = TRUE)
Sys.sleep(rexp(1, rate = 1))
}
# }
Run the code above in your browser using DataLab