-
-
Notifications
You must be signed in to change notification settings - Fork 132
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
--HG-- extra : convert_revision : svn%3Aaec24677-d710-0410-a355-ac75e2bdf181/trunk%406000
- Loading branch information
smimram@aec24677-d710-0410-a355-ac75e2bdf181
committed
Oct 15, 2008
0 parents
commit c6cfe3a
Showing
284 changed files
with
38,928 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,238 @@ | ||
x.x.x () | ||
Bugs fixed: | ||
- Fixed byte swaping function | ||
- fixed unix server socket failure | ||
New: | ||
- Added support for AU, AIFF and NSV mp3 audio | ||
using ocaml-natty. | ||
- Added speex support. // TODO: input works great but output is not satisfying. | ||
// Speex audio processing still needs to be binded | ||
// (To add if not done at release time..) | ||
- Added "lag" operator, to create a stream delayed by | ||
a constant time. | ||
|
||
0.3.8.1 (11-08-2008) | ||
- Fixed metadata propagation during default transition | ||
in smart_crossfade | ||
- Changed transition evaluation order in smart_crossfade | ||
- Fixed transition function in smart_crossfade | ||
|
||
0.3.8 (30-07-2008) | ||
Bugs fixed: | ||
- Vorbis mono output is now working | ||
- Fixed parameter parameter description | ||
in the documentation | ||
- Propagate new delay in add_timeout | ||
- Fixed inter-thread mutex lock/unlock in playlist.ml | ||
- Fixed "next" playlist command | ||
- Fixed race conditions in request_source.ml feeding task | ||
- cross/smartcross: raise the default for inhibition as | ||
setting it to exactly duration is not enough | ||
- Don't fail when $HOME is not set | ||
- Fixed metadata update in input.harbor with icecast2 source protocol | ||
- Fixed shutdown function. Fixes #153 | ||
- Fixed input.oss. Liquidsoap now works with OSS4 ! Fixes #158 | ||
New: | ||
- Added a hook to execute a function when playlist.once ends | ||
- Enhanced smart_crossfade | ||
- Added string.case and string.capitalize | ||
- New "exec_at" operator, to execute a function depending on a given predicate | ||
- Added script example in the documentation to listen to radio Nova and get | ||
the metadata from a web page. | ||
- Changed parameters name in fallback.skip to reflect who are the fallback | ||
and input source. | ||
- Added a dump file parameter to input.harbor, for debugging purpose. | ||
- Added an auth function parameter to input.harbor for custom | ||
authentifications. Fixes #157 | ||
- Added "primary_queue" and "secondary_queue" commands to request.queue and | ||
request.equeue sources. Also set the metadata "queue" to either "primary" | ||
or "secondary" for each request in the queue. Documented it too. | ||
- Insert latest metadata for a node of a switch source when switching | ||
back to it in a middle of a track. | ||
- Added a 'conservative' parameter to cross, smilar to the one in smartcross. | ||
Internal: | ||
- Enhanced liqi documentation parser to build the website. | ||
|
||
0.3.7 (03-06-2008) | ||
Bugs fixed: | ||
- Now works on FreeBSD and hopefully other unices that are stricter than | ||
Linux about Mutex usage. | ||
- input.http() now has a bind_address parameter. | ||
- Harbor socket now has a timeout for lost connections. | ||
- smartcross() is now more compliant with the inter-sources protocol, | ||
fixes several "get frame didn't change the buffer" bugs. | ||
- Ogg packeting bugs. | ||
- Buffering policy in input.http/harbor(). | ||
- No "." in IDs and labels. | ||
- Resources: FD leaks, useless threads (threads leaks?) in input.http(). | ||
- fade.out() used to run into infinite loops when the delay was 0. | ||
New: | ||
- New documentation system and website. | ||
- Self-documenting server with a more helpful "help" command. | ||
- Moved to duppy: less threads, lighter load, and an configurable scheduler. | ||
- Moved to Taglib for more reliable access to MP3 metadata. | ||
- MIME types, notably for playlists and MP3 files. | ||
- New Jack support. The old one has been renamed to in/output.jack.legacy(). | ||
- Harbor: per-mount passwords and the stop command to kick a source client. | ||
- Official Last.FM client. | ||
- Metadata is no more punctual but interval-based, which suppresses some | ||
surprising behaviours. | ||
- Perfected daemon behaviour. | ||
- All output.file.*() now have the features that used to be only in | ||
output.file.vorbis(), notable re-opening. Added %w to the strftime-like | ||
format codes allowed in their filename parameter. | ||
- Add clear_metadata() and map_metadata(). Now, rewrite_metadata() is a simple | ||
specialization of map_metadata(), written in utils.liq. | ||
- Dynamic amplification factor in amplify(), e.g. useful for replay gain. | ||
- Lots of new functions in the scripting API: for lists, requests, system | ||
interaction, shutdown, command-line parsing, scripted server commands, etc. | ||
As always: | ||
- code cleanup, style, etc. | ||
|
||
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. |
Oops, something went wrong.