Reads raw audio data from any common audio or video format. Use read_audio_bin to get raw PCM audio samples, or read_audio_fft to stream-convert directly into frequency domain (spectrum) data using FFmpeg built-in FFT.

  window = hanning(1024),
  overlap = 0.75,
  sample_rate = NULL,
  start_time = NULL,
  end_time = NULL

  channels = NULL,
  sample_rate = NULL,
  start_time = NULL,
  end_time = NULL



path to the input sound or video file containing the audio stream


vector with weights defining the moving fft window function. The length of this vector is the size of the window and hence determines the output frequency range.


value between 0 and 1 of overlap proportion between moving fft windows


downsample audio to reduce FFT output size. Default keeps sample rate from the input file.

start_time, end_time

position (in seconds) to cut input stream to be processed.


number of output channels, set to 1 to convert to mono sound


Currently read_audio_fft automatically converts input audio to mono channel such that we get a single matrix. Use the plot() method on data returned by read_audio_fft to show the spectrogram. The av_spectrogram_video generates a video that plays the audio while showing an animated spectrogram with moving status bar, which is very cool.

See also


# Use a 5 sec fragment wonderland <- system.file('samples/Synapsis-Wonderland.mp3', package='av') # Read initial 5 sec as as frequency spectrum fft_data <- read_audio_fft(wonderland, end_time = 5.0) dim(fft_data)
#> [1] 512 860
# Plot the spectrogram plot(fft_data)
# Show other parameters dim(read_audio_fft(wonderland, end_time = 5.0, hamming(2048)))
#> [1] 1024 430
dim(read_audio_fft(wonderland, end_time = 5.0, hamming(4096)))
#> [1] 2048 215