Internal soundgen function.
.modulationSpectrum(
audio,
amRes = 5,
maxDur = 5,
logSpec = FALSE,
windowLength = 15,
step = NULL,
overlap = 80,
wn = "hanning",
zp = 0,
power = 1,
normalize = TRUE,
roughRange = c(30, 150),
amRange = c(10, 200),
returnMS = TRUE,
returnComplex = FALSE,
plot = TRUE,
savePlots = NULL,
logWarpX = NULL,
logWarpY = NULL,
quantiles = c(0.5, 0.8, 0.9),
kernelSize = 5,
kernelSD = 0.5,
colorTheme = c("bw", "seewave", "heat.colors", "...")[1],
col = NULL,
main = NULL,
xlab = "Hz",
ylab = "1/KHz",
xlim = NULL,
ylim = NULL,
width = 900,
height = 500,
units = "px",
res = NA,
...
)
a list returned by readAudio
target resolution of amplitude modulation, Hz. If NULL
,
the entire sound is analyzed at once, resulting in a single roughness value
(unless it is longer than maxDur
, in which case it is analyzed in
chunks maxDur
s long). If amRes
is set, roughness is
calculated for windows ~1000/amRes
ms long (but at least 3 STFT
frames). amRes
also affects the amount of smoothing when calculating
amMsFreq
and amMsPurity
sounds longer than maxDur
s are split into fragments,
and the modulation spectra of all fragments are averaged
if TRUE, the spectrogram is log-transformed prior to taking 2D FFT
length of FFT window, ms
you can override overlap
by specifying FFT step, ms (NB:
because digital audio is sampled at discrete time intervals of
1/samplingRate, the actual step and thus the time stamps of STFT frames
may be slightly different, eg 24.98866 instead of 25.0 ms)
overlap between successive FFT frames, %
window type accepted by ftwindow
, currently
gaussian, hanning, hamming, bartlett, rectangular, blackman, flattop
window length after zero padding, points
raise modulation spectrum to this power (eg power = 2 for ^2, or "power spectrum")
if TRUE, the modulation spectrum of each analyzed fragment
maxDur
in duration is separately normalized to have max = 1
the range of temporal modulation frequencies that constitute the "roughness" zone, Hz
the range of temporal modulation frequencies that we are interested in as "amplitude modulation" (AM), Hz
if FALSE, only roughness is returned (much faster)
if TRUE, returns a complex modulation spectrum (without normalization and warping)
if TRUE, plots the modulation spectrum of each sound
if a valid path is specified, a plot is saved in this folder (defaults to NA)
numeric vector of length 2: c(sigma, base) of pseudolog-warping the modulation spectrum, as in function pseudo_log_trans() from the "scales" package
labeled contour values, % (e.g., "50" marks regions that contain 50% of the sum total of the entire modulation spectrum)
the size of Gaussian kernel used for smoothing (1 = no smoothing)
the SD of Gaussian kernel used for smoothing, relative to its size
black and white ('bw'), as in seewave package ('seewave'),
or any palette from palette
such as 'heat.colors',
'cm.colors', etc
actual colors, eg rev(rainbow(100)) - see ?hcl.colors for colors in base R (overrides colorTheme)
graphical parameters
parameters passed to
png
if the plot is saved
other graphical parameters passed on to filled.contour.mod
and contour
(see spectrogram
)