Salut,

Ca fait plaisir de se faire découvrir par une grosse webradio française :D

Let's switch back to english for the technical stuff...

I've been searching for a long time for something
similar to ices but able to stream to sound cards instead of icecast,

Indeed, liquidsoap can do that. The ALSA I/O is not fully finished yet
(it doesn't resample when the soundcard doesn't accept 44100Hz) but
it's only a matter of time (and of requests from big shots like
you)... The reason why I didn't do it yet is because we started
working on Jack I/O instead -- more powerful and portable. Anyway, if
you're only interested in output, output.ao() using libao should be
enough -- and it works great.

which is necessary when you want to do some hardware sound processing
without resorting to dirty trick such as chained
ices/icecast/player/darkice full of decoding/reencoding, and keep using
unix platforms.

What kind of hardware processing are you doing? I'm curious about what
cannot be done with software. Or is it that you want a hardware mixing
table or something like that?

- A "smart" crossfader able to automatically chose a good crossfading
curve between tracks depending of the shape of the ending and starting
songs, and also supporting per song intro/outro points (the smart feature
is important : we're dealing with thousands of songs and for practical and
historical reasons most of them have no entry/outro point, so the fader
should try to do a good job in the general case).

Nothing like that in liquidsoap. But I want to stress that programming
a new operator isn't so difficult -- you don't even have to know much
of OCaml. And it'll get simpler soon, as I should change the internal
representation of audio frames to float arrays. Smart crossfading
sounds very useful so I bet we can find people to help integrating it.
I'd be happy to discuss that further.

- Some ability to kill blank between tracks.

Indeed, we have that.

- The ability to suspend itself and deconnect from an icecast/shoutcast
and reconnect on demand. This allows us to take control of the stream for
live sessions.

Possible, using ID.start/stop from the telnet interface.

- Periodic metadata changes (instead of just at tracks start) got form an
external script.

Not there yet but it's just a matter of adding a simple operator..
funny that I didn't do that already.

Before finishing I want to stress that there might be better uses of
liquidsoap than just sticking it in place of ices. In particular,
turning it on/off when starting a live show is not needed as it can
handle the switching by itself, and allows you to define a transition
from automatic to live show and back.

Cheers.
--
David

Reply via email to