easy-audio

2024-10-12

A pack of audio decoders for FLAC, WavPack and other formats

Upstream URL

github.com/shamazmazum/easy-audio

Author

Vasily Postnicov <shamaz.mazum@gmail.com>

License

2-clause BSD
README

Easy audio

Build Status CI

Overview

NB: 25.04.2022: easy-audio/utils system was merged to easy-audio/core. Global nicknames were removed from all packages loaded with (asdf:load-system :easy-audio). Use full names (like easy-audio.flac instead of flac) or local nicknames. The version was bumped to 1.1.

Easy audio is my small but slowly growing pack of audio decoders. It can help you decode audio files and also provides easy access to metadata.

It has:

  • FLAC format support. Can decode anything, supports almost all metadata blocks.
  • Partial support for WavPack format. Can read and decode non-hybrid lossless WavPack data which is the most used, anyway. Support many metadata blocks (though they are not as useful as in FLAC).
  • Partial wav container support, can read uncompressed, a-law compressed and mu-law compressed audio data.
  • OGG container support, but, unfortunately, without Vorbis decoder. Can read FLAC compressed data inside OGG container.
  • APEv2 tags support (currently only in wavpack files).
  • Partial APE support. Only the most recent version (3.99) is supported, also mono audio is not supported. Also there is no integrity checks.

It has minimum dependencies (only flexi-streams for reading UTF-8 coded values from metadata) and written entirely in Common Lisp. It contains unsafe code to achieve maximal performance and assumes that fixnums are more than 32-bit wide, so I am not sure if it works on some 32-bit implementations or not.

Documentation

Documentation for easy-audio is automatically generated by codex. Just run (codex:document :easy-audio). You can also visit a project page.

Dependencies (6)

  • alexandria
  • fiveam
  • flexi-streams
  • md5
  • nibbles-streams
  • serapeum

Dependents (1)

  • GitHub
  • Quicklisp