-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Wayne,
This is an amazing set of liquidsoap/jack/rotter stuff. I wasn't aware of the rotter utility, I simply have a separate output "clause" for archives in the liquidsoap script. I'm going to look into using JACK for input/output for monitoring the stream more easily. I've recently discovered the magic of "clocks" in liquidsoap. The way I understand them is that they enable multiple outputs that are timed independently of each other. In our example (see below) I'm sending the output to 1) our Internet stream, 2) a local instance of Icecast, and 3) an hourly-rotating archive file. I noticed in the past that the reliability of the internet connection would affect the other streams. I believe using clocks has fixed this situation. I've pasted my "stream encoder" script for another liquidsoap example at http://pastebin.com/sRVDC6SP (the last clause in the script is the hourly rotation to the local archive). Cheers, ~David Klann On 04/28/2014 05:02 PM, Wayne Merricks wrote: > Easier than you think. > > pastebin.com/u/MezzFA0 > > In there is a full guide for JACK, Rotter and Liquidsoap all with startup scripts on Ubuntu > > or just this link for the liquid soap config: > > http://pastebin.com/ziNEKF03 > > But the only things you need to do are: > > #Get an input stream (darkice auto grabs from line in if I remember rightly so I'm assuming ALSA in): > liveStream = (input.alsa(id="liquidsoap"):source(1,0,0)) > > #id can be anything you want, source(1,0,0) is 1 audio, 0 video and 0 something else I've forgotten so this would be mono > #You might have to take the stereo stream with source(2,0,0) and then mono it with: > #liveStereo = (input.alsa(id="liquidsoap"):source(2,0,0)) > #liveMono = mean(liveStereo) > > #Here do any processing to the stream you want, you could silence detect: > emergencyFile = mksafe(single("/var/audio/emergency/silentalarm.mp3")) > #you need to obviously make and put a silentalarm.mp3 in that location or somewhere else accessible > # Silence Detection, plays after 30 seconds of silence > liveStream = strip_blank(liveStream, length=30.0) > > #Tell it what to do when its silent (track_sensitive=true will wait for the track to end before cutting back to the main stream): > liveStream = fallback(track_sensitive=false, [liveStream, emergencyFile]) > > #You could have a tracklist instead of an emergency file, you can even have a ruled tracklist that will play idents on the hour, pick random songs from directories etc but I've never attempted that > > #Or how about compression: > liveStream = compress(ratio=3.0, attack=38.0, release=85.0, threshold=-20.0, knee=0.5, gain=8.0, liveStream) > > #What if you need a limiter: > liveStream = limit(ratio=3.0, attack=38.0, release=85.0, threshold=-3.0,knee=0.5, liveStream) > > #Finally send it off to icecast > output.icecast(%mp3(stereo=false, samplerate=22050, bitrate=32),liveStream, description="Describe me", genre="Give me a genre", url="My Website", name="Title Me", mount="what mount point to use", host="localhost", password="my secret password", port=8014) > > Theres tons of sound processing you can do. You can even automate an entire DJ free station by setting up schedule rules and other stuff. The full API is here: > http://savonet.sourceforge.net/doc-svn/reference.html > > But it is a bit cryptic, I still sit there smashing my face on the wall when it should work but just doesn't. > > Oh you'll need to save this config in a file convention is blah.liq then you can run liquidsoap /path/to/config/blah.liq > > You can also run liquidsoap -c /path/to/config/blah.liq to get it to check your config and spew out any errors. > > Regards, > > Wayne > > On 2014-04-28 18:45, Rick wrote: >> interesting subject #finaly will work on this also next week and try >> >> >> https://www.google.nl/#q=liquidsoap+site:http:%2F%2Fcaspian.paravelsystems.com%2Fpipermail%2Frivendell-dev%2F >> >> >> >> drew Roberts schreef op 28-4-2014 19:45: >>> I know some of you folks know more than I do about liquidsoap. Perhaps someone >>> can help. Anyone know how to match this darkice setup in liquidsoap: >>> >>> [icecast2-0] >>> bitrateMode = cbr # constant bit rate >>> format = mp3 # format of the stream: mp3 >>> bitrate = 32 # bitrate of the stream sent to the server >>> sampleRate = 22050 >>> channel = 1 >>> server = localhost >>> # host name of the server >>> port = 8014 # port of the IceCast2 server, usually 8000 >>> >>> all the best, >>> >>> drew >>> _______________________________________________ >>> Rivendell-dev mailing list >>> [email protected] >>> http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev >>> >> >> _______________________________________________ >> Rivendell-dev mailing list >> [email protected] >> http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev > > -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iF4EAREIAAYFAlNfIBkACgkQZtxZ++32cNiTlgEAp7HQ0GQIIBv/bmRNL7T55qo6 JxkO7qFPjEVwNufhUv0A/3CLAigDEPhK8640WSb7ZofXC71ce7CCNUTfvs7KtuJE =V9/a -----END PGP SIGNATURE----- _______________________________________________ Rivendell-dev mailing list [email protected] http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev
