0.3.6 (17-12-2007)
Bugfix release:
 - Close Http socket
 - Add http socket timeout
 - Close playlist file after reading its content
 - Fix http redirect support for lastfm files
 - Fix file open leak in camomile support
 - Fix playlist uri ending with "/"

0.3.5 (08-11-2007)
Bugfix release:
  - Fixed #57: scpls and mpegurl playlist parsing
  - Fixed #46: Late cross-scripts bindings

0.3.4 (25-09-2007)
Notation: "-" stands for a change, "+" for an addition.
* Language
  - Support for polymorphism, subtyping and basic ad-hoc polymorphism,
    which allows a much simpler API, notably for maths and serialization.
  + Added interactive_*() for mutable values.
  - The right syntax for settings is now set("var", value) and can be used
    anywhere in the scripts.
  - The volume parameters of most operators are now in dB.
  - Many builtin functions added.
  - Nicer type error messages.
* Sources
  + Added input.lastfm() to relay last.fm streams.
  + Added input.harbor() to received Icecast2 source streams.
  + Added noise() to generate white noise
  - Reimplemented playlist support, added various xml and text formats.
  - Added mpd protocol to find files using mpd.
* Operators
  + New effects: compress(), flanger(), pan().
  + New filters: filter.fir.*(), filter.iir.*(), filter.biquad.*(), comb().
  + Added support for LADSPA effects.
  + Added eat_blank() to remove blanks.
* Outputs
  - Added non-default restart option for output.icecast.*().
  - Added the possibility to tweak some settings at runtime.
  - Split output.icecast.vorbis() into output.icecast.vorbis.*() to distinguish
    between encoding modes -- and similarly for output.file.vorbis and mp3.
  - Better handling of Icecast disconnections.
* IO
  + Added portaudio support.
  - Jack support is now somewhat working.
* As usual, lots of bug fixes, careful polishing & much more...

0.3.3 (06-06-2007)
* Major cleanup of the core stream representation; moved to float arrays,
  removing several back-and-forth conversions and enhancing the perfs a lot;
  reviewed all sources and operators, made many minor enhancements btw.
* Lots of sound processing operators: compand, compress, normalize,
  pitch, bpm, soundtouch, saw, square, etc. Add more shapes to fade.*().
* New track processing operators: insert_metadata, on_track.
* Smart cross: allows to select a transition based on the volumes around the 
  end-of-track.
* Support for AAC encoding/decoding.
* Several fixes to output.icecast.mp3 in order to support shoutcast servers.
* Automatic format recognition for input.http(), support for playlists.
* OSS I/O.
* Unbuffered ALSA I/O for low latency.
* Server interface via UNIX domain sockets.
* Better output.file.vorbis with support for re-opening the file, appending,
  interpolate strftime format codes, etc.
* Add pre-processing and math primitives to the language, new _[_] notation for 
  assoc(), ruby-style anti-quotation ("..#{..}.."), add_timeout(), execute(),
  log()...
* Ability to tweak the internal PCM stream format.
* Classify sources and operators in categories for more structured doc.
* Started a few visualization operators, text and graphics based.
* Several bug fixes: request leaks, sine frequency, switch, etc.

0.3.2 (16-03-2007)
* New portable output to speakers using libao().
* Updated liGuidsoap to use it until ALSA gets enhanced.
* Implemented a decent estimation of the remaining time in a track.
* Added the cross() operator allowing cross-fading.
* Generalized say_metadata() into append() and prepend().
* Per-track settings for cross(), fade.*(), prepend() and append()
  using requests' metadatas.
* Implemented input.http.mp3(), including support for icy metadata.
* New pipe() operator which allows one to filter the raw audio through an 
  external program. However, sox and other common tools aren't suitable for that
  because they don't flush their output often enough.
* New on_blank() operator for calling a callback on excessive blanks.
* Restart outputs on insane latencies.
* Type checkings for settings.
* Setting for not starting the internal telnet server.
* Now handles old and new versions of Camomile correctly.
* Internal fixes and polishing (switches' cached selection, empty tracks..)

0.3.1 (17-11-2006)
* More standards-compliant tarball
* Generate doc with locally built liquidsoap
* Try to cope with ill-formed mp3
* Updated for newer versions of Camomile
* So-called "strict" random-mode

0.3.0 (27-08-2006)
* Many minor and major fixes at every level!
* Conversion of metadata to UTF8.
* Got rid of too many threads by scheduling all download tasks
  in a single thread, and handling all of the server's clients
  in another single thread.
* Simplified the time interval syntax and integrated it to the script language.
* New protocol: Wget for FTP, HTTP and HTTPS.
* Ability to define a new protocol from the script,
  typically using an external app/script for resolution, such as bubble.
* Ability to use an external app/script for dynamically creating requests.
* New on_metadata operator for performing arbitrary actions (typically
  a call to an external script) when metadata packets occur in a stream.
* MP3 encoding, to file or shout.
* API renamings and simplification.
* Supports transition, as functions of type (source,source) -> source
  in all switching operators: schedule, random, fallback.
* Restart icecast2 outputs on failures.
* Major changes to the scripting language which is more uniform and flexible,
  has functions, a helpful (?) type inference, and a simple Ruby-like syntax.
* Timing constraints and synchronization are managed by Root
  in a centralized way, no more by the many outputs which need it.
* Audio decoding is no more based on file extensions,
  but on the existence of a valid decoder.
* Added the equeue operators which allows interactive building of playlists,
  supporting insertion and moving of queued requests -- queue only allows
  you to push requests and cancel queued requests.
* A Python-Gtk GUI for controlling operators, or more specifically as a console
  for creating your live show -- to be updated, still unstable.
* Alsa input and output.
* Blank detection, automatically skips on too long blanks, or strip them.
* Http ogg/vorbis relay, the way to relay live shows.
* Interactive mixer.
* The request system was mostly rewritten to really fulfill its specification.
* The server is no more associated to the queue operator but is now something
  external, in which all operators can plug commands. This much more logical
  design lead to many more interactive controls. The syntax of command outputs
  was also simplified for easier automated processing.
* Dynamic loading of plugins.
* Outputs are now operators. It makes it possible to output different streams
  in a single instance of Liquidsoap, which RadioPi needed. As a consequence
  we removed the restriction that one source must have at most one father,
  without any extra burden for the user.

0.2.0 (20-04-2005)
* Proper initial release.

0.1.0 (2004)
* Release for academic demonstration, not functionnal.
