# Liquidsoap

## audio stream generation

### Building liquidsoap from source

From every sub-project's directory (ocaml-vorbis, ocaml-dtools, liquidsoap, etc.) you can build using `./bootstrap`, `./configure`, `make` and optionally install using `make install`.

If you are using the `liquidsoap-full` tarball, or the SVN trunk, there is also a fast procedure for building liquidsoap that doesn't require installing the libraries provided by Savonet. The steps to follow are simple.

First, you should choose which features you want to enable when building liquidsoap. Each shipped feature can be enabled/disabled by editing the `PACKAGE` file. Depending on your version you might have to first copy `PACKAGES.default` to `PACKAGES`.

Then run the usual commands from the toplevel directory, above the sub-project's directories:

    # Edit PACKAGES to choose which feature you want

    # In the SVN tree you should bootstrap first.
    # No need with the tarballs.
    ./bootstrap

    # Configure all libraries and packages.
    # You may pass extra options such as --enable-debugging,
    # --prefix, --sysconfdir, --localstatedir, etc.
    ./configure

    # Now, build all libraries and liquidsoap
    make

    # To install liquidsoap,
    # you'll usually need to type the following as root
    make install

#### Dependencies

Here are liquidsoap's dependencies (all OCaml libraries are distributed by Savonet, except when linked):

- ocamlfind
- ocaml-dtools
- ocaml-duppy (>= 0.1.2)
- ocaml-pcre

And also optional dependencies:

- ocaml-ogg
- ocaml-vorbis
- ocaml-shout
- ocaml-mad for mp3 decoding
- ocaml-lame for mp3 encoding
- ocaml-faac for AAC encoding
- ocaml-faad for AAC stream decoding
- ocaml-taglib for MP3 audio tag reading
- ocaml-magic for file type detection. This library is very useful for reading mp3 files. If not enabled, liquidsoap may accept as mp3 files that do not contains mp3 data, such as jpeg pictures.
- ocaml-xmlplaylist for XML-based playlist formats
- ocaml-soundtouch for soundtouch audio effects
- ocaml-lastfm and ocaml-xmllight for lastfm protocol support
- camomile for detecting metadata encodings and re-encoding them to utf8
- ocaml-alsa for ALSA input/output
- ocaml-ao for AO I/O
- ocaml-portaudio for Portaudio I/O
- ocaml-bjack for Jack output/input
- ocaml-ladspa for LADSPA plugins
- ocaml-xmllight

Runtime dependencies include:

- wget for downloading remote files (http, https, ftp)
- ufetch (provided by ocaml-fetch) for downloading remote files (smb, http, ftp)
- festival for speech synthesis (say)

And other that you'll find on the project page, or in liquidsoap-full tarball.