Hi Lyonel and Romain.
Two points.
1) I do have an updated set of instructions. I should clean these up a
little and post them to the list. The commands are each on a single line.
Just to make it easier to know what is happening. They can easily just be
copies into a shell script and run.
While it is possible to give Liquidsoap SUDO privileges. I always try to
limit security exposure unless necessary. The installation does not happen
very often anyway.
I have not tried your daemon install script Romain. I had my systemclt
service done before you wrote that..
2) Regarding Pulseaudio and Liquidsoap on a Raspberry Pi. I have not tried
input from Pulse, but I am not sure that the Pi is fast enough for it
output (at least the older B+ model that I tried it on).
I have not looked at any code, but externally, it looks like Pulse sends
the request for the next buffer before Liquidsoap is ready for it. And
Liquidsoap loses that request. So both programs sit and wait for the other.
Unfortunately, Pulse is the ONLY way to get Bluetooth audio with the latest
release of BLUEZ. :(
Nick
On Fri, Jul 28, 2017 at 11:31 AM, Lyonel Bernard <[email protected]>
wrote:
> Great !
>
> I'll try this next week. Would it be possible to make a tutorial by
> indicating each command line to be written in the terminal? Sorry, I am
> French and it sometimes complicates the exact understanding of the steps to
> follow :-(
>
> Example :
> sudo apt-get update
> sudo apt-get upgrade
> sudo apt-get install opam
> ...
>
> Best regards
>
> 2017-07-28 17:25 GMT+02:00 Romain Beauxis <[email protected]>:
>
>> Ok!
>>
>> There are a couple of simplifications that could be done on the domcument,
>>
>> - You do not need to isntall camlp4-extra, libpcre-ocaml-dev,
>> libmad-ocaml-dev, m4-doc beforce initializing opam
>> - If you do not have sudo on the liquidsoap user, I think opam can use
>> su. Also, you can totally install sudo for that user, it'll be useful
>> anyway.
>> - If not, you should be able to install the external debian packages
>> in one single call: sudo apt-get install <package> <package> ... I
>> believe that opam will output this command line so you can just
>> copy/paste
>> - The issue with installing the binary under a home directory can
>> indeed be annoying for running a daemon. We have an opam package that
>> should help making it easier:
>> https://opam.ocaml.org/packages/liquidsoap-daemon/ Instructions on how
>> to use it are here: https://github.com/savonet/liquidsoap-daemon
>>
>> Romain
>>
>> 2017-07-28 10:19 GMT-05:00 Lyonel Bernard <[email protected]>:
>> > No, it's not me
>> > It's Nicholas Vrtis →
>> > https://sourceforge.net/p/savonet/mailman/message/35526125/
>> >
>> > Best regards
>> >
>> > 2017-07-28 17:08 GMT+02:00 Romain Beauxis <[email protected]>:
>> >>
>> >> Hi Lyonel!
>> >>
>> >> This looks nice! I could suggest some improvements. Are you the one
>> >> writing this TODO?
>> >>
>> >> Romain
>> >>
>> >> 2017-07-28 9:48 GMT-05:00 Lyonel Bernard <[email protected]>:
>> >>>
>> >>> Hi,
>> >>>
>> >>> I followed this tutorial to install liquidsoap on my raspberry pi 3
>> >>>
>> >>> https://docs.google.com/document/d/1g_1M0DT062QnlzZSs5HazH1H
>> MVTksURFYqqauCk7H9c/edit?usp=sharing
>> >>>
>> >>> Best regards
>> >>>
>> >>> 2017-07-28 16:38 GMT+02:00 Romain Beauxis <[email protected]>:
>> >>>>
>> >>>> Hi Garett,
>> >>>>
>> >>>> It looks like your input.pulseaudio is not working properly. Have you
>> >>>> installed pulseaudio?
>> >>>>
>> >>>> Also, you might want to try alternative input, such as input.alsa.
>> >>>>
>> >>>> Finally, you seem to be running a rather old version of liquidsoap.
>> If
>> >>>> building on a raspberry pi is an option, I'd suggest trying to
>> install the
>> >>>> latest release via opam as described here:
>> >>>> http://liquidsoap.fm/download.html
>> >>>>
>> >>>> All the best with your projects!
>> >>>> Romain
>> >>>>
>> >>>> 2017-07-27 20:59 GMT-05:00 Garrett Neisler <[email protected]>:
>> >>>>>
>> >>>>>
>> >>>>> First off thank you for any insight that anyone can help with. I am
>> >>>>> attempting to get a stream up and running for my fathers radio
>> station, and
>> >>>>> I am banging my head against the wall...
>> >>>>>
>> >>>>> Environment: Raspberry pi 2 with Raspbian Jessie and Cirrus Logic
>> Audio
>> >>>>> card.
>> >>>>>
>> >>>>> I have the cirrus logic card installed and drivers are loaded. I
>> can
>> >>>>> play music into input and play out the output,
>> >>>>>
>> >>>>> Output of aplay -l
>> >>>>>
>> >>>>>
>> >>>>> **** List of PLAYBACK Hardware Devices ****
>> >>>>> card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
>> >>>>> Subdevices: 8/8
>> >>>>> Subdevice #0: subdevice #0
>> >>>>> Subdevice #1: subdevice #1
>> >>>>> Subdevice #2: subdevice #2
>> >>>>> Subdevice #3: subdevice #3
>> >>>>> Subdevice #4: subdevice #4
>> >>>>> Subdevice #5: subdevice #5
>> >>>>> Subdevice #6: subdevice #6
>> >>>>> Subdevice #7: subdevice #7
>> >>>>> card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835
>> >>>>> IEC958/HDMI]
>> >>>>> Subdevices: 1/1
>> >>>>> Subdevice #0: subdevice #0
>> >>>>> card 1: RPiCirrus [RPi-Cirrus], device 0: WM5102 AiFi wm5102-aif1-0
>> []
>> >>>>> Subdevices: 1/1
>> >>>>> Subdevice #0: subdevice #0
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> Now I need to stream:
>> >>>>>
>> >>>>> Here is my production.liq file:
>> >>>>>
>> >>>>> #Input from Microphone
>> >>>>> radio = input.pulseaudio()
>> >>>>>
>> >>>>> #Output to Headphones
>> >>>>> out(radio)
>> >>>>>
>> >>>>> #STL Encode
>> >>>>> output.shoutcast(%mp3(bitrate=64, samplerate=44100)
>> >>>>> ,host="", port=8069, password=""
>> >>>>> ,name="x", url="x", genre="Talk Radio"
>> >>>>> ,radio)
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> When Running "liquidsoap production.liq" I get the following log
>> file.
>> >>>>>
>> >>>>>
>> >>>>> 2017/07/28 01:42:03 >>> LOG START
>> >>>>> 2017/07/28 01:42:00 [protocols.external:3] Found "/usr/bin/wget".
>> >>>>> 2017/07/28 01:42:00 [main:3] Liquidsoap 1.1.1
>> >>>>> 2017/07/28 01:42:00 [main:3] Using: graphics=[distributed with
>> Ocaml]
>> >>>>> pcre=7.0.4 dtools=0.3.1 duppy=0.5.1 duppy.syntax=0.5.1 cry=0.2.2
>> mm=0.2.1
>> >>>>> xmlplaylist=0.1.3 lastfm=0.3.0 ogg=0.4.5 vorbis=0.6.1 opus=0.1.0
>> speex=0.2.0
>> >>>>> mad=0.4.4 flac=0.1.1 flac.ogg=0.1.1 dynlink=[distributed with Ocaml]
>> >>>>> lame=0.3.2 shine=0.2.0 gstreamer=0.2.0 frei0r=0.1.0 voaacenc=0.1.0
>> >>>>> theora=0.3.0 schroedinger=0.1.0 gavl=0.1.5 bjack=0.1.4 alsa=0.2.1
>> ao=0.2.0
>> >>>>> samplerate=0.1.2 taglib=0.3.1 magic=0.7.3 camomile=0.8.4 inotify=1.0
>> >>>>> faad=0.3.2 soundtouch=0.1.7 portaudio=0.2.0 pulseaudio=0.1.2
>> ladspa=0.1.4
>> >>>>> dssi=0.1.1 sdl=0.9.1 camlimages=4.0.0 lo=0.1.0 yojson=1.1.8 gd=1.0a5
>> >>>>> 2017/07/28 01:42:00 [dynamic.loader:3] Could not find dynamic module
>> >>>>> for fdkaac encoder.
>> >>>>> 2017/07/28 01:42:00 [dynamic.loader:3] Could not find dynamic module
>> >>>>> for aacplus encoder.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/camlimages.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/pulseaudio.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/mad.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/soundtouch.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/cry.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/frei0r.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/gd.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/lame.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/graphics.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/ao.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/shine.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/bjack.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/ogg.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/samplerate.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/portaudio.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/ladspa.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/vorbis.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/gavl.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/xmlplaylist.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/lo.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/flac.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/voaacenc.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/flac_ogg.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/alsa.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/lastfm.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/faad.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/opus.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/theora.cmxs.
>> >>>>> 2017/07/28 01:42:01 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/schroedinger.cmxs.
>> >>>>> 2017/07/28 01:42:02 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/gstreamer.cmxs.
>> >>>>> 2017/07/28 01:42:02 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/sdl.cmxs.
>> >>>>> 2017/07/28 01:42:02 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/oss.cmxs.
>> >>>>> 2017/07/28 01:42:02 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/dssi.cmxs.
>> >>>>> 2017/07/28 01:42:02 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/taglib.cmxs.
>> >>>>> 2017/07/28 01:42:02 [dynamic.loader:2] Loaded plugin file
>> >>>>> /usr/lib/liquidsoap/1.1.1/plugins/speex.cmxs.
>> >>>>> 2017/07/28 01:42:03 [frame:3] Using 44100Hz audio, 25Hz video,
>> 44100Hz
>> >>>>> master.
>> >>>>> 2017/07/28 01:42:03 [frame:3] Frame size must be a multiple of 1764
>> >>>>> ticks = 1764 audio samples = 1 video samples.
>> >>>>> 2017/07/28 01:42:03 [frame:3] Targetting 'frame.duration': 0.04s =
>> 1764
>> >>>>> audio samples = 1764 ticks.
>> >>>>> 2017/07/28 01:42:03 [frame:3] Frames last 0.04s = 1764 audio
>> samples =
>> >>>>> 1 video samples = 1764 ticks.
>> >>>>> 2017/07/28 01:42:03 [threads:3] Created thread "generic queue #1".
>> >>>>> 2017/07/28 01:42:03 [threads:3] Created thread "generic queue #2".
>> >>>>> 2017/07/28 01:42:03 [clock.wallclock_pulse:2] Error when starting
>> >>>>> pulse_in(): Pulseaudio error: Connection refused!
>> >>>>> 2017/07/28 01:42:03 [pulse_in():1] Got ill-balanced activations
>> (from
>> >>>>> pulse_in())!
>> >>>>> 2017/07/28 01:42:03 [clock:2] Error when leaving output pulse_in():
>> >>>>> File "source.ml", line 403, characters 10-16: Assertion failed!
>> >>>>> 2017/07/28 01:42:03 [clock.wallclock_pulse:2] Error when starting
>> >>>>> pulse_out(liquidsoap:): Pulseaudio error: Connection refused!
>> >>>>> 2017/07/28 01:42:03 [clock.wallclock_pulse:3] Called from file
>> >>>>> "list.ml", line 73, characters 12-15
>> >>>>> 2017/07/28 01:42:03 [pulse_out(liquidsoap:):1] Got ill-balanced
>> >>>>> activations (from pulse_out(liquidsoap:))!
>> >>>>> 2017/07/28 01:42:03 [clock:2] Error when leaving output
>> >>>>> pulse_out(liquidsoap:): File "source.ml", line 403, characters
>> 10-16:
>> >>>>> Assertion failed!
>> >>>>> 2017/07/28 01:42:03 [clock:3] Raised by primitive operation at file
>> >>>>> "lib/pcre.ml", line 829, characters 14-76
>> >>>>> 2017/07/28 01:42:03 [clock.wallclock_pulse:2] Error when starting
>> >>>>> output(dot)shoutcast: Pulseaudio error: Connection refused!
>> >>>>> 2017/07/28 01:42:03 [output(dot)shoutcast:1] Got ill-balanced
>> >>>>> activations (from output(dot)shoutcast)!
>> >>>>> 2017/07/28 01:42:03 [clock:2] Error when leaving output
>> >>>>> output(dot)shoutcast: File "source.ml", line 403, characters 10-16:
>> >>>>> Assertion failed!
>> >>>>> 2017/07/28 01:42:03 [main:3] Shutdown started!
>> >>>>> 2017/07/28 01:42:03 [main:3] Waiting for threads to terminate...
>> >>>>> 2017/07/28 01:42:03 [main:3] Cleaning downloaded files...
>> >>>>> 2017/07/28 01:42:03 [main:3] Freeing memory...
>> >>>>> 2017/07/28 01:42:03 >>> LOG END
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> Any Insight into
>> >>>>>
>> >>>>> 2017/07/28 01:42:03 [clock.wallclock_pulse:2] Error when starting
>> >>>>> pulse_in(): Pulseaudio error: Connection refused!
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> Thank you for any help,
>> >>>>> Garrett
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> ------------------------------------------------------------
>> ------------------
>> >>>>> Check out the vibrant tech community on one of the world's most
>> >>>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> >>>>> _______________________________________________
>> >>>>> Savonet-users mailing list
>> >>>>> [email protected]
>> >>>>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>> >>>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> ------------------------------------------------------------
>> ------------------
>> >>>> Check out the vibrant tech community on one of the world's most
>> >>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> >>>> _______________________________________________
>> >>>> Savonet-users mailing list
>> >>>> [email protected]
>> >>>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>> >>>>
>> >>>
>> >>>
>> >>>
>> >>> ------------------------------------------------------------
>> ------------------
>> >>> Check out the vibrant tech community on one of the world's most
>> >>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> >>> _______________________________________________
>> >>> Savonet-users mailing list
>> >>> [email protected]
>> >>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>> >>>
>> >>
>> >>
>> >>
>> >> ------------------------------------------------------------
>> ------------------
>> >> Check out the vibrant tech community on one of the world's most
>> >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> >> _______________________________________________
>> >> Savonet-users mailing list
>> >> [email protected]
>> >> https://lists.sourceforge.net/lists/listinfo/savonet-users
>> >>
>> >
>> >
>> > ------------------------------------------------------------
>> ------------------
>> > Check out the vibrant tech community on one of the world's most
>> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> > _______________________________________________
>> > Savonet-users mailing list
>> > [email protected]
>> > https://lists.sourceforge.net/lists/listinfo/savonet-users
>> >
>>
>> ------------------------------------------------------------
>> ------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> _______________________________________________
>> Savonet-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
>
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Savonet-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users