Hi,

I'm glad to see the kind of project you have, and I confirm that this
is the kind of stuff liquidsoap was built for. Let me make various
comments.

Whilst I understand liquidsoap can handle a sustain stream, for now I wish
to leave mpd outputting the stream, mainly as I've got a user friendly
interface for the management bod's to modify.
[...]
 My intentions are to add another soundcard to the broadcast stream and give
liquidsoap an alsa input for it.

I'm not sure to interprete well this bit: what do you want the
soundcard for? If it's for running liquidsoap next to darkice for a
while, you shouldn't need two soundcards. So I assumed it's for mpd
input. Concerning mpd, going through hardware is a bit of overkill, as
I believe there is a client API for that, or (better) high-level
outputs like jack. On the other hand, implementing that in liquidsoap
requires some extra work... On a side note, our ongoing work on jack
is a bit stalled.

Regarding alsa I/O in liquidsoap: the current implementation is too
naive. When I wrote it I assumed that I could pick the samplerate I
wanted, and my soundcard didn't contradict me. In fact, it's not the
case, and the code should be updated to cope with format conversions.
It's not such a big change but lots of little things take time.. Also,
I must admit that even on "nice" soundcards, our success with ALSA was
not complete and we experienced troubles sometimes -- especially when
doing input and output at the same time. In the end, I'd prefer to get
a good jack support, since it's more portable and high-level, but the
task is far from being easy.

Dead air detection seems quite straight forward and David B has directed me
in ways, the next thing is the news service.

Not much to say here, I think liquidsoap does the job nicely. The only
enhancement I can think of would be a more meaningful threshold
parameter, probably in dB. Currently there's no real unit and you have
to like the default value or tinker blindly.

GUI to alert studio of events

Liquidsoap can call scripts on new tracks and on blanks, but I guess
we can't help more. Are you thinking of other kind of events?

The news broadcast is on clockwork, it will come on at a certain time
apparently. When not broadcasting the service says something like "*BEEP*
*BEEP* this is IRN on Hotbird 7 *BEEP* *BEEP*" and I *think* they even do
some extra bullitens and announce it on the stream they provide.
So hence it'll be really good to get liquidsoap to be checking the stream at
the right time and if the news stream is active (ie no BEEP BEEP) then fade
off the studio stream. These intentions have been expressed by the
management.

I'm afraid I'll only what I told you on IRC. Liquidsoap has no way of
doing beep-beep detection :p If you implement it, or more likely find
a cleaner way to know when news are broadcasted, then it'll be easy to
have liquidsoap relay the news, since any external script can be used
in switch()'s predicates. But getting a perfect synchronization will
be difficult (buffers everywhere..). Transitions are no problem.

I am also wondering about replacing darkice initially, I know liquidsoap
does everything (and more) that darkice does, however I've yet to be able to
know the uptime on our server for the service and was thinking if I should
keep darkice for now and provide a fallback on icecast to the original
darkice streams.

We're having pretty good results in terms of stability now. If I
remember well the only serious known problem has to do with
resampling: if you have funny input samplerate our broken resampling
code will do non-sense, and funny output samplerate for vorbis output
can lead to memory exhaustion... We know how to improve that, but
haven't had time to focus on that yet. But even apart from that it's
still possible that you encounter minor issues, especially if you use
rarely-used features of liquidsoap, so keeping a backup for a while is
a good idea, yes.

I hope we can eventually come up with nice answers to your problems.

Have fun!
--
David

Reply via email to