File Release Notes and Changelog
Release Name: 0.3.4
Notes:
Liquidsoap 0.3.4 -- a programmable audio stream generator.
Copyright 2003-2007 Savonet team
Email : savonet-users@lists.sourceforge.net
Homepage: http://savonet.sf.net
INSTALLATION
============
See the INSTALL file.
DOCUMENTATION
=============
Some documentation is available on our wiki:
http://savonet.sf.net/wiki/Liquidsoap
You should find a PDF generated from it in the distribution:
doc/wiki/manual.pdf
LICENSE
=======
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details, fully stated in the COPYING
file at the root of the liquidsoap distribution.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
AUTHORS
=======
* Designer and main developer:
David Baelde <david.baelde@ens-lyon.org>
* Developers:
Florent Bouchez <florent.bouchez@ens-lyon.org>
Julien Cristau <julien.cristau@ens-lyon.org>
Samuel Mimram <samuel.mimram@ens-lyon.org>
Vincent Tabard <vincent@radiopytagor.com>
Romain Beauxis <toots@rastageeks.org>
* Contributors:
Stéphane Gimenez <stephane.gimenez@ens-lyon.org>
Clément Renard <clement.renard@ens-lyon.org>
Sattisvar Tandabany <sattisvar.tandabany@ens-lyon.org>
Changes:
0.3.4 (UNRELEASED) (yet)
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.