audeye

Crates.ioaudeye
lib.rsaudeye
version0.2.1
sourcesrc
created_at2022-05-03 14:14:25.023411
updated_at2024-02-24 14:02:28.314421
descriptionA terminal user interface for audiofile content visualization
homepagehttps://github.com/maxmarsc/audeye
repositoryhttps://github.com/maxmarsc/audeye
max_upload_size
id579779
size154,496
(maxmarsc)

documentation

https://github.com/maxmarsc/audeye

README

Audeye

๐Ÿ”Š ๐Ÿ’ป ๐Ÿ‘๏ธAudio content visualization tool

Demo

Audeye is a terminal tool to visualize audio content, written in Rust

Features

  • wav / aif / flac / ogg-vorbis and many more (see : libsndfile format compatibility v1.0.31)
  • mono / stereo / 5.1 / 7.1 ... (up to 9 channels)
  • Waveform peak & RMS visualizer
  • Spectrogram visualizer
  • Signal normalization
  • Zoom and move inside both visualizers
  • Metadata display

Bindings

  • space : display bindings
  • left arrow / right arrow : navigate through panels
  • j / k : zoom out / in
  • h / l : move left / right
  • [0-9] : activate / deactivate display of the corresponding channel
  • Esc : reset channel layout

CLI arguments

  • -n : normalize the audio signal before displaying it (not channel aware)
  • --fft-window-size
  • --fft-window-type : hanning / hamming / blackman / uniform
  • --fft-overlap
  • --fft-db-threshold : minimum energy level to consider (in dB)
  • --fft-padding-type : zeros / loop / ramp

Paddings types

The padding type determine how to fill the sides of each FFT window when at the very edges of the audio content

  • Zeros : fill with zeros
  • Ramp : fill with zeros and a small amplitude ramp to match the last/next sample
  • Loop : fill with the end/beginning of the audio file

Dependencies

Audeye rely on Rust bindings to libsndfile

Debian / Ubuntu

apt-get install libsndfile1-dev

Installation

cargo install audeye

Build

  1. Install Rust
  2. Install libsndfile
  3. Then run cargo run <AUDIO_FILE_PATH>

Development

Please consider audeye is still in early development, feedbacks are very welcome

Requirements

Contributing

If you wanna contribute, either make a PR (for small changes/adds) or contact me on twitter / discord if you wanna get involved more deeply

Milestone

  • Waveform view
  • Spectogram view
  • Channels view navigation
  • Channel naming (stereo, 2.1, 5.1, 7.1 ...)
  • Zoom in/out
  • Metadata view
  • RMS and Peak in waveform view
  • Option : normalize
  • Option : FFT windows size and overlap
  • Option : FFT dB threshold
  • Option : FFT window type
  • Option : FFT side smoothing
  • Unit tests
  • Optionnal labels on graphs
  • Option : FFT logarithmic scale
  • Option : Waveform envelope ?
  • More audio format support
Commit count: 85

cargo fmt