Description Usage Arguments Value Author(s) See Also Examples

computes a spectrogram with Hamming windows and user-defined raster resolution

1 | ```
spectrogram(path, time.res = 1/1000, freq.res = 100)
``` |

`path` |
the location of the sound file |

`time.res` |
the desired time resolution of the spectrogram |

`freq.res` |
the desired frequency resolution of the spectrogram |

an object of class "spg", which is a matrix with the following additional attributes:

`time` |
a vector of time values for each row |

`frequency` |
a vector of frequency mid-points for each column |

`RMS` |
the root-mean-square amplitude of each row |

`envelope` |
a matrix of highest and lowest amplitudes for each time step. useful for plotting waveforms |

Benjamin N. Taft ben.taft@landmarkacoustics.com

`hamming`

`get.freq.res`

`get.time.res`

`sample.rate.spg`

`standard.spg.image`

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | ```
##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (path, time.res = 1/1000, freq.res = 100)
{
require(tuneR)
wav <- readWave(path)
sample.rate <- attr(wav, "samp.rate")
W <- 2^ceiling(log(sample.rate, 2) - log(freq.res, 2) - 1)
span <- -(W - 1):W
S <- floor(time.res * sample.rate)
wav <- as.numeric(attr(wav, "left"))
t.max <- length(wav)
N <- 1 + floor(t.max/S)
spg <- matrix(NA, N, W)
envelope <- matrix(NA, N, 2)
rms <- numeric(N)
H <- hamming(2 * W)
for (i in 1:N) {
ix <- S * (i - 1) + span
ix[ix < 1 | ix > t.max] <- NA
envelope[i, ] <- range(wav[ix], na.rm = T)
win <- H * wav[ix]
win[is.na(win)] <- 0
rms[i] <- sqrt(mean(win^2))
spg[i, ] <- log(spk(win), 10)
}
attributes(spg) <- c(attributes(spg), list(time = 0:(N -
1) * S/sample.rate, frequency = sample.rate * 0:(W -
1)/(2 * W), RMS = rms, envelope = envelope))
class(spg) <- c("spg", class(spg))
invisible(spg)
}
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.