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)
  }
 | 
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.