Hi,

The Pastebin is set up to take input from a usb capture card on a full blown ubuntu 12.04 server edition. On the Pi you could do the same thing however all I do instead is take an icecast feed into liquidsoap using the input.http command.

I also don't need JACK etc because liquidsoap can directly access ALSA. So you end up with a quite simple liquidsoap config:

#specify the icecast stream as an input
stream = input.http("http://icecastip/icecastmount";)

#specify the fail over file (could change this to be a template or directory of files)
failover = mksafe(single("/var/audio/emergency/song.mp3"))

#Enable the silence detect to kick in after 5 seconds
stream = strip_blank(stream, length=5.0)

#Specify what to switch to when silence is detected
stream = fallback(track_sensitive=false, [stream, failover])

# (Optional) Compress the icecast stream
stream = compress(ratio=3.0, attack=38.0, release=85.0, threshold=-20.0, knee=0.5, gain=8.0, stream)

# (Optional) limit the ice cast stream
stream = limit(ratio=3.0, attack=38.0, release=85.0, threshold=-3.0,knee=0.5, stream)

# Output to ALSA (the pi's audio)
output.alsa(stream)

All you need to do is save that as a file (conventionally blah.liq). Then run liquidsoap -c blah.liq on startup and away it goes pretty much forever.

On ubuntu with things like upstart you can specify what happens if things crash which is handy but on the pi you'd have to do other watchdog type stuff to achieve the same result.

*NB: *I haven't tested this config it was written mostly via copy paste and checking the API reference for liquidsoap (I don't have access to the pi at the moment)

API Reference is here: http://savonet.sourceforge.net/doc-svn/reference.html

Theres also a lot of examples on that site for doing all sorts of crazy stuff with liquidsoap.

Wayne Merricks The Voice AsiaOn 28/01/15 17:04, drew Roberts wrote:
Hey Wayne,

if I am reading you and those scripts right on first glance, the scripts are checking for silence on a local rivendell playout and you have modified them to pull down a remote stream and that is running on a Pi.

If I have that right, what is the player in use on the Pi?

Or are you using icecast to relay the remote stream locally and doing some failover to a different mount locally?

all the best,

drew

On Wed, Jan 28, 2015 at 11:36 AM, Wayne Merricks <[email protected] <mailto:[email protected]>> wrote:

    I do that at work using liquidsoap on a pi.

    I adapted my Ubuntu instructions found here:

    http://pastebin.com/u/mezzfa0



    Wayne Merricks
    The Voice Asia

    On 28/01/15 16:05, drew Roberts wrote:
    I think I have seen discussions around these topics in the past.
    I am hoping someone is up to date on these skills so that I don't
    have to spend further hours or days trying to get this to work
    smoothly.

    What I want to do:

    config a small box (I hope to use a Raspberry Pi but will scale
    up until I find one with the needed power to serve in this
    capacity) such that when it is plugged into a network and
    amp/speakers somewhere it will connect to an icecast stream
    automatically and play it out of the speakers.

    It will detect silence in the stream (including the stream going
    down) and switch to playing (a playlist of) locally stored files.

    It will detect when the stream audio comes back and cut out the
    local audio and go back to stream audio.

    All headless and automatic.

    I am trying to get this system going now on a laptop with a bit
    more power than the Pi.

    I am trying to use:

    jack
    silentjack (to detect the silence)
    jack_connect (to change the jack routing on setup and on command
    from silentjack)

    audio players:

    mplayer (or its frontends)
    vlc
    others?

    Does this sound like a reasonable set of components for this job?
    Has anyone done something similar? Are there any good docs in
    this space?

    Problems I think I need to solve:

    A way to "statically name" the main stream player so that I can
    refer to it in scripts.
    I may not have to statically name the backup player but it would
    probably be nice.

    So far, I am not seeing how to do that with mplayer or vlc, the
    names seem to be tied to the pid.

    Is there a better way to go about this?

    If it hasn't already been done, I will write this all up when I
    am done.

    all the best,

    drew

-- http://nakedghosts.blogspot.com/


    _______________________________________________
    Rivendell-dev mailing list
    [email protected]  
<mailto:[email protected]>
    http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev


    _______________________________________________
    Rivendell-dev mailing list
    [email protected]
    <mailto:[email protected]>
    http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev




--
http://nakedghosts.blogspot.com/

_______________________________________________
Rivendell-dev mailing list
[email protected]
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev

Reply via email to