Skip to content

Lossless audio decoder written in common lisp

License

Notifications You must be signed in to change notification settings

jibal/easy-audio

 
 

Repository files navigation

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.

About

Lossless audio decoder written in common lisp

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Common Lisp 100.0%