#frame #analyzer #duration #index #toolkit #async

vpr-audio-analyzer

Audio file analyzer

2 releases

0.1.1 Aug 7, 2024
0.1.0 Sep 11, 2023

#236 in Audio

36 downloads per month
Used in vpr-audio-player

MIT license

56KB
1.5K SLoC

Vpr Audio Analyzer

The Vpr Audio Analyzer, pronounced "Vapor Audio Analyzer," is an asynchronous toolkit for working with audio files. It offers three key functions:

Retrieve Audio Frames:

Extracts audio frames from an audio file and presents them as an array.

let file = File::open(path).unwrap();
let reader = BufReader::new(file);
let analyzer = Analyzer::new(reader);

let frames = analyzer.get_audio_frames().await.unwrap();

Calculate Duration:

Quickly finds the duration of an audio file. If there's a XING header, it uses that for a faster calculation; otherwise, it sums up audio frame durations.

let file = File::open(path).unwrap();
let reader = BufReader::new(file);
let analyzer = Analyzer::new(reader);

let duration = analyzer.get_duration().await.unwrap();

Generate Seek Index:

Creates a timestamp and byte offset index for precise navigation within an audio file, useful for accurate seeking during playback.

let file = File::open(path).unwrap();
let reader = BufReader::new(file);
let analyzer = Analyzer::new(reader);

let seek_index = analyzer.get_seek_index().await.unwrap();

Dependencies

~4MB
~136K SLoC