C C++ Matlab Makefile
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
arduino Arduino encoder Mar 30, 2016
core Buffer overflow issues fixed Jun 28, 2018
tests Better metadata handling Dec 30, 2015
utils Fixed wavdiff Dec 27, 2015
.gitignore Updated .gitignore Dec 27, 2015
LICENSE commit Jul 31, 2015
Makefile Slight changes Dec 30, 2015
README.md Updated README Nov 13, 2017
TODO.txt Added TODO Nov 20, 2015



SimplE Lossless Audio

A simplified lossless audio codec written for my final year project.

Block Diagrams

Encoder Decoder

Main Components

  • Linear prediction filter (core/lpc.c)
  • Golomb-Rice compressor and decompressor (core/rice.c)
  • apev2 metadata reader/writer (apev2.c)
  • Encoder (core/encoder.c)
  • Decoder (core/decoder.c)
  • Command line player (player/selaplay.c)
  • Matlab implementation of Linear prediction filter can be found in 'tests/matlab-tests' folder

Build requirements

  • gcc (You can use clang if you modify the CC variable in the Makefile)
  • GNU make
  • Standard math library for building the encoder and decoder.
  • POSIX threading and pulseaudio/libao developement libraries for building the command line player. Note : On Windows you will need cygwin to build the command line player. Otherwise MinGW is sufficient.

Build instructions

  • cd to the directory
  • type make all to build the encoder & decoder
  • type make selaplay_ao or make selaplay_pulse to build the player using either libao/pulseaudio libraries
  • type make lpctest && make ricetest && make apev2test to build the tests
  • type make wavdiff to build the diff utility for .wav files


License : MIT