[Savonet-users] max_listeners?
Is there any way to set max_listeners per mountpoint in Liquidsoap? None of the expressions I’ve tried seem to work. - pete ++ -- 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 Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] enabling SSL on Icecast2
I don't, but would love to. It's causing any https page in which there's an embedded player to show as "not secure". - pete ++ -- 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 Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Precise playlist generation with Liquidsoap
Hi - you can do this quite easily with Liquidsoap. (a) if you want to generate playlists from specific directories, you can do so with a command similar to: ls -d "$PWD"/* > /path_to/directory_containing_playlists/playlist.m3u (or whatever file extension you choose) and make this run periodically. However... (b) You can dispense with playlists because Liquidsoap can simply take the contents of a directory as a playlist. EG this is a line from one of my config files: jingles = playlist(reload_mode = "watch", "/radio/jingles/") You probably don't need to specify what sort of random behavior, because it defaults to mode="randomize", which shuffles the play order each time it is loaded, and plays it in this order for a whole round. The "watch" command tells it to keep an eye on the directory and reload the playlist when the contents changes, i.e. when you add news files. Finally, you can set the weighting between each playlist: radio = random(weights = [1, 1, 1],[music1, music2, music3]) - pete -- 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 Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] 404 Error
I wonder if anyone could help with this, please... I’m getting a 404 error when trying to connect to LS default live dj mountpoint: “connect: server answered with 404!” (from butt) Firewall allows port 9000, but the error still occurs when firewall is disabled. This is what I have in the .liq file: set("harbor.bind_addr","0.0.0.0") live_dj = input.harbor("live",port=9000) When accessing the address thru html (xxx.x.xx.xxx:9000/) I’m getting a page header that says “Liquidsoap source harbor” so obviously some communication is happening. Any suggestions very welcome, thanks. - pete ++ -- 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 Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] clarification on input.http
Hi Simone, you can simply enable the socket / telnet interface and set the url by .url using an external script. # liquidsoap script example, define station set("server.telnet", true) set("server.telnet.port", 1234) set("server.telnet.bind_addr", "127.0.0.1") radio=input.http(id="station", "http://127.0.0.1:8000/stream-a;) out( radio ) # telnet example telnet localhost 1234 station.url http://127.0.0.1:8000/stream-b On switching between different urls I call stop and start after setting the url. (I have seen issues without this start/start handling long time ago.) station.url station.stop #sleep 1 second station.start #and check current URL afterwards: #sleep 1 second station.url BR, Peter Am 27.11.2017 um 15:04 schrieb Simone Dal Maso: > Hello, > I have a webradio that is online 24 hours a day. It plays music and, when I > want, I can go live with my voice. The script is mywebradio.liq. > > In next days I need to take the streaming from another webstation, so in > order to make it I think to use the input.http code in a new script, called > otherWebRadio.liq. > > My question is: > If I want to stop the stream from the other webradio and transmit my music or > my voice, should I kill the script otherWebRadio.liq and start my original > script, or is there a method that allow me to handle all in a single script? > Are there for example some telnet commands that I can use? > > Thank you! > > > > > > > -- > 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 > Savonet-users@lists.sourceforge.net > 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 Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Installing Liquidsoap on Ubuntu 14.04 LTS
Hi Steve, you can try. here are my notes including 1.2 at ubuntu 14.04.LTS http://dev.radiopiloten.de/dokuwiki/doku.php/liquidsoap:installation BR, Peter Am 23.05.2017 um 07:30 schrieb Steve Matzura: > I just tried doing so, but stopped before committing myself. Several > of the thirty-three components Liquidsoap marked as new packages are > already present, including icecast2 and many of the required library > modules, like libfaac2, the Ogg Vorbis stuff, etc. It's also pretty > clear that if I install from the Ubuntu package manager, I'll most > likely get version 1.1.6, and I'd prefer the recently released 1.3.0. > Should I build it from source then? > > -- > 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 > Savonet-users@lists.sourceforge.net > 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 Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] have a sort of "fm" sound with liquidsoap?
Hi, please also check the generic LADSPA plugin support of liquidsoap You can use any existing LADSPA plugin. For our radio we wrote the rms_leveler LADSPA plugin for mastering. This is a look-ahead automatic gain control based on a target RMS level. This plugin will always generate the same loudness of -20dB FS, which allows to have some dynamic range. Loud parts will be turned down, quiet parts will be turned up. As a result there low additional compression or change of EQ, since most sources much higher loudness. This helps on using different audio sources with different loudness levels. Depending on the size of the lookahead window there will be some delay in the processing chain. For ubuntu there is a package rms-leveler at https://launchpad.net/%7Emc-1/+archive/ubuntu/audio-tools There are 3 versions available each having a different window radio = ladspa.rms_leveler_3s(radio) radio = ladspa.rms_leveler_6s(radio) radio = ladspa.rms_leveler_10s(radio) Additionally the package contains 3 limiters rms_limiter_3s, rms_limiter_6s and rms_limiter_10s which only limit the audio to target RMS of -20dBFS but do no upward amplification. Please see also EBU-R128 which contains some helpful hints how to do process audio in radio. BR, Peter Am 22.12.2016 um 13:11 schrieb Simone Dal Maso: > Hello, > My webradio is running well with liquidsoap, I'd like to know if you > know how to modify the sound with filters in order to obtain a more > robust sound, like when you are listening to the fm radio. > I know the "sky" filter but it is not so good on my opinion. > Do you know some alternatives? > > -- > Developer Access Program for Intel Xeon Phi Processors > Access to Intel Xeon Phi processor-based developer platforms. > With one year of Intel Parallel Studio XE. > Training and support from Colfax. > Order your platform today.http://sdm.link/intel > ___ > Savonet-users mailing list > Savonet-users@lists.sourceforge.net > 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 Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Ogg vorbis problems
Hi, if you want ogg/vorbis only please try to deinstall the speex plugin. this should remove at least the "header too small" warning. BR, Peter Am 11.12.2016 um 03:31 schrieb Tim Baker: > I’ve been successfully streaming my station on Liquidsoap for years, I’ve > switched my server (no thanks to Crissic who did a runner and I missed their > email about suddenly shutting down almost overnight, hence I don’t have my > original sources to work from!) and Ogg/Vorbis streams and inputs have > stopped working. > > I’ve tried using liquid soap from the standard repository which is 1.1.1, > -full, plugins-all, and also installed 1.2.1 via Opam (my server as the > previous one is on Ubuntu 14.04). Nothing fixes it. It’s irritating since > Traktor only streams Ogg/Icecast? > > Narrowed it down to Opus because it was down til I removed the Opus Icecast > stream and then it all sprang into life. > > I get this error in my log: > > 2016/12/11 02:06:32 [decoder:3] Method "OGG" accepted "application/ogg". > 2016/12/11 02:06:32 [threads:3] Created thread "harbor source feeding" (2 > total). > 2016/12/11 02:06:32 [harbor_9671:3] Decoding... > 2016/12/11 02:06:32 [stderr:3] notification: Speex header too small > 2016/12/11 02:06:32 [harbor_9671:2] Feeding stopped: Ogg.Not_enough_data. > 2016/12/11 02:06:32 [threads:3] Thread "harbor source feeding" terminated (1 > remaining). > > That’s while I click on the broadcast in Traktor. I checked with BUTT and MP3 > works fine. Don’t think it’s my radio code since I created a new simple > test.liq and replicated the same issue - works fine with MP3 streams, as soon > as I add an opus one, all streams stop and although mounts shown in Icecast, > all mounts drop to the Icecast emergency mount (not the Liquidsoap one). It > seems to get to the /streamopus and issue the same “Ogg.Not_enough_data” > error. > > I’ve installed ogg, vorbis, speex, base-bytes and every OCAML (an up-to-date > list of all Opam Liquidsoap options would be nice?) thing I can find relating > to Ogg/Vorbis/Codecs (lame, flac. samplerate, taglib etc). Still doesn’t > work. > > Am I missing something? > > Tim (Classic Bootleg Radio, formerly Radio Clash Live > http://listen.radioclash.com) > > > -- > Developer Access Program for Intel Xeon Phi Processors > Access to Intel Xeon Phi processor-based developer platforms. > With one year of Intel Parallel Studio XE. > Training and support from Colfax. > Order your platform today.http://sdm.link/xeonphi > > > ___ > Savonet-users mailing list > Savonet-users@lists.sourceforge.net > 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 Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Looking for audio file library
Hi, basically ffmpeg should do this, but you will need to have the codecs installed BR, Peter Am 04.04.2016 um 21:23 schrieb Gaëtan DUBREIL: > Hi, > > I am looking for a library to play audio files in various formats. Is > there a library like this in Savonet? > Best regards, > > Gaëtan > > -- > ___ > Savonet-users mailing list > Savonet-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/savonet-users -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Liquidsoap 1.2.0 is released!
Thanks Romain, we are using liquidsoap for years 24/7 and could not sleep calmly without having that solid rock. Thanks for this! Peter Am 13.01.2016 um 00:56 schrieb Romain Beauxis: > Dear all, > > This with great pleasure and much thanks for your patience that I am > glad to announce that liquidsoap 1.2.0 has just been released. > Changelog is included at the bottom of this email. > > This release focuses on getting all the latest and much awaited > developments and bug fixes out the door. We will be responding to bug > reports and potential feature requests afterward and may release > further minor versions as we see fit in the near future. > > Among the new features for this release, the following are worth noticing: > > - Support for websockets input. The technology has been implemented > for a while but, with the latest development in web browsers and > javascript support, it seems that it now fully functional. This means > that you can create an audio stream directly from a browser window and > send it to liquidsoap/icecast! This does not just mean > microphone-based streams but also file-based streams and even a mixed > of both! There is a proof of concept that you can test here: > https://github.com/webcast/webcaster Needless to say, we are quite > excited by this! > > - Support for a buffer.adaptative operator which can be used to > mitigate issues related to network lags and clock inconsistencies > between source clients and servers. > > - Support for multiple sources connected to the same shoutcast v2 server. > > This release comes almost 3 years after the previous one. Admittedly, > things got a little delayed here.. Indeed, as we have moved further > into our respective lives, it has become increasingly difficult for us > to provide the same service as open source developers for this project > as we had in the past. > > We, however, remain committed to the savonet project and still care > about its future and our users. > > In the future, we will concentrate on the core mission of the project, > which is the liquidsoap DSL and binary. This means that other > side-projects such as Flows! or Liguidsoap will unfortunately receive > less attention from us. Likewise, our priority will be to work on bugs > and feature releases through our github project pages. We will > continue to provide support to users through our mailing list, of > course, but will do as time allows > > Meanwhile, we warmly welcome any interested contributor to step up and > join our team. We like to believe that we are relatively nice to work with. > And, yeah, OCaml isn't that hard to learn. I've been there myself.. :-) > > Finally, we want to express our deep and humbled gratitude to our > > users who have kept using and trusting liquidsoap in the past years. > Thank you so much guys!! > > We all wish you guys a wonderful 2016 full of successful liquidsoap > projects and much more! > > For the Savonet Team, > David, Romain and Sam > > 1.2.0 (unreleased) > == > > New: > > - Websocket server (#90): this means that you can stream to harbor directly > from > your browser! > > - Add support for AIFF format (#112). > > - Add url.split_args to split the argument of an url (#123). > > - Add buffer.adaptative to cope with small network delays (#131). > > - Add sleeper operator to simulate network delays and test robustness (#131). > > - Add stereo.left and stereo.right to extract channels from a stereo stream. > > - Add restart command to restart liquidsoap (#135). > > - Add file.contents to read the contents of a file. > > - Add filter.rc for first-order RC filters. > > > Enhancements: > > - Add support for sending OSC data (osc.send_*). > > - Native support for (some) AVI files (#256) which enables support for > external > video encoders (#233). > > - Improve rms operator (#105) to have per channel rms (#102), the ability to > dynamically set window duration (#103) and multiple monitors (#104). > > - Icecast streaming can now use HTTP1.1 chunked encoding (#82, #107). > > - Add support for multiple shoutcast extensions (#216). > > - Fade type can be overridden by metadata in fade.in / fade.out (#64). > > - Allow LADSPA plugins with arbitrary number of channels (#191). > > - Rename shine encoder from %mp3.fxp to %shine. > > - fdkaac: dynamic plugin (#79), set afterburner parameter, use MPEG4 by > default > (#83). > > - Improved subtyping on lists (#125, #126). > > - Add native simple JSON decoder. > > - Better code: do not abusively use assertions (#137), issue more warnings and > fix them (#162). > > > Bugfixes: > > - Correctly close c
Re: [Savonet-users] Occasional icecast reconnects - but at different times for different mountpoints?
Hi Christo, Maybe it is related to encoder/decoder? What encoder and what encoding options do you use? (We have no issues using ogg with a fix bitrate.) Using mksafe or setting a fallback to unfallable at the sender side should ensure there is always an signal. You can try to increase the buffer at the receiver side (icecast?) to reduce reconnects (, but you will still have outage on lost packages or other issues). At the server side we run liquidsoap to ensure there is always an outgoing stream. This liquidsoap instance receives the stream from the sender side, has a fallback and mksafe configured to prevent outage and forwards the signal to a local icecast server instance mount. Icecast finally distributes the stream to the listeners. BR, Peter Am 23.11.2015 um 17:13 schrieb Christo Grozev: > > Dear all, > > > > I am streaming from liquidsoap to a remote server (but on a good optical > connection, ping is about 1.5 ms). I stream to three different mountpoints > from within one liq file, and every few days I get icecast reconnects – which > costs us a few hundred listeners who don’t connect back manually. > > > > What I find odd is that the three different mountpoints get reconnects at > slightly different times – sometimes with 5-6 seconds difference. Does this > give a clue as to where the issue may be? > > > > Do you think adding buffer(input) to the output.icecast command is likely to > eliminate/reduce the reconnects? Any other ideas you might recommend? > > Best regards > > > Christo > > > > -- > Go from Idea to Many App Stores Faster with Intel(R) XDK > Give your users amazing mobile app experiences with Intel(R) XDK. > Use one codebase in this all-in-one HTML5 development environment. > Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs. > http://pubads.g.doubleclick.net/gampad/clk?id=254741551=/4140 > > > ___ > Savonet-users mailing list > Savonet-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/savonet-users -- ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] writing wav with high bit rate
Hello, I would like to use 24 bits or 32 bits per sample on recording to WAV file. Is this possible? I tried to change the samplesize parameter for this purpose. $ liquidsoap 'output.file(%wav(samplesize=24), /tmp/test.wav, sine())' Error in encoding format at line 1, char 29-30: invalid sample size. $ liquidsoap 'output.file(%wav(samplesize=32), /tmp/test.wav, sine())' Error in encoding format at line 1, char 29-30: invalid sample size. The default samplesize=16 perfectly works. Thanks in advance, Peter -- Don't Limit Your Business. Reach for the Cloud. GigeNET's Cloud Solutions provide you with the tools and support that you need to offload your IT needs and focus on growing your business. Configured For All Businesses. Start Your Cloud Today. https://www.gigenetcloud.com/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Compile errors
Hi, this is what I did to get LS compiling on ubuntu LTS 10, 12 and 14 http://dev.radiopiloten.de/dokuwiki/doku.php/liquidsoap:installation you can see the packages I needed to install first and what module I selected in the PACKAGE file. I always used the latest version clone from github, so I cannot say, if this works for OS + liquidsoap version you try to compile. for the different codecs usually you need to install one of following packages before building liquidsoap: libcodec-ocaml libcodec libcodec-dev this will work mostly but not always. So I removed all modules I did not get running (like aac) or I did not needed (like shine). maybe this helps... Peter Am 19.03.2015 um 08:22 schrieb NeuralNET: Hi Sarah, Unfortunately not, the version in the 12.04 repositories is version 1.0.1. I need version 1.1.1 because the new version of airtime (2.5.2) requires this version of liquidsoap in order to function.. hence the need to build from source. Thanks. On 19/03/2015 00:01, Sarah k Alawami wrote: I don't use that flavor of linux, how ever can you use a package manager such as apt-get or what ever they have for the flavor you are using to install and compile liquidsoap for you? Good luck and hope you get your problem solved. I'm quite new to linux, only about 3 months old so dunno what I'm doing half the time. lol! I'm learning though. Good luck. On Mar 18, 2015, at 4:30 PM, NeuralNET neural...@dirtybass.fm wrote: Hi All, I'm trying to compile liquidsoap (liquidsoap-1.1.1-full) from the full tar archive on Ubuntu Precise (12.04) and have been unsuccessful. Each time I try to ./configure the script ends complaining that pkg-config files can't be found (albeit different from the version supplied in the tar archive) e.g. checking whether pkg-config knows about gstreamer-1.0... configure: error: gstreamer-1.0.pc not found.. Do you need to set PKG_CONFIG_PATH? I read a thread that said gstreamer was only required if video was being processed and that you could comment out ocaml-gstreamer from PACKAGES.. although when I do so it fails because shine.pc can't be found.. the PACKAGES.minimal fails because flac.pc can't be found.. It is true that the path is not set in the environment variables but in any case having looked I can't find a trace of the .pc files on the server soap insists it needs to proceed. Is it possible this could be due to remnants left from a previous developer compiling liquidsoap from source on the server a couple of years ago? I ask largely because the version numbers indicated are different (e.g.ocaml-gstreamer-0.2.0 vs gstreamer-1.0.pc) Any ideas how I can get around these errors get liquidsoap to compile ? Cheers. -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look
Re: [Savonet-users] Linux Alsa input and output
Hi, I do not know the reason for the underrun You can remove the fallback, since there is only one source given. To prevent liquidsoap stopping on underrun you can try radio=mksafe(mic_in) BR, Peter Am 20.02.2015 um 14:51 schrieb Nicholas Vrtis: I am trying to use Liquidsoap to capture the output from FIrefox and send it out to an Icecast server. As a breadboard setup, I thought I would try to simply grab it and then output it to a local device. It is mostly working. After lots of reading up on ALSA and devices. I have a loopback device defined as the default ALSA device. So Firefox happily outputs stuff to that device. I have connected the other end of the loopback to Liquidsoap. That works, though it took me a while to figure out how to specify the device name correctly. I have also connected the output of Liquidsoap to a real card on my system. Again, after figuring out how to name the device. The whole thing mostly works. I can play a Youtube video in Firefox and hear it on the speakers. The problem is that I get underruns after a short while (seconds). Here is my Liquidsoap code: #!/usr/bin/liquidsoap # # Here is the 'theory' # Firefox - hw:Loopback,0,0 (aka 'default') # hw:Loopback,1,0 - Liquidsoap input.alsa(device=hw:Loopback,1,0) # Liquidsoap output.alsa(device=hw:Device,0,0) # set(log.file.path,./RemoteDJ.log) # Print log messages to the console, set(log.stdout, true) mic_in=input.alsa(id='browserIn',bufferize=false, device=plughw:Loopback,1,0) radio=fallback(track_sensitive=false, [ mic_in]) output.alsa(id='localAudio', device=plughw:Device, radio) And here is the log file: 2015/02/19 18:25:23 LOG START 2015/02/19 18:25:23 [protocols.external:3] Found /usr/bin/wget. 2015/02/19 18:25:23 [main:3] Liquidsoap 1.1.1 2015/02/19 18:25:23 [main:3] Using: graphics=[distributed with Ocaml] pcre=7.0.2 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.1.1 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.7 gd=1.0a5 2015/02/19 18:25:23 [dynamic.loader:3] Could not find dynamic module for fdkaac encoder. 2015/02/19 18:25:23 [dynamic.loader:3] Could not find dynamic module for aacplus encoder. 2015/02/19 18:25:23 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/pulseaudio.cmxs. 2015/02/19 18:25:23 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ogg.cmxs. 2015/02/19 18:25:23 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/bjack.cmxs. 2015/02/19 18:25:23 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/alsa.cmxs. 2015/02/19 18:25:23 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/voaacenc.cmxs. 2015/02/19 18:25:23 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/flac_ogg.cmxs. 2015/02/19 18:25:23 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/vorbis.cmxs. 2015/02/19 18:25:23 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/flac.cmxs. 2015/02/19 18:25:23 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/lame.cmxs. 2015/02/19 18:25:23 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/faad.cmxs. 2015/02/19 18:25:23 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/cry.cmxs. 2015/02/19 18:25:23 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/mad.cmxs. 2015/02/19 18:25:23 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/taglib.cmxs. 2015/02/19 18:25:23 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master. 2015/02/19 18:25:23 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples. 2015/02/19 18:25:23 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks. 2015/02/19 18:25:23 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks. 2015/02/19 18:25:23 [threads:3] Created thread generic queue #1. 2015/02/19 18:25:23 [threads:3] Created thread generic queue #2. 2015/02/19 18:25:23 [browserIn:3] Using ALSA 1.0.27.2. 2015/02/19 18:25:23 [browserIn:3] Samplefreq=44100Hz, Bufsize=1764B, Frame=4B, Periods=98 2015/02/19 18:25:23 [threads:3] Created thread localAudio (1 total). 2015/02/19 18:25:23 [threads:3] Created thread wallclock_alsa (2 total). 2015/02/19 18:25:23 [clock.wallclock_alsa:3] Streaming loop starts, synchronized by active sources
Re: [Savonet-users] liquidsoap refuses to play, all other players work fine
Hi Ken, please try this: 1) find ALSA device aplay --list-devices 2) create virtual device to make sure to use alsa vi /etc/asound.conf pcm.liquidsoap { type plug slave { pcm hw:0,0 } } 3) use this device at liquidsoap script output.alsa(device=pcm.liquidsoap) BR, Peter Am 09.01.2015 um 03:58 schrieb Ken Restivo: When running, as a user with audio group permissions: liquidsoap 'output.alsa(sine())' Liquidsoap refuses to play. It gives this rather verbose but unhelpful error: 2015/01/08 18:39:55 [main:2] 2015/01/08 18:39:55 [main:2] Please send any bug report or feature request 2015/01/08 18:39:55 [main:2] at https://github.com/savonet/liquidsoap/issues. 2015/01/08 18:39:55 [main:2] 2015/01/08 18:39:55 [main:2] We hope you enjoy this snapshot build of Liquidsoap! 2015/01/08 18:39:55 [main:2] 2015/01/08 18:39:55 [dynamic.loader:3] Could not find dynamic module for aacplus encoder. 2015/01/08 18:39:55 [dynamic.loader:2] Could not load plugins in directory /usr/local/lib/liquidsoap/scm/plugins. 2015/01/08 18:39:55 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master. 2015/01/08 18:39:55 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples. 2015/01/08 18:39:55 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks. 2015/01/08 18:39:55 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks. 2015/01/08 18:39:55 [threads:3] Created thread generic queue #1. 2015/01/08 18:39:55 [threads:3] Created thread generic queue #2. 2015/01/08 18:39:55 [threads:3] Created thread alsa_out(default) (1 total). 2015/01/08 18:39:55 [threads:3] Created thread wallclock_alsa (2 total). 2015/01/08 18:39:55 [clock.wallclock_alsa:3] Streaming loop starts, synchronized by active sources. 2015/01/08 18:39:55 [alsa_out(default):3] Using ALSA 1.0.25. 2015/01/08 18:39:55 [threads:1] Thread alsa_out(default) aborts with exception Alsa error: No such device or address! 2015/01/08 18:39:56 [threads:3] Raised by primitive operation at file , line 0, characters 0-0 Thread 4 killed on uncaught exception Alsa.Unknown_error(6) 2015/01/08 18:39:56 [main:3] Shutdown started! 2015/01/08 18:39:57 [main:3] Waiting for threads to terminate... 2015/01/08 18:39:57 [clock.wallclock_alsa:3] Streaming loop stopped. 2015/01/08 18:39:57 [threads:3] Thread wallclock_alsa terminated (0 remaining). 2015/01/08 18:39:57 [main:3] Cleaning downloaded files... 2015/01/08 18:39:57 [main:3] Freeing memory... No such file or device? But but but... it's right there! aplay -l List of PLAYBACK Hardware Devices card 0: PCH [HDA Intel PCH], device 0: CX20641 Analog [CX20641 Analog] Subdevices: 0/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 [ken@airtime ~]$ Playing music with ogg123 works perfectly, as does aplay. Same user. I have not been able to find out what Alsa.Unknown_error(6) is, but I suppose it is a reference to the 'no such device or address above it. I found some mention of someone else having this problem in the list archives, but it gave a non-answer misdirecting with talk about file permissions. The file permissions are not an issue. With the *same user*, ogg123 works, liquidsoap fails. It's nothing to do with permissions. Same user. Something else is wrong and I don't know what it could be. By the way, this is with ii liquidsoap 1.1.1~precise~sfo-2 audio streaming language -ken -- Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] how obtain loudness effect?
Hi, we use the Fast Lookahead limiter plugin to increase loudness. http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html#tth_sEc2.39 You can increase the input gain until the sound is loud enough. But, it is not related to sound design. BR, Peter Am 10.12.2014 um 21:40 schrieb simone dal maso: Hello, I'd like to obtain a sort of fm radio effect, I think it is loudness. can you tell me how to make it with liquidsoap with sound processing?? is it difficult? thank you. -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Problem streaming with Vorbis
Hi Marius, did you compile liquidsoap yourself? There is a debug switch that can be enabled at ./configure ./configure --enable-debugging --disable-graphics yo can find my installation steps at http://dev.radiopiloten.de/dokuwiki/doku.php/liquidsoap:installation please try with compiling yourself - this works for us (with ubuntu 10 to 14). BR, Peter Am 16.12.2014 um 08:53 schrieb Marius Flage: Hi Peter, Nope, same problem. I wrapped noise() in mksafe(), like so: source = mksafe(noise()) But no, still the same error. If I change to %mp3 everything works fine immediately. - Marius Den 15.12.2014 23:18, skrev Peter Retep: Hi Marius, you can try to put a mksafe() around your source. i read the logs like there is no data to send, so mksafe around a source should ensure this. we are streaming 24/7 using ogg and also successfully tested with opus, so this should work in general. BR, Peter Am 14.12.2014 um 15:44 schrieb Marius Flage: Yup, the codecs are the ones from the package repository, so they should be the same arch. Any debugging info I can turn on? Any other suggestions? - Marius Opprinnelig melding Fra: John Plsek Dato:14.12.2014 15:13 (GMT+01:00) Til: savonet-users@lists.sourceforge.net Emne: Re: [Savonet-users] Problem streaming with Vorbis Looks right. The only thing I can think of is that I can see in your posts that liquidsoap is i386 architecture, I take it the codecs are also i386? On 14 December 2014 at 23:59, Marius Flage mar...@flage.org mailto:mar...@flage.org wrote: I think so: i A libogg0 - Ogg bitstream library i A libvorbis0a - The Vorbis General Audio Compression Codec (Decoder library) i A libvorbisenc2 - The Vorbis General Audio Compression Codec (Encoder library) i A libvorbisfile3 - The Vorbis General Audio Compression Codec (High Level API) i A libopus0- Opus codec runtime library These are the codecs, right? - Marius Den 14.12.2014 04:02, skrev John Plsek: You've installed the plugins, but have you installed the codecs? On 14 December 2014 at 07:08, Marius Flage mar...@flage.org mailto:mar...@flage.org wrote: Hi! I'm having issues streaming with the codecs ogg and opus. No matter which codec I use, I get the following error: 2014/12/13 21:04:10 [clock.wallclock_main:2] Source stream failed while streaming: Ogg.Not_enough_data! Googling suggests that I'm missing the codecs in question, but I have installed both the plugin for opus and for ogg: ii liquidsoap 1.1.1-6ubuntu2 i386 audio streaming language ii liquidsoap-plugin-faad 1.1.1-6ubuntu2 i386 audio streaming language -- FAAD plugin ii liquidsoap-plugin-flac 1.1.1-6ubuntu2 i386 audio streaming language -- FLAC plugin ii liquidsoap-plugin-icecast 1.1.1-6ubuntu2 i386 audio streaming language -- Icecast plugin ii liquidsoap-plugin-lame 1.1.1-6ubuntu2 i386 audio streaming language -- Lame plugin ii liquidsoap-plugin-mad 1.1.1-6ubuntu2 i386 audio streaming language -- Mad plugin ii liquidsoap-plugin-ogg 1.1.1-6ubuntu2 i386 audio streaming language -- Ogg plugin ii liquidsoap-plugin-opus 1.1.1-6ubuntu2 i386 audio streaming language -- Opus plugin ii liquidsoap-plugin-pulseaudio 1.1.1-6ubuntu2 i386 audio streaming language -- Pulseaudio plugin ii liquidsoap-plugin-samplerate 1.1.1-6ubuntu2 i386 audio streaming language -- Samplerate plugin ii liquidsoap-plugin-taglib 1.1.1-6ubuntu2 i386 audio streaming language -- Taglib plugin ii liquidsoap-plugin-voaacenc 1.1.1-6ubuntu2 i386 audio streaming language -- Voaacenc plugin ii liquidsoap-plugin-vorbis 1.1.1-6ubuntu2 i386 audio streaming language -- Vorbis plugin So what could be the problem here? This is the packages for Liquidsoap installed on Ubuntu Trusty 14.04.1. This is my configuration: #!/usr/bin/liquidsoap set(log.file.path, /tmp/basic-radio.log) set(server.telnet, true) set(server.telnet.bind_addr,0.0.0.0) source = noise() output.icecast(%opus(bitrate = auto), host = host, port = 8000, password = pass, mount = mount, id
Re: [Savonet-users] output.icecast: changing connection_timeout has no effect
Hi Laurent, Did you try the timeout parameter at output.icecast? * |timeout| (|float| – defaults to |30.|): Timeout for network read and write. http://savonet.sourceforge.net/doc-svn/reference.html BR, Peter Am 19.11.2014 um 13:11 schrieb laug...@free.fr: Hello , I would like to increase connection_timeout in output.icecast to more than the default 3 seconds. But setting another value for this parameter don't change the reconnection time . I use liquidsoap 1.1.1 In older Liquidsoap version, it was ok with the restart_delay parameter. Thanks ! LAurent -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=157005751iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Introduction, and getting an error when running a script
Hi Sarah, The user which starts the script as daemon has to have the permission to write its pid file to the given directory for example: liquidsoap -d 'out(mksafe(input.pulseaudio()))' Fatal error: exception Sys_error(/usr/local/var/run/liquidsoap/default.pid: Permission denied) You need permissions to write to the directory /usr/local/var/run/liquidsoap/ The directory is written in the error output and can be different on your system. You could either * make the directory writable to your user (using chmod) * change the file group of the directory (using chgrp), * execute the script as user liquidsoap or * add group liquidsoap to your user (adduser user liquidsoap) BR, Peter Am 13.11.2014 um 06:17 schrieb Sarah k Alawami: I could do that, but if I'm on another mac and I forget the pid that is not going to help much. I do want to learn why the -d switch is not working at least on this system. I only use screen as a last resourt or if I'm coppying 600 gigs of data as I'm doing now from one remote place to another and my own home internet is as flaky as it is. I need to reread the manual on scripting liquid soap again. Growl! Thanks all and blessings. On Nov 12, 2014, at 8:43 PM, Jonathan Candler jonathancandler_...@q.com mailto:jonathancandler_...@q.com wrote: Try using screen Jonnyboy! Iphones rock! On Nov 12, 2014, at 13:55, Sarah k Alawami marri...@gmail.com mailto:marri...@gmail.com wrote: Well, I think i got it, except I tried to pass the -d paramater in my terminal window so I could do other tings in my linode, and got ncode.pid: Permission denied) Raised at file pervasives.ml, line 231, characters 21-47 I don't know xml code to save my life, but at least the script with ot the d parameter ran, I think. I was trying to run this in the backround so it would not interrupt stuff and I could do other things. Progress in this journey of learning is beeing made. blessings all. On Nov 12, 2014, at 11:25 AM, Jonathan jonathancandler_...@q.com mailto:jonathancandler_...@q.com wrote: The file /var/log/liquidsoap/encode.log doesn't have the permissions to write to it you may try changing the folder permissions to the user. Let us know if that helps. On 11/12/2014 11:46 AM, Sarah k Alawami wrote: Hello to all. My name is Sarah Alawami, I'm extremely new here. I do have a question regarding a script. Hey to all. I upload a script Im working on and I thought I'd run it, except I get this. init: exception encountered during start phase: Sys_error(/var/log/liquidsoap/encode.log: Permission denied) So what could be the cause of this? I'm' logged in as the user who is to run the script so I really don't know what could be up here. I cannot give the script here as I forgot to reference the password in another script and use it as a variable. Oops? I'm really trying to use the scripting language but I cannot come up with any mnemonics to help me out. that's the best way I learn Thanks all and happy wednesday. -- Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk___ Savonet-users mailing list Savonet-users@lists.sourceforge.net mailto:Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net mailto:Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take
Re: [Savonet-users] dynamic creation of input.htp?
Hi Udo, we had a similar problem in the past and worked around by a simple solution: just use a single static HTTP input stream source and change the URL dynamically by an external script. We use the telnet interface to externally control http stream input. you can just update the URL to check/reconnect or do the stream switch. you can also ask the URL to check the state (polling, connected, etc.) from our experience, We use this approach to schedule the active stream from multiple stream sources of independent studios. (Additionally there could be a fallback, e.g. a second static stream source if a source becomes unavailable.) you can check the code http://dev.radiopiloten.de/dokuwiki/doku.php/liquidsoap:scheduler a stripped down liq file looks like #enable telnet server set(server.telnet, true) set(server.telnet.port,8001) set(server.telnet.bind_addr,127.0.0.1) #define two stations, station2 is fallback stream for station1 radio= input.http(id=station1, http://init/liquidsoap;) radio=mksafe(radio) #output stream - http://localhost:8000/radio output.harbor( protocol=http, port=8000, mount=/radio, format=audio/ogg, %vorbis.cbr(samplerate=44100, channels=2, bitrate=160), radio ) #avoid buffer overruns output.dummy(fallible=true, radio); The stripped down stream switch works like if ((defined $url) ( $url=~/^https?\:\/\//) ){ #get current url my $playing_url=liquidsoap_cmd('radio.url'); if ($url ne $playing_url){ #switch liquidsoap_cmd('radio.stop'); #direct set after stop did not always work in the past, so wait a moment (buffers will continuing playing output) sleep(1); liquidsoap_cmd('radio.url '.$url); liquidsoap_cmd('radio.start'); } }else{ #mute channel liquidsoap_cmd(radio.url http://warning/invalid_url'); liquidsoap_cmd(radio.stop'); my $playing_url=liquidsoap_cmd('radio.url'); } where liquidsoap_cmd basically writes command to telnet and reads the command's output This is to be called frequently. It will check if the current played url is the one to be played and stop the output, and set the new URL. in case no valid URL is given, the output will be stopped. We use this for several years without any problems. BR, peter Am 09.06.2014 um 18:33 schrieb udo noll: hello, i'd like to experiment with multiple live inputs, which are mounted on an icecast server, on defined mountpoints. i'd have to pull these streams with input.http, harbour isn't possible. ideally i'd want to create a start/stop telnet command, e.g. dyn_source_1.stop / dyn_source_1.start etc.. that works fine for manually defined input.http, but i'd need some hints how to do that dynamcally. ideas apprechiated, thanks, udo -- HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions Find What Matters Most in Your Big Data with HPCC Systems Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. Leverages Graph Analysis for Fast Processing Easy Data Exploration http://www.hpccsystems.com ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Want excitement? Manually upgrade your production database. When you want reliability, choose Perforce Perforce version control. Predictably reliable. http://pubads.g.doubleclick.net/gampad/clk?id=157508191iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] no way to have a sound output of liquidsoap
Hi Xavier, for me it worked like this: 1) find ALSA device aplay --list-devices create virtual device to make sure to use alsa vi /etc/asound.conf pcm.liquidsoap { type plug slave { pcm hw:0,0 } } use this device at play.liq output.alsa(device=pcm.liquidsoap) if using alsa make also sure that no other process uses the audio card (like pulseaudio). For simple use you could also use the pulseaudio output, where access is not blocked if another process uses the card. 2) check also that the user you are using to start liquidsoap is member of group audio. Depending on your system there are more groups that could be make it work like pulse, liquidsoap, but i am not sure about this group thing. BR, Peter Am 20.08.2014 um 12:08 schrieb Xavier Mouton-Dubosc: Hi everyone. I'm trying to build a continuous audio source for alocal associative radio (Radio FMR, from Toulouse, France) It's build around Ubuntu 14.04.1 LTS server. Numerous try with AirTime lead to a fail : no sound at all. So i'v tried simplier, with liquidsound. Here is its .liq #!/usr/bin/liquidsoap -v --debug # Installation à l'arrache suite frustrations AirTime. XAVIER 20/08/2014 # Log dir set(log.file.path,/var/log/liquidsoap/fmr.log) set(log.stdout,true) set(log.file,true) # audio q set(frame.audio.samplerate,44100) # Start building the feed with music playlist = playlist(mode='random', /discotheque/Albums) radio = fallback([playlist ,single(/discotheque/Albums/vrac/Dax Riders - DAX/02 - Soul Experience II.ogg) ]) # Et on envoie output.alsa(device = hw:0,0, fallible = false, bufferize = false, radio) and the dump : $ ./radioref.liq 2014/08/20 11:51:40 LOG START 2014/08/20 11:51:40 [protocols.external:3] Found /usr/bin/wget. 2014/08/20 11:51:40 [main:3] Liquidsoap 1.1.1 2014/08/20 11:51:40 [main:3] Using: graphics=[distributed with Ocaml] pcre=7.0.2 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.1.1 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.7 gd=1.0a5 2014/08/20 11:51:40 [dynamic.loader:3] Could not find dynamic module for fdkaac encoder. 2014/08/20 11:51:40 [dynamic.loader:3] Could not find dynamic module for aacplus encoder. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/frei0r.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/sdl.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ogg.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/shine.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/camlimages.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/gstreamer.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/samplerate.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/schroedinger.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/flac.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/faad.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/lo.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ao.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/lame.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/alsa.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/pulseaudio.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/vorbis.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/cry.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/portaudio.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/flac_ogg.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/voaacenc.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/ladspa.cmxs. 2014/08/20 11:51:40 [dynamic.loader:2] Loaded plugin file /usr/lib/liquidsoap/1.1.1/plugins/opus.cmxs
Re: [Savonet-users] Does Liquidsoap work with Trusty Tahr 14.04?
: yes - Theora: yes - Dirac : yes * Tags - Taglib (ID3 tags) : yes - Vorbis: yes - charset detection : yes * Input / output - Icecast/Shoutcast : yes - AO: yes - OSS : yes - ALSA : yes - Portaudio : no (requires portaudio) - Pulseaudio: yes - JACK : yes - GStreamer : yes * Audio manipulation - Samplerate: yes - SoundTouch: yes - LADSPA: yes * Video manipulation - Gavl : no (requires gavl) - FFmpeg: no (requires ffmpeg) - frei0r: no (requires frei0r) - camlimages: yes * MIDI manipulation - DSSI : no (requires dssi) * Visualization - Graphics : no - SDL : no (requires sdl) - GD: no (requires gd) * Additional libraries - wget URI resolver : requires wget at runtime - dynlink : yes - inotify : no (requires inotify) - lo: yes - magic : yes - yojson: no (requires yojson) - windows service : no (requires winsvc) * Graphical interfaces - Python GUI: yes (requires =pyGTK-2.0) It might be that this list is not complete, because I used my system and did not start from scratch. At the end everything was fine after make make install BR, Peter Am 08.05.2014 20:39, schrieb Tim Baker: Tim Baker tim@... writes: Just upgraded my LTS and get this error with Liquidsoap when trying to run it - the service seems to run after I’d found all the extra plugins, they weren’t installed (I did a purge / reinstall because initially it wouldn’t work at all) liquidsoap: error while loading shared libraries: libavutil.so.51: cannot open shared object file: No such file or directory Thought it was this whole ffmpeg vs avtool thing, so installed ffmpeg via another PPA - still the same error. Any idea? Tim I've now tried to compile liquidsoap from source, I have done this before because there are no binaries for 12.04 - but I got this error during the make: Error: /ocaml-ladspa/src/ladspa.cmxa both define a module named Ladspa Disabling Ladspa fixed this (under duress cos I use ladspa.compressor, but that doesn't work with the repository install either) and I disabled FFMpeg in the PACKAGES means no libavutl.so errors. But currently it's now having problems with my pervasive libraries - even though I import the lastfm.liq, it errors with: Starting liquidsoap channels: radioclash.liq At line 198, char 31: the variable lastfm.submit used here has not been previously defined. Even when I restore my previously working lastfm.liq. In fact oddly a lot of the libraries don't work unless I restore my local copy, the git /scripts/ versions don't seem to be seen, even the imported ones til I do that. I can do without a compressor, but lastfm is needed... :-( Still better than than odd FFMPeg problem. This all says that upgrading to 14.04 is a World of Hurt, basically. Beware! Tim -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: #149; 3 signs your SCM is hindering your productivity #149; Requirements for releasing software faster #149; Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free. http://p.sf.net/sfu/SauceLabs ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] how to bind an icecast output stream to an network interface?
Hello, thanks for your answers. Unfortunately I have only one public ip at the target machine (using multiple icecast mounts on it), so ip routing will not help. Maybe I could setup multiple icecasts at the target using different ports and then route them separately, but I would prefer a simple solution. As I know some commands like ping allow to specify the outgoing network interface at the sender site. If there was support like this within liquidsoap this would be great. PS: Until now I pulled the streams at the target site using input.http and connected to the mobile senders using dynamic DNS. In the current case I want to actively send them in parallel at the sender site over multiple wans to not care about managing dynamic IPs. This would allow to reliantly stream mobile from any place where I get more than one connection to internet. These connections are usually limited by small bandwidth, so it would be fine to use a separate one for each stream. On the target machine all streams are switched by fallover so there should be no silence in case of outage. Thanks again, Peter Am 05.05.2014 12:45, schrieb udo noll: Shaun Dewberry: 10.0.0.1 liquidsoapserver-eth0 10.0.0.2 liquidsoapserver-eth1 How could I bind an icecast output stream to an network interface? isn't that a plain routing thing, on OS level? --u -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: #149; 3 signs your SCM is hindering your productivity #149; Requirements for releasing software faster #149; Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Is your legacy SCM system holding you back? Join Perforce May 7 to find out: #149; 3 signs your SCM is hindering your productivity #149; Requirements for releasing software faster #149; Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] how to bind an icecast output stream to an network interface?
Hello, We have two internet uplinks and want to send the LS icecast output to different remote icecast mounts. In this usecase we want to avoid that both streams send via the same network interface. Best case would be to have an option to select for example eth0 for stream1 and eth1 for stream2. I did not find anything related to this in the output.icecast http://savonet.sourceforge.net/doc-svn/reference.html#output_icecast options. How could I bind an icecast output stream to an network interface? Thanks, Peter -- Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available. Simple to use. Nothing to install. Get started now for free. http://p.sf.net/sfu/SauceLabs ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] another radio
Hi LS Team, Today it was just fun for me to take all the jingles, station ids extracted from GTA4 radio stations and get them alive again by beeing played and mixed with LS. Thanks once again for this incredible piece of software! Peter -- WatchGuard Dimension instantly turns raw network data into actionable security intelligence. It gives you real-time visual feedback on key security issues and trends. Skip the complicated setup - simply import a virtual appliance and go from zero to informed in seconds. http://pubads.g.doubleclick.net/gampad/clk?id=123612991iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] no reconnect on second source after network failure
Hi, we are running two http input streams, where the second one is the fallback of the first one. Additional there is a fallback of the second, that plays a local file. Usually this works perfect for years now. In the last months I have seen the following situation seldomly: If both streams are not available due to external network errors and later the first one reconnects after network is available again, the second one does not get reconnected again, but stays in polling mode after becoming generally available. As the LS version we are running is not very fresh, it can be that this is fixed right now, so just to let you now... liquidsoap --version Liquidsoap 1.1.1+scm (git://github.com/savonet/liquidsoap.git@6685817cb4b88c7092b1add3f29f56a33ede00b3:20130526:181509) Copyright (c) 2003-2013 Savonet team Liquidsoap is open-source software, released under GNU General Public License. See http://liquidsoap.fm for more information. Please tell me if you need additional informations. BR, Peter -- Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] file scheduler
Hi, thanks to Sam for responding. I moved the download to the top - now it should be easier to find. BR, Peter Am 13.11.2013 17:06, schrieb Samuel Mimram: The wiki seems to be up again. Otherwise, here is the direct link: http://dev.radiopiloten.de/dokuwiki/lib/exe/fetch.php/liquidsoap:scheduler:liquidsoap_scheduler_2012-03-27.tar.gz ++ On Sat, Nov 9, 2013 at 11:09 PM, seth hurst hurstseth...@gmail.com wrote: I'm trying to download the file scheduler I click on the link to go to the wiki but there is now down load link how can I get this program? Seth Hurst hurstseth...@gmail.com -- November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- DreamFactory - Open Source REST JSON Services for HTML5 Native Apps OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access Free app hosting. Or install the open source package on any LAMP server. Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! http://pubads.g.doubleclick.net/gampad/clk?id=63469471iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] monitor level output / telnet
Hi Samuel, This is exactly what we need! Many thanks for this feature and the help! BR, Peter Am 26.10.2013 21:11, schrieb Samuel Mimram: s = playlist(~/Music) s = mksafe(s) duration = interactive.float(duration, 1.) rs = rms.stereo(duration=duration,s) r = fst(rs) s = snd(rs) def rms_left(_) = #{fst(r())} end def rms_right(_) = #{snd(r())} end server.register(rms_left,rms_left) server.register(rms_right,rms_right) output.pulseaudio(id=pa,s) You can get/set the duration with var.get duration / var.set duration and get rms with rms_left and rms_right. -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] monitor level output / telnet
Hi, As a first step I can try to test the feature itself on a younger system release. on the live systems we use Ubuntu 10.04 LTS (server version is officially supported until 2015), using ocaml version 3.11.2. I fear to get the live systems unstable, when updating parts of the system, (I do not know what other dependencies I would have to update than). After test on a newer system, I can try to get newer LS versions running on older LTS systems. In case of bugfixes this would be important to us. Which OCaml version do I need to compile the code? (Maybe its already inside 12.04, then I can easily upgrade.) Thanks an BR, Peter Am 26.10.2013 11:23, schrieb Samuel Mimram: Hi, On Fri, Oct 25, 2013 at 8:58 PM, Peter Retep peter_re...@gmx.de wrote: I finally found some time to check the new separate channel DB output feature and therefore wanted to build the latest version from git on Ubuntu 12.4 LTS. 1) After doing git clone in a fresh directory, make init exited with following errors: git fetch git branch --set-upstream-to=origin/master master error: unknown option `set-upstream-to=origin/master' I assume --set-upstream-to is not supported by the current Ubuntu LTS git version 1.7.0.4 I did remove the git branch commands from Makefile.git and went on. (I do not know if this works for my usecase: to get the newest version from the repository) I will let Romain answer on this one, but I think that as long as you get some code, it should be fine :) 2) After bootstrap and configure I finally got a syntax error at compiling: OCAMLDEP File tools/utils.ml, line 636, characters 16-26: Error: Integer literal exceeds the range of representable integers of type int I guess that you are on a 32 bits arch. I just commited a patch to fix this one. File configure.mli, line 84, characters 15-21: Error: Syntax error This one is more tricky. We are using a recent feature of the OCaml compiler. I'll try to see what I can do. On your side, you don't have a way to update the ocaml package I suppose ? OCAMLOPT -c tools/stdlib.ml OCAMLOPT -c tools/doc.ml OCAMLOPT -c tools/plug.ml OCAMLOPT -c tools/utils.ml File tools/utils.ml, line 636, characters 16-26: Error: Integer literal exceeds the range of representable integers of type int Same as above, should be fixed. Cheers, Samuel. -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] monitor level output / telnet
Update: Ubuntu 12.04 LTS comes with OCaml 3.12.1, I was able to get it compiled on this system. So we could just plan to upgrade our systems to LTS 12.04. Can you give me a hint how to use the rms.stereo with the server? For mono I used in the past: radio = server.rms(id=rms,radio) then I used rms.rms at the telnet interface now I tried something like l = interactive.float(l, 1.) r = interactive.float(r, 1.) d = interactive.float(d, 1.) radio=rms.stereo(id=rms, duration=d, radio) but it wont work (of cause as you may say :-). How should I use the operator to be able to * set the duration by the telnet interface and * get the output of the left and right channel at the telnet output Thanks in advance, Peter Am 26.10.2013 12:35, schrieb Peter Retep: Hi, As a first step I can try to test the feature itself on a younger system release. on the live systems we use Ubuntu 10.04 LTS (server version is officially supported until 2015), using ocaml version 3.11.2. I fear to get the live systems unstable, when updating parts of the system, (I do not know what other dependencies I would have to update than). After test on a newer system, I can try to get newer LS versions running on older LTS systems. In case of bugfixes this would be important to us. Which OCaml version do I need to compile the code? (Maybe its already inside 12.04, then I can easily upgrade.) Thanks an BR, Peter Am 26.10.2013 11:23, schrieb Samuel Mimram: Hi, On Fri, Oct 25, 2013 at 8:58 PM, Peter Retep peter_re...@gmx.de wrote: I finally found some time to check the new separate channel DB output feature and therefore wanted to build the latest version from git on Ubuntu 12.4 LTS. 1) After doing git clone in a fresh directory, make init exited with following errors: git fetch git branch --set-upstream-to=origin/master master error: unknown option `set-upstream-to=origin/master' I assume --set-upstream-to is not supported by the current Ubuntu LTS git version 1.7.0.4 I did remove the git branch commands from Makefile.git and went on. (I do not know if this works for my usecase: to get the newest version from the repository) I will let Romain answer on this one, but I think that as long as you get some code, it should be fine :) 2) After bootstrap and configure I finally got a syntax error at compiling: OCAMLDEP File tools/utils.ml, line 636, characters 16-26: Error: Integer literal exceeds the range of representable integers of type int I guess that you are on a 32 bits arch. I just commited a patch to fix this one. File configure.mli, line 84, characters 15-21: Error: Syntax error This one is more tricky. We are using a recent feature of the OCaml compiler. I'll try to see what I can do. On your side, you don't have a way to update the ocaml package I suppose ? OCAMLOPT -c tools/stdlib.ml OCAMLOPT -c tools/doc.ml OCAMLOPT -c tools/plug.ml OCAMLOPT -c tools/utils.ml File tools/utils.ml, line 636, characters 16-26: Error: Integer literal exceeds the range of representable integers of type int Same as above, should be fixed. Cheers, Samuel. -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] monitor level output / telnet
Hi, I finally found some time to check the new separate channel DB output feature and therefore wanted to build the latest version from git on Ubuntu 12.4 LTS. 1) After doing git clone in a fresh directory, make init exited with following errors: git fetch git branch --set-upstream-to=origin/master master error: unknown option `set-upstream-to=origin/master' I assume --set-upstream-to is not supported by the current Ubuntu LTS git version 1.7.0.4 I did remove the git branch commands from Makefile.git and went on. (I do not know if this works for my usecase: to get the newest version from the repository) 2) After bootstrap and configure I finally got a syntax error at compiling: OCAMLDEP File tools/utils.ml, line 636, characters 16-26: Error: Integer literal exceeds the range of representable integers of type int File configure.mli, line 84, characters 15-21: Error: Syntax error OCAMLOPT -c tools/stdlib.ml OCAMLOPT -c tools/doc.ml OCAMLOPT -c tools/plug.ml OCAMLOPT -c tools/utils.ml File tools/utils.ml, line 636, characters 16-26: Error: Integer literal exceeds the range of representable integers of type int Do you have any ideas? Thanks in advance, Peter Am 04.10.2013 13:10, schrieb Peter Retep: Hi Romain, thanks for your response. I wrote 3 separate issues at github (#102, #103, #104) to split the request into separate units that can be priorized as you like it. * RMS channel separation * setting RMS duration * dynamically adding or removing multiple RMS monitors with different durations Best regards, Peter Am 01.10.2013 21:15, schrieb Romain Beauxis: Hi Peter, 2013/9/29 Peter Retep peter_re...@gmx.de mailto:peter_re...@gmx.de Hello again, I finally remembered it was called rms and server.rms. which worked out of the box. Is there the possibility to get the RMS separated for each channel? Is there also the possibility to dynamically set the duration, the RMS is to be calculated for? This would allow to request the current peak (with small duration), but also medium and long duration RMS)? None of that is currently available, I think. If you would be kind enough to open a feature request on github I'd be glad to look at it: https://github.com/savonet/liquidsoap/issues/new Romain -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Live audio input on the Raspberry Pi
Hi Matt, Congratulations to your work! Could you please additionally benchmark with ogg/vorbis? I would be interested in the results. BR, Peter Am 03.10.2013 13:28, schrieb Matt Camp: Awesome, that definitely seems to have done the trick... I now have stable-sounding live streaming from a Raspberry Pi! One still has to be careful with other processes on the device however as it's living on the edge... as evidenced below when I fired up apt-get in another terminal and pushed the CPU up near 100% use briefly I am still seeing the occasional dropout even when I leave it alone, so I suspect there are probably still a few other processes around that could be pruned back to streamline things more. Thanks for your help! - 2013/10/03 11:18:47 [threads:3] Created thread wallclock_icecast (1 total). 2013/10/03 11:18:47 [threads:3] Created thread input.alsa_4842 (2 total). 2013/10/03 11:18:47 [threads:3] Created thread wallclock_alsa (3 total). 2013/10/03 11:18:47 [clock.wallclock_icecast:3] Streaming loop starts, synchronized with wallclock. 2013/10/03 11:18:47 [input.alsa_4842:3] Using ALSA 1.0.25. 2013/10/03 11:18:47 [clock.wallclock_alsa:3] Streaming loop starts, synchronized by active sources. 2013/10/03 11:18:47 [mksafe:3] Switch to safe_blank. 2013/10/03 11:18:48 [mksafe:3] Switch to warp_prod_4848 with transition. 2013/10/03 11:18:51 [input.alsa_4842:2] Overrun! 2013/10/03 11:18:51 [input.alsa_4842:2] Trying to recover.. 2013/10/03 11:20:14 [input.alsa_4842:2] Overrun! 2013/10/03 11:20:14 [input.alsa_4842:2] Trying to recover.. 2013/10/03 11:20:21 [input.alsa_4842:2] Overrun! 2013/10/03 11:20:21 [input.alsa_4842:2] Trying to recover.. 2013/10/03 11:20:21 [warp_prod_4848:3] Buffer emptied, start buffering... 2013/10/03 11:20:21 [mksafe:3] Switch to safe_blank with transition. 2013/10/03 11:20:22 [mksafe:3] Switch to warp_prod_4848 with transition. 2013/10/03 11:20:28 [input.alsa_4842:2] Overrun! 2013/10/03 11:20:28 [input.alsa_4842:2] Trying to recover.. 2013/10/03 11:20:33 [input.alsa_4842:2] Overrun! 2013/10/03 11:20:33 [input.alsa_4842:2] Trying to recover.. 2013/10/03 11:20:53 [input.alsa_4842:2] Overrun! 2013/10/03 11:20:53 [input.alsa_4842:2] Trying to recover.. 2013/10/03 11:20:53 [warp_prod_4848:3] Buffer emptied, start buffering... 2013/10/03 11:20:53 [mksafe:3] Switch to safe_blank with transition. 2013/10/03 11:20:54 [mksafe:3] Switch to warp_prod_4848 with transition. 2013/10/03 11:20:59 [input.alsa_4842:2] Overrun! 2013/10/03 11:20:59 [input.alsa_4842:2] Trying to recover.. 2013/10/03 11:21:04 [input.alsa_4842:2] Overrun! 2013/10/03 11:21:04 [input.alsa_4842:2] Trying to recover.. On 3 October 2013 03:05, Romain Beauxis rom...@liquidsoap.fm mailto:rom...@liquidsoap.fm wrote: Hi Matt, 2013/10/2 Matt Camp m...@noise.net.nz mailto:m...@noise.net.nz So after quite a few headaches with various libraries and plenty of time spent recompiling, I've done a few tests using the Raspberry Pi (raspbian armhf) as a potential live stream source. Cool, sorry it had to be so painful.. I'm only interested in AAC+ 64kbit stereo, so my tests are focussed there. I'm using a Behringer UCA202 class-compliant USB audio interface as the audio source, with input.alsa() and streaming to an icecast2 server. I've tested with both the %aacplus and the %fdkaac encoders. %aacplus results in approximately 54-57% CPU usage, with minor audio glitches occuring every 10 seconds so.. these glitches are definitely more frequent (and more audible) when the CPU usage is higher. (see below). %fdk-aac using mpeg4_he_aac results in approx 51-55% CPU usage, so is a slight improvement. %fdk-aac using mpeg4_he_aac_v2 results in a fairly solid 42% CPU usage... a definite improvement there, although the audio glitches are still there occasionally... enough that I wouldn't want to use this for anything production just yet. Interestingly the CPU usage when streaming an mp3 file using this encoder is 55-60%. Even when doing other tasks to push the CPU higher, the audio is still a lot cleaner and more glitch-free than any of the live stream tests. (although they do appear when CPU goes over around 75-80%) My suspicion is that these audio glitches are related to the ALSA driver not quite talking with my USB audio interface correctly, although I'm not seeing any 'catch up' errors in the liquidsoap logs... I've used the guide at http://wiki.linuxaudio.org/wiki/raspberrypi to tweak the rpi as much as possible for audio, but there are still issues. Trying to use Jack on the rpi has been a fairly dismal failure. Jackd1 (patched for the rpi) runs, but even using jack_rec to record a short audio sample results in around one second of clean audio, then overlaid with static / white noise. Trying to run
[Savonet-users] monitor level output / telnet
Hello, I use a stream player and audacity to check the audio levels of the liquidsoap output. but in emergency case, the setup takes much time. Putting it to server command line or web would decrease my personal response time. I additionally would like to enable people to check the stereo balance and volume of there audio streams. How could I request a source's volume via telnet interface? (Any other interface like HTTP/JSON/logging to file) would fit, too. I remember some discussion naming a solution for this, but cannot find it in my archives. (vumeter was not recommended for production use, visu for graphical interface only). Thanks regards, Peter -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60133471iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] monitor level output / telnet
Hello again, I finally remembered it was called rms and server.rms. which worked out of the box. Is there the possibility to get the RMS separated for each channel? Is there also the possibility to dynamically set the duration, the RMS is to be calculated for? This would allow to request the current peak (with small duration), but also medium and long duration RMS)? BR, Peter Am 29.09.2013 15:25, schrieb Peter Retep: Hello, I use a stream player and audacity to check the audio levels of the liquidsoap output. but in emergency case, the setup takes much time. Putting it to server command line or web would decrease my personal response time. I additionally would like to enable people to check the stereo balance and volume of there audio streams. How could I request a source's volume via telnet interface? (Any other interface like HTTP/JSON/logging to file) would fit, too. I remember some discussion naming a solution for this, but cannot find it in my archives. (vumeter was not recommended for production use, visu for graphical interface only). Thanks regards, Peter -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60133471iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60133471iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] how to adress an alsa device
hi, we're using liquidsoap on a raspberry pi in order to build a simple client-side relay of our streaming with the ability to provide a fallback when the net becomes troublesome. the raspberry has an integrated soundchip, but we'd prefer to use an external card (edirol 25) with far better capabilities as liquidsoap's output, and we'd like to adress this card independently from the way devices are found during the startup sequence. the api docs just say the parameter is given as string, but don't offer any details. we tried several forms like: output.alsa( s, device = hw:UA25EX,0) but to no avail. so any help would be highly appreciated. best regards peter -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] liquidsoap aborts with exception Alsa.Unknown_error(-1073741824)
Hi David, Maybe I mixed up the versions mentioned in the thread? As far I remember 2010, I just wanted to summarize, which steps were taken to get LS running using the errorous sources, that did not include the bug fix, yet. After the patch was sourced, everything run fine without any manual patching. BR, Peter Am 07.03.2013 11:34, schrieb David Baelde: Hi Peter, 1) install the int overflow patch before configure, make, make install I'm confused by this... This might be a dumb question (I do not fully remember the thread) but why are you using an old version of ocaml-alsa (the latest one has the int overflow patch already applied)? Cheers, -- Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester Wave(TM): Endpoint Security, Q1 2013 and remains a good choice in the endpoint security space. For insight on selecting the right partner to tackle endpoint security challenges, access the full report. http://p.sf.net/sfu/symantec-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Liquidsoap 1.1.0 has shipped!
Hi, I will test and update our live settings as soon as possible. Your great piece of software is reliably driving our radio 24/7 for nearly 3 years without any outage. Thanks for this! BR, Peter Am 05.03.2013 19:03, schrieb Romain Beauxis: Hi all, It is my greatest pleasure to announce that liquidsoap 1.1.0 has shipped! This version contains improvements in the multimedia front with a much improved support for GStreamer, the addition of the new Opus codec and a new Shine fixed-point MP3 encoder for architectures with no FPU Coming with this version, you will also have a new option to reload playlists on file change, support for frei0r video plugins, external decoders for streams, and much more (see full changelog below). And, of course, this version also ships with many bugfixes and other cleanup jobs. For this release, we would like to give a special thanks to the sourcefabric people and the airtime team in particular. Most of the new features shipped in this release were implemented during our visit to their headquarters last fall. But of course, we would also like to thank all of our users which have been trusting us and liquidsoap for their projects. We were really proud and happy of the interaction with the community during the last freeze period and many embarrassing bugs would not have been fixed without you all so thank you very much!! We will be providing official Debian packages very shortly, although they will have to go to the experimental distribution while the freeze for the new release is still in place. OSX homebrew packages should also be updated shortly. Finally, a windows binary will also be uploaded but this may require more work and interaction with windows users. Keep an eye on the mailing list if you use liquidsoap on win32, we will need your help! Thanks y'all and now back to our streaming projects! Romain PS: As it is customary with our release notification, I close out with the full changelog: 1.1.0 (04-03-2013) == This version brings some new features as well as correcting bugs. == New: - Add support for GStreamer decoding, processing and encoding (%gstreamer format, v4l webcam input is now implemented using GStreamer). - Add support for opus decoding and encoding. - Add support for the shine encoder, which can efficiently work on architectures without FPU. - Add support for automatically computing the duration of tracks in the duration metadata [LS-641]. It can be enabled with set(request.metadata_decoders.duration,true) - Add support for frei0r video effects. - Allow %define'd variables in encoding formats [LS-634], e.g. %define BITRATE 24 %define STEREO true output.file(%mp3(bitrate = BITRATE, stereo = STEREO),bla.mp3,s) Enhancements: - Taglib now reads all metadatas (even non-standard ones). - Add a mode to automatically reload a playlist when the file was changed [LS-363,LS-523]. For instance, s = playlist(~/Music,reload_mode=watch). Also, add file.watch to call a callback when a file is changed, with inotify support when present. - Add support for FFMpeg as video converter, which you can use with set(video.converter.preferred, ffmpeg) - Add back_time argument to blank operators [LS-609]. - Add a metadata to override fade.final duration. - MIME is computed at most once when extracting replaygain. - Default samplerate converter is now fast. - BPM detection (bpm) now uses a callback. - Add clock.unify to unify clocks of all sources from a list. - Add source_url metadata to input.http streams. - Improved error message when theora format is not supported. - Add list.filter function. - video.add_image can now take any image format as input. - Add mux_stereo. - Support for external decoders in streams. - Move bugtracker to https://github.com/savonet/liquidsoap/issues Bugfixes: - Configure is now compatible with OCaml = 4.0 and removed support for OCaml 3.11 [LS-625]. - Fix random memory access / memory leak when decoding AAC/MP4 files [LS-647]. - Correct resampling of wav files. - Use the length for data indicated in header for wav files. - Argv.(0) now returns the script name [LS-605]. - Liquidsoap should now operate fine when compiled with -noassert [LS-578]. - Better handling of inexistent MIDI channels. - Video decoder now correctly handles videos from Icecast. - Avoid visu.volume freezing Liquidsoap on shutdown. - Fix a memory leak when decoding both audio and video in ogg [LS-636]. - More efficient handling of video converters, also fixes some crashes [LS-623]. - Have the soundtouch operator preserve tags [LS-621]. - Fix remaining time estimation in cross and smart_cross. - Avoid deadlocks in harbor and input.http. - Remove leftover files in configure [LS-567]. - Handle wav files with padded fmt headers. - Handle end-of-stream when seeking mp3 with mad
Re: [Savonet-users] liquidsoap aborts with exception Alsa.Unknown_error(-1073741824)
Hi, we have finally put our production system to 1.0.0beta1 using alsa without any errors anymore. To close this thread I just want to summarize the needed steps: 1) install the int overflow patch before configure, make, make install Index: alsa_stubs.c === --- alsa_stubs.c(révision 7697) +++ alsa_stubs.c(copie de travail) @@ -114,7 +114,11 @@ return ans; } -static void check_for_err(int ret) +/* Here, we use the type snd_pcm_sframes_t + * which is long usually and makes sure we + * avoid long to int overflow in the read/write + * function's return value. */ +static void check_for_err(snd_pcm_sframes_t ret) { if (ret= 0) return; @@ -296,7 +300,7 @@ int ofs = Int_val(ofs_); snd_pcm_t *handle = Pcm_handle_val(handle_); char *buf; - int ret; + snd_pcm_sframes_t ret; if (ofs + len * Frame_size_val(handle_) caml_string_length(dbuf)) caml_invalid_argument(buffer); @@ -320,7 +324,7 @@ int ofs = Int_val(ofs_); snd_pcm_t *handle = Pcm_handle_val(handle_); char *buf; - int ret; + snd_pcm_sframes_t ret; if (ofs + len * Frame_size_val(handle_) caml_string_length(sbuf)) caml_invalid_argument(buffer); @@ -346,7 +350,7 @@ snd_pcm_t *handle = Pcm_handle_val(handle_); char **buf; int c; - int ret; + snd_pcm_sframes_t ret; /* TODO: check the size of dbuf */ buf = malloc(chans * sizeof(char*)); @@ -377,7 +381,7 @@ snd_pcm_t *handle = Pcm_handle_val(handle_); char **buf; int c; - int ret; + snd_pcm_sframes_t ret; /* TODO: check the size of sbuf */ buf = malloc(chans * sizeof(char*)); @@ -408,7 +412,7 @@ snd_pcm_t *handle = Pcm_handle_val(handle_); float **buf; int c, i; - int ret; + snd_pcm_sframes_t ret; /* TODO: check the size of dbuf */ buf = malloc(chans * sizeof(float*)); @@ -440,7 +444,7 @@ snd_pcm_t *handle = Pcm_handle_val(handle_); float **buf; int c, i; - int ret; + snd_pcm_sframes_t ret; /* TODO: check the size of fbuf */ buf = malloc(chans * sizeof(float*)); @@ -472,7 +476,7 @@ snd_pcm_t *handle = Pcm_handle_val(handle_); double **buf; int c, i; - int ret; + snd_pcm_sframes_t ret; /* TODO: check the size of fbuf */ buf = malloc(chans * sizeof(double*)); @@ -504,7 +508,7 @@ snd_pcm_t *handle = Pcm_handle_val(handle_); double **buf; int c, i; - int ret; + snd_pcm_sframes_t ret; /* TODO: check the size of fbuf */ buf = malloc(chans * sizeof(double*)); 2) create a virtual alsa device in /etc/asound.conf pcm.liq-test { type plug slave { pcm hw:0,0 } } 3) use the created alsa device in source scripts input.alsa(device=pcm.liq-test) overrun occures at 44100 hz * 16 bit * 2 (stereo) 4294967296÷(44100×16×2) 12*3600 secs =43200 secs Am 01.10.2010 18:31, schrieb David Baelde: Good news! I should have mentioned it earlier, but Romain pointed out that my patch is useless. So what really happened is that not using alsa-pulse you simply didn't have that weird error. And there was no attempt to recover. Hence the signal should be clean. We could try to re-prepare instead of recovering when such errors happen. But, since you are the only one to have experienced it and you just found the cause and fixed the problem, we might simply leave our code as it is. Cheers, David -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] Http Live Streaming output
Seems like liquidsoap currently outputs to an mp3 or to an icecast stream. I would love to see an alternative which would be an HLS sliding window playlist and associated segmented AAC files. Anyone else interested in this idea? If liquidsoap could manage a folder containing a collection of the currently playing and window of future audio segment and metadata files, and periodically rewite the m3u8 playlist file that points to these files, a simple HTTP server would be all that is necessary to make a radio station playable on a wide range of devices, including iPhones. -- Peter Zingg -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_jan___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Failback.skip and Jingles
hi alessandro, i'm fading out to live when a live source starts, and i insert a jingle when live is finished before the studio source comes back: def to_live( old, new) old = fade.final( old) sequence( [old, new]) end def from_live( jingle, old, new) source.skip( new) s = add( [ jingle, old]) sequence( [s, new]) end from_live_j = from_live( jingle)// the fallback expects a transition function with only two parameters radio = fallback( track_sensitive = false, transitions=[to_live, from_live_j], [strip_blank( length = 60., live), studio]) // strip_blank is added as moderators often forget to switch off the live stream after finishing i hope this might work at least as a template for your needs regards peter On 10/25/12 16:38, Alessandro Casella wrote: Hi to everyone! I'm trying to use a smart crossfade transition with jingle in my fallback source using fallback.skip I notice when using sequence operator my harbor input won't go on air… liquidsoap will skip once a track.. and then won't do nothing else… How i have to do to use jingle with smart crossfade only on one playlist? At the moment it works using this script add = fun (from,to) - add(normalize=false, [ to, from ]) etc…. but i don't know where i have to add jingle source… and make skip working Please help me, thanks a lot -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_sfd2d_oct ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_sfd2d_oct ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Crossfade fallback
hi ian, i've defined two transitions for switching to live and back, fading out - not crossfading - my rotation before playing the live stream, on the way back inserting a jingle before resuming rotation: def to_live( old, new) old = fade.final( old) sequence( [old, new]) end def from_live( jingle, old, new) # source.skip( new) s = add( [ jingle, old]) sequence( [s, new]) end if you want to resume the old track that was playing before you went to live keep the skip commented, otherwise you start with a new track after live. as fallback is expecting only transitions with two parameters, i need to define: from_live_j = from_live( jingle) then i call the fallback function with these transitions. as it happened that people forgot to kill the livestream after broadcasting, i'm also doing a blank detection and go back to rotation automatically when there's a minute of silence: radio = fallback( track_sensitive = false, transitions=[to_live, from_live_j], [strip_blank( length = 60., live), rotation]) hope this helps, at least should give you an idea how you can insert transition methods peter On 09/30/12 17:18, Ian Bonham wrote: Hi Everyone, I wonder if someone can help me out a little with a LiquidSoap problem I'm having. I'm sure it's very simple, but I can't seem to get it to work. I have an input.harbor that comes alive every now and again, and I want to switch from my automated playlist to the live incoming stream, then back to the playlist when it disconnects. That *IS* working fine, but the stream crashes into the playing track. All I am looking for is a simple way for it to crossfade when the fallback swtiches between the playlist and the live, rather than crashing into the current playing track, so it's not such a shock to the listener. Any help would be really appriciated. I've tried various techniques (for about 5 hours now!) but it either doesn't work or just refuses to load! Many Thanks, Ian B -- Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://ad.doubleclick.net/clk;258768047;13503038;j? http://info.appdynamics.com/FreeJavaPerformanceDownload.html ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Got visibility? Most devs has no idea what their production app looks like. Find out how fast your code is with AppDynamics Lite. http://ad.doubleclick.net/clk;262219671;13503038;y? http://info.appdynamics.com/FreeJavaPerformanceDownload.html___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] problem with modified smart_crossfade
hello, there's a problem i'm experiencing when i'm using a slightly modified smart_crossfade on our rotation. the applied modification should allow that tracks are being sequenced (the default transition) whenever news are going to be broadcast. news.mp3's are being recognized by their metadata. the problem is they aren't sequenced as they should - they're always faded in. in order to track down the problem i've stripped down smart_crossfade to just two transition alternatives and use it on a simple playlist: 01-music.mp3 02-news.mp3 03-music.mp3 which i'm playing in normal mode. my conditional_smart_crossfade function is set to crossfade between music tracks and sequence when news are either the last or next track. when running this setup i experience that news are being sequenced on the first round through the playlist exactly the way they're expected to do, but on the next and all following runs of the playlist the news are clearly being faded in (no crossing), although the log output shows always that the proper branch was chosen. the transitions at the end of news towards the next music track are always proper sequences without fading. the whole .liq i'm using reads as this: --- set( log.file, false) set( log.stdout, true) def conditional_smart_crossfade( ~start_next = 5., ~fade_in = 3., ~fade_out = 3., ~high = -15., ~medium = -32., ~margin = 4., ~width= 2., ~conservative = false, ~default = ( fun( a, b) - sequence( [a, b])), s) fade.out = fade.out( type = sin, duration = fade_out) fade.in = fade.in( type = sin, duration = fade_in) add = fun( a, b) - add( normalize = false, [b, a]) log = log( label = TRANSITION) def transition( a, b, ma, mb, sa, sb) if string.match( pattern = 'news', ma[artist]) or string.match( pattern = 'news', mb[artist]) then log( transition in effect: NONE for news) default( sa, sb)*) else log( transition in effect: CROSSED for music) add( fade.out(sa), fade.in(sb)) end end smart_cross( width = width, duration = start_next, conservative = conservative, transition, s) end s = playlist( mode = normal, /path_to_my_3_files_rotation) s = conditional_smart_crossfade( s) out( s) --- *) it doesn't make a difference whether i'm using default( sa, sb) or sequence( [sa, sb]) ! the behaviour is not track-dependent. selecting other tracks for sequencing led to the same behaviour (only difference: often they didn't sequence properly even on the first run). when i'm changing the branching condition to true, thus always choosing the default (sequencing) transition, all sequences are played properly. thanks in advance for any help with that issue peter -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] smooth_add and metadata (#2)
hi tom, the api reference for add states that it Only relays metadata from the first source that is effectively summed. but you're adding with normal still being the first source in both transitions. regards peter On 07/27/12 16:30, T. Bühlmann wrote: Hello all! I've started this thread in february, but since then i had not much time to experiment; even worse the old mails were already deleted.. :( I'm still trying to do a smooth_add while showing the metadata of the special source. The Problem is, i'm not getting a smooth transition, it just cuts hard like a fallback at the start and the end of the special source. But i'm ok with the metadata this time. What i have now is this: (Basically smooth_add with the special and the normal Parts switched in utils.liq as David suggested) def smooth_add_meta(~delay=0.5,~p=0.2,~normal,~special) d = delay fade.final = fade.final(duration=d*2.) fade.initial = fade.initial(duration=d*2.) q = 1. - p c = amplify fallback(track_sensitive=false, [special,normal], transitions=[ fun(special,normal)- add(normalize=false, [c(p,normal), c(q,fade.initial(type=sin,normal))]), fun(normal,special)- add(normalize=false, [c(p,normal), c(q,fade.final(type=sin,normal)), sequence([blank(duration=d),c(q,special)])]) ]) end As i understand this code, we have a fallback with a transition. The first function fun(normal,special) does this: The normal stream gets added with negative amplification of ~q (eq. 1. -p) and with a fade.final (and so fades out). The seqence adds blank for ~delay and starts the special stream then. The function fun(special,normal) does this: It adds normal again to the output (amplified negatively by p), but this time with fade.inital(so starts to fade in) The whole process starts as soon as ~special is available at the fallback. From my point of view, the above code should work. Can anybody point me to the right direction or am i misunderstanding something here? Thanks for helping out! -- Tom Liquidsoap rocks! -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] smooth_add and metadata (#2)
hi tom, just change the first transition of smooth_add to: fun(normal,special)- add(normalize=false, [sequence([blank(duration=d),c(q,special)]), c(p,normal), c(q,fade.final(type=sin,normal))]), regards peter On 07/28/12 23:54, thomas Buehlmann wrote: Hi Peter Thanks for your answer. I read the same part of the api reference :), but i'm not sure wether i interpret the liquidsoap code under smooth_add correctly. I'm still not 100% familiar with LS syntax/expressions :( But what i unterstand i need to add the normal source to the special source instead to be the special source the first source. I'll have another look at the code and try again! Thanks again for helping! -- Tom Liquidsoap rocks! Am 28.07.2012 14:54, schrieb Peter Walter: hi tom, the api reference for add states that it Only relays metadata from the first source that is effectively summed. but you're adding with normal still being the first source in both transitions. regards peter On 07/27/12 16:30, T. Bühlmann wrote: Hello all! I've started this thread in february, but since then i had not much time to experiment; even worse the old mails were already deleted.. :( I'm still trying to do a smooth_add while showing the metadata of the special source. The Problem is, i'm not getting a smooth transition, it just cuts hard like a fallback at the start and the end of the special source. But i'm ok with the metadata this time. What i have now is this: (Basically smooth_add with the special and the normal Parts switched in utils.liq as David suggested) def smooth_add_meta(~delay=0.5,~p=0.2,~normal,~special) d = delay fade.final = fade.final(duration=d*2.) fade.initial = fade.initial(duration=d*2.) q = 1. - p c = amplify fallback(track_sensitive=false, [special,normal], transitions=[ fun(special,normal)- add(normalize=false, [c(p,normal), c(q,fade.initial(type=sin,normal))]), fun(normal,special)- add(normalize=false, [c(p,normal), c(q,fade.final(type=sin,normal)), sequence([blank(duration=d),c(q,special)])]) ]) end As i understand this code, we have a fallback with a transition. The first function fun(normal,special) does this: The normal stream gets added with negative amplification of ~q (eq. 1. -p) and with a fade.final (and so fades out). The seqence adds blank for ~delay and starts the special stream then. The function fun(special,normal) does this: It adds normal again to the output (amplified negatively by p), but this time with fade.inital(so starts to fade in) The whole process starts as soon as ~special is available at the fallback. From my point of view, the above code should work. Can anybody point me to the right direction or am i misunderstanding something here? Thanks for helping out! -- Tom Liquidsoap rocks! -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] make error : both define a module named Ogg
Hi Samuel, It's running again! Thanks for the hint! BR, Peter Am 19.07.2012 20:28, schrieb Samuel Mimram: Hi, This comes from the fact that you have ocaml-ogg installed on your system and it is also being compiled from the hg version (presumably the two versions are different). If you compile from mercurial the most simple is to uninstall the system-wise ocaml-ogg (apt-get remove libogg-ocaml-dev). ++ Sam. On Wed, Jul 18, 2012 at 2:03 PM, Peter Retep peter_re...@gmx.de wrote: Hi, I am currently testing updating our radio system to Ubuntu 12.04 LTS with a liquidsoap current mercury clone When I try make I get following error: for i in ocaml-cry ocaml-alsa ocaml-pulseaudio ocaml-mad ocaml-taglib ocaml-lame ocaml-ogg ocaml-vorbis ocaml-flac ocaml-ladspa ocaml-soundtouch ocaml-samplerate ocaml-xmlplaylist ocaml-dtools ocaml-duppy ocaml-mm liquidsoap; do make -C $i || exit 1; done make[1]: Betrete Verzeichnis '/home/milan/radio/savonet/ocaml-cry' ... OCAMLOPT -c main.ml CC -c tools/locale_c.c CC -c io/oss_io_c.c OCAMLOPT -o liquidsoap File _none_, line 1, characters 0-1: Error: Files /home/peter/savonet/liquidsoap/../ocaml-ogg/src/ogg.cmxa and /usr/lib/ocaml/ogg/ogg.cmxa both define a module named Ogg make[3]: *** [liquidsoap] Fehler 2 make[3]: Verlasse Verzeichnis '/home/peter/radio/savonet/liquidsoap/src' What is the right way to come over this point? Thanks Regards, Peter PS: Only thing I did additionally was to remove ocaml-aacplus directory, because configure failed to prepare this module, even if it was commented at PACKAGE file. -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Liquidsoap 1.0.1 is coming
Hi, We successfully updated our radio system to liquidsoap 1.0.1. Many thanks for this release - especially for supporting changing number of channels when using multiple http input sources! BR, Peter Am 04.07.2012 17:06, schrieb Audiodef Online: Good stuff, David. LIquidsoap rules! On 07/03/12 22:17, David Baelde wrote: Dear users, The savonet team is happy to bring you the 1.0.1 release of liquidsoap. It brings fixes and (almost completely) backward-compatible improvements over version 1.0. Downloads are as usual: https://sourceforge.net/projects/savonet/files/liquidsoap/1.0.1/ Fixes: - correct type for the flush parameter in output.external() thanks to Romaric Petion for pointing it out - fix bug where MP3 encoder would discard initial ID3v2 rendering - fix bug where smart_cross() would stop before the end of tracks, thanks to Edward Kimber for raising the issue - load libraries in --interactive [LS-618] - update examples, notably the installed radio.liq thanks to Emery Hemingway for noticing the problem - generalize the types of input.http() and input.harbor() to allow variable content kinds, and also allow video for harbor [LS-601] - request.equeue() now allows to remove requests from the primary queue - fix compilation of lame dynamic plugin. New: - new values for metadata fields does not override old one anymore; use setting request.metadata_decoders.override to restore old behavior - stereo_mode and internal_quality parameters for %mp3 encoder - enable mad decoder for MP1 and MP2 in addition to MP3, create aliased configuration keys decoder.file_extensions/mime_types.mad - support for CUE sheet playlists and metadata in M3U - setting decoder.taglib.force_mpeg to force taglib to consider files as MPEG - scripting builtins getenv(), setenv() and environment() - scripting builtin source.fallible() - harbor is now verb-oriented, supporting GET, POST, PUT, HEAD, DELETE, OPTIONS - load DSSI plugins from environment variables and using dssi.register() - also display the type of the whole expression when -i is passed - generalized custom path support for facilitating standalone distributions - and as usual, various improvements in the code, log and error messages, etc. Cheers! David -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] One-off Scheduling
hi neil, at multicult.fm we use a directory structure with hourly slots where productions are dropped (e.g. via ftp). an external script looks whether there's something in the current folder. everything in the folder is played in alphabetical/numerical order, when there's nothing left we fall back to rotation: def next_track() request.create( list.hd( get_process_lines( path-to-script))) end source = request.dynamic( next_track) if you need a finer grain of control when something needs to be played, you might use telnet in order to squeeze something into your running program. best regards peter On 07/09/12 14:36, Neil Davidson wrote: Hi all, Firstly, congratulations on the 1.0.1 release - it's running great here on Culture Lab Radio in Newcastle :) I have a general problem which I'm hoping to get some suggestions about. I'd really appreciate any ideas. Quite often I will have a DJ who comes along with an mp3 file and says Can you play this for me at x o'clock? At the moment someone (usually me!) has to queue it up and manually press play at the right time on our live studio playout computer, which isn't ideal for me. I'd like to be able to upload the file the liquidsoap server and have it be automatically played at the right time, just the once. Before I get my scripting hat on, are there any clever ways people have found to manage this kind of situation, using liquidsoap and/or an external script to add one-off shows into the stream at the right time? Kind regards, Neil -- Neil Davidson Culture Lab Radio http://culturelabradio.ncl.ac.uk/ Newcastle University Email: neil.david...@newcastle.ac.uk -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Calling external scripts from LS scripts
there's an example in the "cookbook" part of the documentation, chapter "unix interface, dynamic requests". basically you give a string as an argument to the function, and this string should be the path to the command you want to have executed. get_process_lines will return whatever your command returns in a list of strings. i use it in the form list.hd (get_process_lines ("/path/to/my/command")) in order to retrieve just the first line of output. On 06/27/12 23:10, Audiodef Online wrote: Thanks, Martin. But I have to confess to not knowing how to use this: (string)-[string] Perform a shell call and return the list of its output lines. (unlabeled) (string) I don't need hand-holding, but I learn best from examples. Is there an example somewhere I can read to see how it actually works in practice? Thanks, Damien On 06/27/12 20:32, Martin Konečný wrote: Look up "get_process_lines" function call. http://savonet.sourceforge.net/doc-1.0.0/reference.html O Wed, Jun 27, 2012 at 4:29 PM, Audiodef Online onl...@audiodef.com wrote: Is it possible to have a LS script execute an external script, wait for the external script to return a value, and use that value? Specifically, I would like my LS script to parse the stream's metadata. If the metadata has the literal string "unknown" (case insensitive) as the title of the track, then the LS script should execute a PHP script (via CGI, of course) and store the result of that script (which would be exactly one value - a string) and then set the metadata of the current track with the string retrieved from the PHP script. Can I do this? How would it be done? -- My music: http://audiodef.com Synthetronica: http://synthetronica.com Male survivors of domestic violence: http://abusedmen.org -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Open source radio in the cloud. Get yours now! --- http://airtime.pro Martin Konecny Software Developer, Sourcefabric martin.kone...@sourcefabric.org 720 Bathurst St. Suite 203 M5S 2R4, Toronto, ON, Canada +1 (416) 892-8420 (Cell) Skype: martin.konecny15 http://www.sourcefabric.org http://www.twitter.com/Sourcefabric -- My music: http://audiodef.com Synthetronica: http://synthetronica.com Male survivors of domestic violence: http://abusedmen.org -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] timebassed http input.
Hi, as I see some people running into this same issue time after time (as I did myself). Adding the dummy output trick helps, but users have to know the issue. Usually they run into without knowing it and need to search for the solution. Maybe its a good idea to improve this by create an additional optional parameter at the input source. If the user enables the parameter, a dummy output will be created for the source internally. By describing the parameter in the docs, users can find the solution before running into the problem and. This would wrap the solution and could prevent users running into this issue. How do you think about this? BR, Peter As you may have noticed, I also plugged an output.dummy directly onto the input.http source. This is a nice trick to make sure that even when the source is not used, its data is flushed. Without it, when the source is not used, it will keep on receiving data, which will make its internal buffer override, resulting in garbage sound and lots of log lines.. -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Question about how different outputs can operate indepedently
hi kostas, having faced a similar problem i decided to start a second liquidsoap process (this is possible) which grabs the output on localhost. in your case its input would look like: url = "" class="moz-txt-link-rfc2396E" href="http://localhost:8000/kenitarem_radio.mp3">"http://localhost:8000/kenitarem_radio.mp3" radio = mksafe(input.http(url)) regards peter On 05/15/12 23:13, kostas mitro wrote: Hi from greece I'm running liquidsoap 0.9.2 on debian squeeze and my outputs configuration is listed bellow 1 output.icecast.lame( 2 restart=true, restart_delay=3, 3 restart_on_crash=true, 4 host="localhost",port=8000, user="source", password="*", mount="kenitarem_radio.mp3", 5 genre="Various_and_Mysterious", url=""true" href="http://kenitarem.dontexist.com" target="_blank">http://kenitarem.dontexist.com", 6 description="A radio station that streams copyleft and creative commons music. Mostly ambient and experimental music.", 7 name="[Kenitarem_Radio]", bitrate=96, source) 8 9 output.icecast.lame( 10 restart=true, restart_delay=3, restart_on_crash=true, 11 host="giss.tv",port=8000, user="source", password="*", mount="kenitarem_radio.mp3", 12 genre="Various_and_Mysterious", url=""true" href="http://kenitarem.dontexist.com" target="_blank">http://kenitarem.dontexist.com", 13 description="A radio station that stream copyleft and creative commons music. Mostly ambient and experimental music.", 14 name="[Kenitarem_Radio]", bitrate=96, source) The second output to giss.tv host it is not very stable and sometimes i get cry socket error. When the disconnection occur the first output to localhost also restarts but i dont want this. i tried to remove the 2,3 lines but the output to localhost don't restart at all(of course), if the connection to giss.tv is lost temporary. How can i change the configuration so the output to localhost never restart; Is necessary to run two different instances of liquidsoap; (if this is possible) Thank you in advance And also thank you for your beautiful work in stream media name LIQUIDSOAP!!! p.s Sorry about my english. -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] live feed for limited time?
hi udo, you can do so by defining a http input stream and triggering switch in and out externally by telnet interface. #static configuration: source=input.http(id=station1, http://init/liquidsoap;) #dynamic telnet commands: #set URL source.url URL #get URL source.url #start stream source.start #stop stream source.stop this does the job. I know this is not the way you want to do it, but could be a workaround, since a livestream usually never ends. br, peter Am 01.04.2012 17:28, schrieb udo noll: hello list/eners, is it possible to fetch the input of a live (i.e. harbour) source for a limited time, e.g. based on a request, and then switch back to the main stream? it could probably be done outside of liquidsoap with mplayer -dumpstream ... but i'd like to do it with LS if possible. any tips appreciated, thanks, udo -- This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Strange startup behavior - LS 1.0.0
Hi kronos, could you send the script to the mail list? /usr/local/etc/rc.d/liquidsoap So one could have a chance to check this. Thanks, Peter Am 27.03.2012 13:19, schrieb liquids...@aolohr.com: On Wed, 28 Mar 2012 05:58:51 -0400, Mykola Dzhami...@levsha.me wrote: liquids...@aolohr.com wrote: I'm getting strange behavior starting LS after upgrading from 0.92 to 1.0.0. echo 'liquidsoap_config=/usr/local/etc/liquidsoap/liquidsoap.liq' /etc/rc.conf /usr/local/etc/rc.d/liquidsoap start Starting liquidsoap. Password: su: Sorry /usr/local/etc/rc.d/liquidsoap: WARNING: failed to start liquidsoap Probably you are try to run startup script from regular user, not from root Trying it as root; /usr/local/etc/rc.d/liquidsoap start Starting liquidsoap. Line 1, char 2 before /: Parse error! /usr/local/etc/rc.d/liquidsoap: WARNING: failed to start liquidsoap This is the same strange result I got two year ago when I first tried LS, but I can't recall how I fixed it. I will get the same error message involving the '#! from the first line of my liquidsoap.liq script (#!/usr/local/bin/liquidsoap). I normally run this script from regular user 'rcr' via crontab, and it worked flawlessly for a year. My feeling is that the owner/group perms might be messed up. Current files: /usr/local/bin/liquidsoap, /usr/local/etc/liquidsoap are rot:wheel 555 and /usr/local/etc/rc.d/liquidsoap root:wheel 755. All other files that liquidsoap would access (show files, etc) are owned by rcr:wheel with appropriate perms. Unless I can resolve the hash-bang issue, the station will remain offline. I just don't know where to look to begin resolving the problem. Any ideas? Thanks, kronos -- This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] time intervals
hello, i was trying to build a switch being valid on weekdays at 10:00h, another one doing the job on weekends. i used these two booleans: {1w-5w and 10h00m} and {6w-7w and 10h00m} the first one ran well on thursday, but today (on friday) obviously neither of them did evaluate to true. so my question is whether the right border of time intervals that are written with a dash is included or excluded from the interval (meaning that i need to write 1w-6w for weekdays monday to friday and (6w or 7w) for the weekends). thanks in advance for any help peter -- This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Use liquidsoap without reencoding
Hi Alexandru, if airtime and liquidsoap are connected by a local network you can try streaming PCM by using the %wav operator. In this case you should have no impact on sound quality or CPU (only on local network traffic). I did not check if airtime supports PCM streams, but you can tryout. BR, Peter Am 25.02.2012 00:18, schrieb Alexandru Matei: Hi! I would like to have a setup like this: use airtime to connect to a liquidsoap harbor,do a lot of things,output to icecast. I don't know if I'm able to tune in the airtime script so much to get the same behavior. Anyway, this way the audio content is reencoded two times. Is there a way to bypass reencoding in liquidsoap? I'm aware that I have to be sure I use the same rate, samplerate, number of channels. Regards, Alexandru -- Virtualization Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Virtualization Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Documentation organization (Was: what about default source for pulse client input.pulseaudio())
Hi Romain, 1) tagging is a good idea to support an additional way of finding the right help page. 2) Additionally I would like generated links to the API reference in every documentation page. API links could be specially marked up (like with a small API icon), so user has a chance to separate between normal help page links and API links. Example: http://savonet.sourceforge.net/doc-1.0.0/advanced.html You can find more details on how to configure the server in the documentation http://savonet.sourceforge.net/doc-1.0.0/help.html#settings of the settings key |server|, in particular |server.telnet| for the TCP interface and |server.socket| for the Unix interface. Liquidsoap also embeds some documentation http://savonet.sourceforge.net/doc-1.0.0/help.html#server about the available server commands. server, server.telnet and server.socket could point to the API reference. 3) Chapter titles: Generally there has been much improvement. I know its difficult to separate technical view and user view, from user perspective I prefer easily to understand usecase based documentation like control liquidsoap using telnet instead of interaction with the server. Unfortunately I am not good with this by myself, but I hope you understand what I mean :-) Another example: Interaction with the Harbor http://savonet.sourceforge.net/doc-1.0.0/harbor_http.html: a user has to read the byline to understand that this is about the HTTP server - and then to detect great, they support a HTTP server!. 4) chapter structure A newbe does not know that both server interaction and default config/log directories are covered by Advanced techniques. Vice versa if I look espacially for server interaction at documentation.html I would not expect it at the advanced point. Additionally there is a separate chapter Using in production http://savonet.sourceforge.net/doc-1.0.0/in_production.html: with the same content of /etc,/log docs. In general I have some difficulties to separate FAQ entries from cookbook entries (where do I have to look at). If I look for a special topic like playlist, I will find some information at the cookbook at files then after some different recepts at Force a file/playlist to be played at least every XX minutes and additionally some general information at quick start. From user perspective there could be a single chapter playlists which explains everything for playlists with examples and usecases, and so on. In this case tagging would not bring an advantage, providing a set of referenced pages is the same as google does. Eventually tagging subchapters/or even paragraphs and aggregating them into a single page could help, but a single playlist chapter would provide more quality for me. Today a new user will have to read through almost all pages to get a picture of if liquidsoap is the right software for what one is searching for. Because of complexity of the subject I am not sure if this can be solved at all. Maybe tagging and API references can help to find the right solution. From my view documentation.html chapter index could be changed a bit from technical view towards user view, today it's the base If I am looking for help. Thanks again for what you are doing for our community radio! BR, Peter Am 24.02.2012 22:04, schrieb Romain Beauxis: 2012/2/24 Martin Hamantmar...@sound4.biz: Okay ! I didn't know it is possible to set a PA source in the device parameter ! Romain, David : What about adding this to the documentation ? I can take care of writing a little snippet about this in the sourcefabric wiki Sure, please do :-) However, that brings a question I've been wondering about for a while now.. What do you guys think of the current documentation? I mean, I think we cover quite a lot, with or without typos (mostly by me) and mostly understandable. What I am worried about is the overall organization and how to make sure that the average user finds the most relevant page for him as quick as possible.. Thus, I'm wondering: what has been your experience guys when browsing the documentation? Would you have suggestions regarding its organization? I personally wonder about a system where documentation pages are tagged/indexed by some keywords and a free search which would redirect/show resulting pages, much like the API operator search box.. Romain -- Virtualization Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] list of tools using LS
Hi, As I have seen, you created a page containing tools, using liquidsoap http://savonet.sourceforge.net/tools.html Could you please add my google calendar integration for switching source streams to the list of tools using liquidsoap? http://dev.radiopiloten.de/dokuwiki/doku.php/liquidsoap:scheduler We use it 24/7 for about 2 years. I would feel honored! Thanks Regards, Peter Original-Nachricht Betreff:[Savonet-users] Scheduled switching of audio streams using Liquidsoap and Google calendar Datum: Sun, 05 Jun 2011 16:58:19 +0200 Von:Peter Retep peter_re...@gmx.de An: savonet-users savonet-users@lists.sourceforge.net Hi, As mentioned some time ago, I have written a stream-switch scheduler, based on liquidsoap. I would like to share the current version by this mail. The scheduler can be used to switch between live audio streams at a givendate and time. Date and time of a switch (start of starting a broadcast) can be dynamically (re)configured while scheduler and liquidsoap are running. There is a google calendar integration which allows you to define when which station (or stream URL) will be played. For each station you can define a stream URL and multiple aliases which can be used at the Google Calendar to address the station. If a second stream URL is given it will be used as fallback for the first one. The scheduler itself should run in the background and communicate with liquidsoap via telnet interface. Furthermore there is a web GUI which shows you the scheduler status or initiates manual synchronization with the Google Calendar. It should furthermore warn you on invalid URLs, missing processes running (scheduler, liquidsoap) and much more. We use the scheduler now for some weeks for receiving streams of 3 different stations at the city and put the current scheduled one to be played at the FM transmitter station. You could also use it for schedule listening to your radio, like play station A from 2 till 3, then play station B from 2 till 4, etc. The scheduler does not work with any files or playlists and can be used for audio streams only (input.http). You can find all of it here: http://dev.radiopiloten.de/dokuwiki/doku.php/liquidsoap:scheduler Thanks again to the LS team for implementing the URL.start/stop function and the output.harbor. Url.start / stop is used to dynamically set the current stream (which saves a lot of bandwidth, since only one station is connected at the same time). Output.harbor is a perfect solution for simply streaming from 1 station (liquidsoap) to another one (liquidsoap) without need to setup an additional icecast or something like this. BR, Peter -- Simplify data backup and recovery for your virtual environment with vRanger. Installation's a snap, and flexible recovery options mean your data is safe, secure and there when you need it. Discover what all the cheering's about. Get your free trial download today. http://p.sf.net/sfu/quest-dev2dev2 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] Incorrect stream type! on mono streams w/wo audio_to_stereo
Hi, a happy new year! Mostly we stream stereo but sometimes some sources are mono. In the past we got Incorrect stream type! and fails, but then there was the audio_to_stereo invention. I upgraded to latest hg and tried to switch from a stereo to a mono stream by using the audio_to_stereo operation applied to all sources. Unfortunately this does not help and fallback is played as without audio_to_stereo. Error messages is same as without audio_to_stereo: Incorrect stream type! Do you have any idea? station1.url http://mp3-live.swr.de/swr1bw_s.m3u station1.url.play config: station1= input.http(id=station1, http://localhost:8000/default1;) # stereo stream station2= input.http(id=station2, http://localhost:8000/defaul2;)# stereo stream net_outage = mksafe(single(id=net_outage, var/media/outage.mp3)) station1= audio_to_stereo(station1) station2= audio_to_stereo(station2) net_outage = audio_to_stereo(net_outage) radio = fallback( id=http_input fallback, track_sensitive=false, [ station1, station2, net_outage ] ) output.alsa(device=pcm.liquidsoap,radio) output.dummy(fallible=true, station1); output.dummy(fallible=true, station2); ... output.icecast( %vorbis.cbr(samplerate=44100, channels=2, bitrate=160), %include icecast.inc, #restart=true, radio ) logs: 2012/01/02 14:55:15 [decoder:3] Method MP3 accepted audio/mpeg. 2012/01/02 14:55:15 [station1:3] Decoding... 2012/01/02 14:55:16 [station1:3] New metadata chunk: ? -- . 2012/01/02 14:55:16 [station1:3] Buffer overrun: Dropping 0.01s. ... 2012/01/02 14:55:16 [station1:3] Buffer overrun: Dropping 0.03s. 2012/01/02 14:55:16 [station1:3] Incorrect stream type! 2012/01/02 14:55:16 [http_input_fallback:3] Switch to fallback_4969 with forgetful transition. 2012/01/02 14:55:16 [station1:2] Feeding stopped: Incorrect stream type! 2012/01/02 14:55:16 [dummy:3] Source failed (no more tracks) stopping output... 2012/01/02 14:55:18 [decoder:3] Method MP3 accepted audio/mpeg. ... btw, whats the right replacement for restart=true, in output.icecast? Thanks BR, Peter -- Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Rotating Archives
Hi, try this one: I guess you are talking about audio archives and not about log archives... output.file( %wav(stereo=true), /mnt/archive/raw/%Y-%m-%d/%Y-%m-%d-%H_%M_%S.wav, on_close=fun(s)-system(qwavheaderdump -F #{s}), reopen_when={0m0s}, mksafe(radio) ) this will hourly save a new audio archive file. You need to install quelcom package to use qwavheaderdump (in case of any process stops, wav header will be correct) You can remove on_close line, if you do not use it. You could use other reopen_when intervals ({0m0s} is hourly, {0h0m0s} is daily.) You can use other file directory and filenaming. please see output.file docu for mor details http://savonet.sourceforge.net/doc-svn/reference.html#output_file BR, Peter Am 02.01.2012 16:17, schrieb frede...@perrod.org: Pascal Vanbel - Radio Universitaire Namuroisep...@run.be a écrit : Hello, Is it possible to create one archive by day without restarting the daemon ? Something like kill -USR1 works on darkice for example to force reopen new archive files Thx a lot PVB Hi, Do you mean an audio archive? At the moment, I'm trying to settle this in my project. I'm already able to transcode-record my stream in a local file and it works very well(24 Kb/s, 16 Khz, mono to save disk space). Now, I've planned to experiment on using unix logrotate utility to store daily a new time stamped archive, but not tested yet. This should work without needing to kill or restart the output stream and should be totally automated rotating on a monthly basis. Does this correspond to your needs? Fred -- Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] LS source build dependency list
Hi, could you please add g++ libtool to the list of required libs for building from source (at ubuntu 10.04). http://savonet.sourceforge.net/doc-svn/build.html ./bootstrap complains about missing libtool. g++ will be needed for configuration/make as far as I remember. Thanks regards, Peter *** bootstrapping ocaml-cry Can't exec libtoolize: Datei oder Verzeichnis nicht gefunden at /usr/bin/autoreconf line 189. Use of uninitialized value in pattern match (m//) at /usr/bin/autoreconf line 189. -- Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Incorrect stream type! on mono streams w/wo audio_to_stereo
Hi, thanks for your fast answer. In general I switch between several source streams, but do not know if they are mono or stereo. As I understand the source() of your example this would handle all streams s as mono - would this work even for stereo streams? Thus, you need to force the type to a mono stream this way: # Mono input.http s = (input.http(http://radiopi.org:8080/reggae;):source(1,0,0)) BR, Peter Am 03.01.2012 04:09, schrieb Romain Beauxis: 2012/1/2 Peter Reteppeter_re...@gmx.de: Hi, Hi Peter! a happy new year! Happy new year to you too! Mostly we stream stereo but sometimes some sources are mono. In the past we got Incorrect stream type! and fails, but then there was the audio_to_stereo invention. I upgraded to latest hg and tried to switch from a stereo to a mono stream by using the audio_to_stereo operation applied to all sources. Unfortunately this does not help and fallback is played as without audio_to_stereo. Error messages is same as without audio_to_stereo: Incorrect stream type! Do you have any idea? Yes, there is a glitch that we need to document more: default source type for input.http and input.harbor is to expect stereo streams. Thus, you need to force the type to a mono stream this way: # Mono input.http s = (input.http(http://radiopi.org:8080/reggae;):source(1,0,0)) David commented on this and should be a better reference that me concerning this issue: http://www.mail-archive.com/savonet-users@lists.sourceforge.net/msg03850.html station1.url http://mp3-live.swr.de/swr1bw_s.m3u station1.url.play config: station1= input.http(id=station1, http://localhost:8000/default1;) # stereo stream station2= input.http(id=station2, http://localhost:8000/defaul2;) # stereo stream net_outage = mksafe(single(id=net_outage, var/media/outage.mp3)) station1= audio_to_stereo(station1) station2= audio_to_stereo(station2) net_outage = audio_to_stereo(net_outage) radio = fallback( id=http_input fallback, track_sensitive=false, [ station1, station2, net_outage ] ) output.alsa(device=pcm.liquidsoap,radio) output.dummy(fallible=true, station1); output.dummy(fallible=true, station2); ... output.icecast( %vorbis.cbr(samplerate=44100, channels=2, bitrate=160), %include icecast.inc, #restart=true, radio ) logs: 2012/01/02 14:55:15 [decoder:3] Method MP3 accepted audio/mpeg. 2012/01/02 14:55:15 [station1:3] Decoding... 2012/01/02 14:55:16 [station1:3] New metadata chunk: ? -- . 2012/01/02 14:55:16 [station1:3] Buffer overrun: Dropping 0.01s. ... 2012/01/02 14:55:16 [station1:3] Buffer overrun: Dropping 0.03s. 2012/01/02 14:55:16 [station1:3] Incorrect stream type! 2012/01/02 14:55:16 [http_input_fallback:3] Switch to fallback_4969 with forgetful transition. 2012/01/02 14:55:16 [station1:2] Feeding stopped: Incorrect stream type! 2012/01/02 14:55:16 [dummy:3] Source failed (no more tracks) stopping output... 2012/01/02 14:55:18 [decoder:3] Method MP3 accepted audio/mpeg. ... btw, whats the right replacement for restart=true, in output.icecast? The restart argument was super seeded by a new on_error callback. This callback is executed every time an error occurs. It receives a string representation of the error that occurred and returns a float. If this float is positive, connection will be tried again after its value, in seconds. Otherwise, connection is not retried. Default callback is: fun (_) - 3., that is: restart after 3 seconds. Romain -- Write once. Port to many. Get the SDK and tools to simplify cross-platform app development. Create new or port existing apps to sell to consumers worldwide. Explore the Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join http://p.sf.net/sfu/intel-appdev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Advanced Socket Function
Am 02.12.2011 23:17, schrieb David Baelde: Hi, The HTTP input has a url command that returns the current URL, or sets a new one if an URL is passed as argument. In the previous example, that would be live.url http://etc;. A combined command can be created from the following function: def start_live(url) server.execute(live.url #{url}) server.execute(live.start) end If you want to use that command to change the URL of a HTTP input _while it is running_ you should execute live.stop before restarting it: otherwise it'll keep running with the old URL. Cheers, We are using this feature intensively to switch between several radio stations. From my experience you should additionally wait some time (seconds) between stopping the old and starting the new stream. If you start before the old one has really stopped, the old URL sometimes will be played again. BR, Peter -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-novd2d ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] New domain liquidsoap.fm and new flows services!
Hi Romain, thanks for update! I have not sent any requests to the list during last time since liquidsoap ist still doing a perfect 24/7 job for years at our radio network. We are running mostly live content from the studios, so there are no metatags in the streams at all. Title, URL, location and description of the current broadcast is given by an external calendar. Additionally we have currently 4 geographically distributed locations we stream from, but we are sharing FM online time (only one station is online at FM transmitter at the same time). Since we have had problems at the decoder side - using OGG CBR streams and - metadata updates from the calendar at the same time, we finally disabled flows for stream stability reasons in live mode. To re-join the flows network again I could create a separate liquidsoap instance with flows enabled which just inserts the currently sending station's metadata to an empty stream, but this seems resource overkill to me. Is there a more simple way to just push the current metadata from the calendar directly to flows? I can get the current broadcast title, URL and location from the calendar without any problem. (Today we also push the current broadcast to twitter so this could be easily adopted to push to flows protocol additionally). Thanks in advance! Peter Am 28.11.2011 04:39, schrieb Romain Beauxis: Hi all! Please meet the new URL for savonet/liquidsoap's website: http://liquidsoap.fm/ Furthermore, following the previous announcement, new flows service have been created. They are documented there: http://liquidsoap.fm/flows-user.html In particular, the real-time notification service should be very useful for those of you that want to display information what is currently being played by their radio. We hope that these new services will be useful to a lot of you guys! Romain -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-novd2d ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-novd2d ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Liquidsoap 1.0.0
congratulations from piradio and radiopiloten, too. liquidsoap spent us a lot of beauty sleep, because we always could trust in it's stability and reliability. go on like this! best wishes, Peter Am 09.10.2011 22:21, schrieb David Baelde: Dear all, After several beta versions, a release candidate and lots of local tests... Samuel, Romain and I are proud to announce the release of liquidsoap 1.0.0! Although many people already use liquidsoap in various production settings, this is an important milestone for the project. We consider this version stable and well designed, we'll maintain it as it is, doing our best to ensure backward compatibility. Of course, we also already have several important ideas for the future, but we'll take a break before starting to move towards 2.0 ;) As usual, download from our sourceforge page: http://sourceforge.net/projects/savonet/ We hope you'll enjoy it. Don't hesitate to spread the word, and don't forget to register into the Flows which is absurdly Franco-French at the moment (http://savonet.sourceforge.net/flows.html). ** Background Liquidsoap is a programming language for multimedia stream processing, mainly used in building complex netradios. This design makes it a flexible tool: we believe that liquidsoap is easy to get started with for a simple project, but the programmability and the many features make it possible to extend your system beyond what any other tool can do in that domain. ** History Credits Not counting a demo in 2004 at ENS Lyon, Liquidsoap's first release was the 0.2.0 in 2005. The 0.3.0 line brought the first stable versions, used in productions with uptimes of months. In 2009, we started the 0.9.0 line, determined to bring what we considered to be the missing features for 1.0.0: per-source stream types (mono in one source, stereo in the other, video in yet another) and clocks. The first 1.0.0 beta version came up in Sept 2010, and we've mostly been stabilizing since then -- although a few important features were also introduced, notably the seek support, v4l input, minimal HTTP icecast server capabilities, OSC support. Liquidsoap's main developers are David Baelde, Romain Beauxis and Samuel Mimram. But the project has benefited from the contributions of many more people, including Vincent Tabard, Julien Cristau, Stéphane Gimenez, and many more from year when liquidsoap was a students' project at ENS Lyon. We'd also like to thank the many people hacking liquidsoap scripts, building tools on top of it, who bring valuable feedback and ideas. ** Changelog This is the changelog for 1.0.0 only. If you're migrating from a version of liquidsoap older than the beta3, don't forget to check the full CHANGES file for migration tips! 1.0.0 (08-10-2011) == Finally, the 1.0.0 release! It brings several important fixes, but also some nice novelties. The most outstanding difference concerns output.icecast(): its restart and restart_delay parameters are gone, replaced by a new on_stop handler which is called on every error (failed connection or disconnection) and returns the new restart delay. The on_error handler receives a string describing the error which enables user-friendly reporting, adaptative delays, etc. Note that on_error defaults to fun(_)-3. which is equivalent to having restart=true, restart_delay=3. in previous versions, NOT the same as the former restart=false default. As a result, liquidsoap won't fail to startup if an initial connection attempt fails. == Fixes: - LS-532,527: avoid freeze after errors in streaming threads or source initialization routines - LS-542: race condition in playlist*() breaking randomness - LS-489: double expiration lead to illegal queue length and freeze of request-based sources - Avoid multiple simultaneous reloading in playlist*(), thanks to Fabio Costa for his help on this one! - Pass charset information to icecast server to avoid encoding bugs - LS-555: timeout for icecast connection attempts - LS-559: permanent stop after disconnection on Ogg streams - LS-565: efficient and crash-free error handling in input.http/harbor() when the input stream has an invalid number of channels - LS-431: proper handling of duration in blank() avoids abusive empty tracks - LS-556: rework conversion operators, optimizations used to be unsafe broken - LS-574: silent MIDI synthesis operators - LS-396: drop*()'s types reflect that they don't support variable arities - LS-442: allow comments not terminated by newline at end of file New: - on_error handler in output.icecast(), see above - New msg param in %mp3 for marking frame headers, defaults to version string - output.file(): new on_close parameter, may be used to write exact duration - %mp3.vbr/abr for variable bitrate MP3, %mp3 is now a synonym of %mp3.cbr - MP3 encoders now support ID3v2 tags - input.http(): new status command - LS-556
Re: [Savonet-users] Release/beer party on october 4th in Paris
Hi, congratulations and have a lot of fun! (but save your power for the journey towards 2.0 :-) I wish I could join you today, Peter Am 07.09.2011 15:33, schrieb Romain Beauxis: Dear all, After about a year and a half of active development, 3 (and a half) beta releases, lots of bug fixes, half a dozen of apt packages and many (many) beers, the time for a proper release has finally come! Coincidentally, all developers are currently in Paris and it would be a shame to not take this opportunity to meet and have fun together! Thus, we have decided to invite all interested users to a beer-release party next month to celebrate the first 1.0.0 stable release of Liquidsoap!! Details are: Event: Savonet/Liquidsoap beer/release party Day: October, 4th Time: 7 PM Place: Bière Academy, 7 Rue Ecoles, 75005 Paris It has been a long way since the last savonet beer and we are all very excited to meet again with you guys! Feel free to step in, with your questions, stories or simply to come and celebrate with us! In the mean time, you are all welcome to torture the latest beta release (1.0.0~beta3) or, better, the latest hg code and report all bugs and issues you experiment. We need your bugs, we need fixes!! :-) See you there! Romain -- Using storage to extend the benefits of virtualization and iSCSI Virtualization increases hardware utilization and delivers a new level of agility. Learn what those decisions are and how to modernize your storage and backup environments for virtualization. http://www.accelacomm.com/jaw/sfnl/114/51434361/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Strange behaviours of configure and make scripts
Hi This one is a recurrent one.. Other user (Peter) reported that the problem went away by starting from scratch with a proper ./bootstrap It think the deinstall/install of all soundtouch libs could have beed important. Since this behaviour did only occur sometimes in the past, it could be related to update installation (or if any older soundtouch lib is installed) only. I remember some threads on this a long time ago. Is Peter sure to have soundtouch activated? Peter is sure: liquidsoap --list-plugins | grep soundtouch + soundtouch BR, Peter -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] web doc proposals
Hi Romain, thanks for this fast implementation! two things I figured out: 1) after installing libxml-dom-perl (see 2) I get the following error: Converting content/video-static.txt to html/video-static.html... CAML_LD_LIBRARY_PATH=../src:../src/plugins ../src/liquidsoap --dynamic-plugins-dir ../src/plugins \ --no-pervasives ../scripts/pervasives.liq --list-plugins-xml | \ ./reference_to_liqi.pl content/reference.txt Can't use string (__) as an ARRAY ref while strict refs in use at ./reference_to_liqi.pl line 98. make[2]: *** [content/reference.txt] Fehler 9 make[2]: Verlasse Verzeichnis '/home/milan/radio/savonet.hg/savonet/liquidsoap/doc' make[1]: *** [doc-install] Fehler 2 make[1]: Verlasse Verzeichnis '/home/milan/radio/savonet.hg/savonet/liquidsoap' make: *** [install] Fehler 2 2) documentation cannot be generated if libxml-dom-perl is not installed. Currently there is no info about this at the summary after configure. Instead there are following lines. I wish at least a WARN hint to allow grep for WARNings or ERRORs: Converting content/video-static.txt to html/video-static.html... - You don't seem to have perl XML::DOM module installed. - Language reference cannot be generated. For more convinience there could be a additional status line for doc generation at end of configure... BR, Peter Am 02.10.2011 16:46, schrieb Romain Beauxis: 2011/10/1 Peter Reteppeter_re...@gmx.de: Hi, Hi Peter! Switching the savonet homepage to web 2.0 by using jquery's show/hide feature makes the site comfortable to use. Unfortunately deep links using #anchors do not work anymore everywhere . in case you are bored by fixing sound related errors I have some ideas on this: For instance lets take the reference page: http://savonet.sourceforge.net/doc-1.0.0-beta3/reference.html There are sections like source/output and elements like output.file. If one wants to reference one of both items, (as I tried to do in my last mail to Josh) one could do this by using section/element anchors: http://savonet.sourceforge.net/doc-1.0.0-beta3/reference.html#SourceOutput http://savonet.sourceforge.net/doc-1.0.0-beta3/reference.html#output_file For users without javascript it would be helpful - to put aa name=output_file before the links of sections and elements. - to put the link href to this anchor. In this case the link href could be set to #output_file. This enables browsers to jump to the right section/element when loading a page, referenced like above. For users with javascript enabled, following code could be used to show all sections or elements that are addressed in the URLwhen the page gets loaded : $(document).ready(function() { var parts=document.URL.split(#); if (parts.length1){ var id=#+parts[1]; $(id).parent().parent().show(); $(id).siblings().show(); } }); This was working already today for elements, since they provide a id already (like #output_file), It could work even for sections, but sections have no id today (like #SourceOutput). These changes would make the sections and elements linkable with both web 1.0 and 2.0. A more generic and efficient way would be, to provide for both items (sections and elements) - an anchor with the name of the link target - a link targeting this anchor - the content div which contains the id used to show/hide this element. example li !-- provide a section anchor -- a name=SourceOutput / !-- set link target to section anchor -- a href=#SourceOutputSource / Output/a !-- have an id at the content to show/hide the content -- ul id=#SourceOutput class=liq-api-sec style=display: none; li class=liq-api-elem !-- provide a anchor -- a base=output_file / !-- move id to content div, set link target to output_file -- a href=#output_fileoutput.file/a !-- have an id at the content to show/hide the content -- div id=output_file class=liq-api-content style=display: none; pre(?id:string,?append:bool,?dir_perm:int,?fallible:bool,.../pre ... /div /li ... /ul /li With help of this changes you could do directly $(id).show(); instead of $(id).siblings().show(); if id, anchor, and link target contain the same value, you could use the link target (href) to address the content div id, which is to be shown/hidden. anyway, the page works good as it is. Thanks for all those suggestions! I have juste commited an implementation of it!! Romain -- All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2dcopy2
Re: [Savonet-users] web doc proposals
Hi Romain. it works again! Thanks, Peter Am 02.10.2011 18:50, schrieb Romain Beauxis: 2011/10/2 Peter Reteppeter_re...@gmx.de: Hi Romain, Hi! thanks for this fast implementation! two things I figured out: 1) after installing libxml-dom-perl (see 2) I get the following error: Converting content/video-static.txt to html/video-static.html... CAML_LD_LIBRARY_PATH=../src:../src/plugins ../src/liquidsoap --dynamic-plugins-dir ../src/plugins \ --no-pervasives ../scripts/pervasives.liq --list-plugins-xml | \ ./reference_to_liqi.pl content/reference.txt Can't use string (__) as an ARRAY ref while strict refs in use at ./reference_to_liqi.pl line 98. make[2]: *** [content/reference.txt] Fehler 9 make[2]: Verlasse Verzeichnis '/home/milan/radio/savonet.hg/savonet/liquidsoap/doc' make[1]: *** [doc-install] Fehler 2 make[1]: Verlasse Verzeichnis '/home/milan/radio/savonet.hg/savonet/liquidsoap' make: *** [install] Fehler 2 This is fixed now.. 2) documentation cannot be generated if libxml-dom-perl is not installed. Currently there is no info about this at the summary after configure. Instead there are following lines. I wish at least a WARN hint to allow grep for WARNings or ERRORs: Converting content/video-static.txt to html/video-static.html... - You don't seem to have perl XML::DOM module installed. - Language reference cannot be generated. For more convinience there could be a additional status line for doc generation at end of configure... You're right about this, we could make it more visible that this module is missing.. Romain -- All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2dcopy2 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] using pulseaudio mix as input
Hi Romain, Thanks for your input! I totally agree, using a filesystem allows a lot of flexibility with a range from using mounted external storages up to using distributed web storages (like wuala, dropbox, etc) or any other virtual mapping. Back to the topic itself: I made it using pacmd from pulseaudio-utils. paman showed me the way to this. example without soundcard: pacmd list-sources | grep name: name: auto_null.monitor liquidsoap 'output.file(%mp3, /tmp/test.mp3 ,input.pulseaudio(device=auto_null.monitor) )' example with soundcard: pacmd list-sources | grep name: name: alsa_output.usb-M_Audio_USB_Audio_Quattro-00-Quattro.analog-stereo.monitor liquidsoap 'output.file(%mp3, /tmp/test.mp3 ,input.pulseaudio(alsa_output.usb-M_Audio_USB_Audio_Quattro-00-Quattro.analog-stereo.monitor) )' the mp3.file contains everything that was played by vlc during the recording time. So basically this seems to work (I have made no extended tests up to now). Good to know that you can just plug in any sound source to liquidsoap by still using pulseaudio monitors! Once more this shows to me the advantage of unix philosophy and of providing generic interfaces! Thanks for supporting this! BR, Peter Am 28.09.2011 01:16, schrieb Romain Beauxis: Hi all ! I like the idea of a file system -- file systems and file hierarchy always seem more intuitive to people.. One idea tho: what about actually running a _virtual_ file system using fuse? You could then map a database and any kind of storage to a fuse-based filesystem. User drops a file, DB is updated and file moved to storage.. Also, all directories are created at once and the structure can be constrained to only have valid path and perhaps files etc.. Finally, you can easily map this to another view, for instance a web site.. BTW, concerning pulse devices, I think you can use pulse's tools such as paman and the like.. Romain 2011/9/27 Peter Reteppeter_re...@gmx.de: Hi Damien, If a user does not follow the convention, his/her files will not be played. Usually all shows are planned some weeks or days before. We use a google calendar for planning this. The calendar synchronisation creates all directories from this and additionally creates the website entries with all show descriptions. So mostly user dont need to create any directories, since this is automatically done if the show is scheduled at the calendar. So user just needs to drop its mp3 file into the right directory. If there is a urgent need (e.g. someone has forgotten to schedule the show) he sees all existing directories and can use them as template for the path convention. User does not even has to take care of the file name or any metatags (except correct audio duration metadata). The scheduler writes frequently current and next show to log. So you can check for errors, before the scheduler (or a cron job) would try to start a non-existing file. Additionally I do not want to need the user to care about correct file paths in the jobs. All of this should help to prevent misconfiguration or user errors. There are multiple reasons why I do not to use a cron job for this: - Most users I know, do not know even what a cron job is or what faults you can do when writing one. Additionally I would not like a separate cron job for each show (imagine 24 shows a day, 365 days a year, ok, today we have only around 10 preproduced shows a week). - If there are any changes needed, the user just needs to update the file system. So there is no database or any other redundant definition (like cron) of what is to be played when. - Furthermore the scheduler checks frequently if the current show player is running. If not, the start of the show will be cutted and played from the current position. This is useful for reboots due to power outages and other outages like process failures. The scheduler would be respawned by upstart on failure. Another case like this: the user puts the file at the right directory still one minute after the show should have been started (many users I deal with deliver their productions at the last minute .-) As you can see the scheduler does a lot more than still starting a file at a certain time (e.g. logging, process audits, house keeping, etc.) to keep everything running BR, Peter Am 27.09.2011 20:33, schrieb Audiodef Online: That looks useful. What if a user doesn't follow the correct dir/file structure format? What advantage does this have over using a cronjob? Just wondering. :-) Damien On 09/27/11 18:03, Peter Retep wrote: Hi, I am trying to use the pulseaudio mix channel as input for liquidsoap. Do you know how I can find out the names of available pulseaudio devices? I played around with the names I see at audacity but unfortunately I did not succeed. e.g. the following line will not work, since 'mix' is not the right device name
Re: [Savonet-users] installation: required repositories/packages to build from HG (aac, aac+, soundtouch)
Hi Romain, I retested with cleaning make, deinstall and install soundtouch libs and then it worked. I am not sure in which situations it is necessary to remove/install soundtouch, I have seen this seldomly on several systems. Sometimes I need to reinstall these libs before installation and sometimes it works without doing so. Maybe it is enough to put this seldom case to the installation hints. sudo make clean sudo apt-get remove libsoundtouch* sudo apt-get install libsoundtouch* ./configure make sudo make install BR, Peter PS: I am just wondering why I need to call make clean with super user rights. Some files cannot be removed if I call it with the same user as I make it. Are there some files created with super user at the source directories , when calling make install? Am 01.10.2011 10:42, schrieb Romain Beauxis: 2011/10/1 Peter Reteppeter_re...@gmx.de: Hi Romain, Hi! thanks for your answer. For aacplusenc and libaacplus-dec there is no package in the ubuntu repository nor the medibuntu repository. Could I use the debian repositories instead? That could work indeed. Installation without soundtouch worked if I removed all existing soundtouch libraries from the system, disabled soundtouch from PACKAGES and called ./configure again. I did not get it working with using soundtouch in the PACKAGES file. Since I do not need this, it is big no issue, I just remember I had the same situation when I tried to enable soundtouch the last time I tried to install from HG. Since we are releasing soon, we could use your logs to see if we can fix our build system before :-) Romain -- All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2dcopy2 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] output.file
Hi Josh, output.file( %mp3(bitrate=160), /tmp/%Y-%m-%d-%H_%M_%S.mp3, reopen_when={0m0s}, radio) consists of: %mp3(bitrate=160) the encoder (mp3) and its options (mono/stereo, bitrate, frequency...) reopen_when={0m0s} creates a new file every hour (minute=00, second=00) /tmp/%Y-%m-%d-%H_%M_%S.mp3 the output path/file pattern, containing the date and time when starting to record a file. %Y is current year %m is current month %d is current day %H is current hour %M is current minute %S is current seconds this would create a file /tmp/2011-10-01_19-10.mp3 at You can adopt this pattern to your needs. Here you can find the full help with the description of all additional options click at SourceOutput / output.file http://savonet.sourceforge.net/doc-1.0.0-beta3/reference.html BR, Peter Am 01.10.2011 18:10, schrieb Josh: hi all, is there a way to put the date and time on output.file? I got told last time, but didn't get told what they meant. -- All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2dcopy2 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2dcopy2 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] web doc proposals
Hi, Switching the savonet homepage to web 2.0 by using jquery's show/hide feature makes the site comfortable to use. Unfortunately deep links using #anchors do not work anymore everywhere . in case you are bored by fixing sound related errors I have some ideas on this: For instance lets take the reference page: http://savonet.sourceforge.net/doc-1.0.0-beta3/reference.html There are sections like source/output and elements like output.file. If one wants to reference one of both items, (as I tried to do in my last mail to Josh) one could do this by using section/element anchors: http://savonet.sourceforge.net/doc-1.0.0-beta3/reference.html#SourceOutput http://savonet.sourceforge.net/doc-1.0.0-beta3/reference.html#output_file For users without javascript it would be helpful - to put a a name=output_file before the links of sections and elements. - to put the link href to this anchor. In this case the link href could be set to #output_file. This enables browsers to jump to the right section/element when loading a page, referenced like above. For users with javascript enabled, following code could be used to show all sections or elements that are addressed in the URLwhen the page gets loaded : $(document).ready(function() { var parts=document.URL.split(#); if (parts.length1){ var id=#+parts[1]; $(id).parent().parent().show(); $(id).siblings().show(); } }); This was working already today for elements, since they provide a id already (like #output_file), It could work even for sections, but sections have no id today (like #SourceOutput). These changes would make the sections and elements linkable with both web 1.0 and 2.0. A more generic and efficient way would be, to provide for both items (sections and elements) - an anchor with the name of the link target - a link targeting this anchor - the content div which contains the id used to show/hide this element. example li !-- provide a section anchor -- a name=SourceOutput / !-- set link target to section anchor -- a href=#SourceOutputSource / Output/a !-- have an id at the content to show/hide the content -- ul id=#SourceOutput class=liq-api-sec style=display: none; li class=liq-api-elem !-- provide a anchor -- a base=output_file / !-- move id to content div, set link target to output_file -- a href=#output_fileoutput.file/a !-- have an id at the content to show/hide the content -- div id=output_file class=liq-api-content style=display: none; pre(?id:string,?append:bool,?dir_perm:int,?fallible:bool,.../pre ... /div /li ... /ul /li With help of this changes you could do directly $(id).show(); instead of $(id).siblings().show(); if id, anchor, and link target contain the same value, you could use the link target (href) to address the content div id, which is to be shown/hidden. anyway, the page works good as it is. BR, Peter -- All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2dcopy2 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] installation: required repositories/packages to build from HG (aac, aac+, soundtouch)
I just tried to install current version from latest HG. There are some install dependencies I cannot resolve. As I have learned for most package I need the libxxx and the libxxx-ocaml-dev package to get it installed. With Ubuntu 11.04 I do not know the repositories and packages for AAC and AAC+ and soundtouch which are required to put liquidsoap on top from HG. aacplus: checking pkg-config is at least version 0.9.0... yes checking whether pkg-config knows about aacplus = 2.0.1... configure: error: aacplus not found i have installed: aacplusenc voaaccenc: checking pkg-config is at least version 0.9.0... yes checking whether pkg-config knows about vo-aacenc = 0.1.0... configure: error: vo-aacenc not found i have installed: libfaac0 libfaac-dev libfaad0 libfaad2 libfaad-dev soundtouch (at make): /home/piradio/savonet/liquidsoap/../ocaml-soundtouch/src/libsoundtouch_stubs.a(soundtouch_stubs.o): In function `ocaml_st_bpm_make': soundtouch_stubs.cc:(.text+0x63a): undefined reference to `BPMDetect::BPMDetect(int, int)' /home/piradio/savonet/liquidsoap/../ocaml-soundtouch/src/libsoundtouch_stubs.a(soundtouch_stubs.o): In function `ocaml_st_bpm_putsamples_ni': soundtouch_stubs.cc:(.text+0x805): undefined reference to `BPMDetect::inputSamples(float*, int)' /home/piradio/savonet/liquidsoap/../ocaml-soundtouch/src/libsoundtouch_stubs.a(soundtouch_stubs.o): In function `ocaml_st_bpm_get_bpm': soundtouch_stubs.cc:(.text+0x855): undefined reference to `BPMDetect::getBpm()' collect2: ld returned 1 exit status i have installed:libsoundtouch0 libsoundtouch0-dbg libsoundtouch1c2 libsoundtouch1-dev libsoundtouch-dev libsoundtouch-ocaml libsoundtouch-ocaml-dev In the past I did not use these modules (aac/soundtouch,..), but I think it could help upcoming users to know what repositories/packages are required to setup from HG. E.g. I like the way like ubuntu wiki does, where you can copy a 'apt-get install' line which contains all the needed reps packages to ease your installation. BR, Peter -- All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2dcopy2 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] error on making doc
Hi, on updating from previous HG to current HG release at making docs I get: sudo make install make -C liquidsoap install make[1]: Entering directory `/home/piradio/savonet/liquidsoap' make -C doc doc-install make[2]: Entering directory `/home/piradio/savonet/liquidsoap/doc' make[3]: Entering directory `/home/piradio/savonet/liquidsoap/doc/content' make[3]: Leaving directory `/home/piradio/savonet/liquidsoap/doc/content' make[3]: Entering directory `/home/piradio/savonet/liquidsoap/doc/liqi' make[4]: Entering directory `/home/piradio/savonet/liquidsoap/doc/liqi' make[4]: `liqi' is up to date. make[4]: Leaving directory `/home/piradio/savonet/liquidsoap/doc/liqi' make[3]: Leaving directory `/home/piradio/savonet/liquidsoap/doc/liqi' /usr/bin/install -c -d /usr/local/share/doc/liquidsoap-1.0.0-beta3+svn/html cp -rf html/* /usr/local/share/doc/liquidsoap-1.0.0-beta3+svn/html cp: cannot overwrite directory `/usr/local/share/doc/liquidsoap-1.0.0-beta3+svn/html/images' with non-directory make[2]: *** [doc-install] Error 1 make[2]: Leaving directory `/home/piradio/savonet/liquidsoap/doc' make[1]: *** [doc-install] Error 2 make[1]: Leaving directory `/home/piradio/savonet/liquidsoap' make: *** [install] Error 2 this seems to be an update installation error, only lrwxrwxrwx 1 root root 28 Sep 30 19:38 /usr/local/share/doc/liquidsoap-1.0.0-beta3+svn/html/images - ../../../website/orig/images if I remove the link sudo rm -rf /usr/local/share/doc/liquidsoap-1.0.0-beta3+svn/html/images the installation finishs successfully. BR, Peter -- All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2dcopy2 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] installation: required repositories/packages to build from HG (aac, aac+, soundtouch)
Hi Romain, thanks for your answer. For aacplusenc and libaacplus-dec there is no package in the ubuntu repository nor the medibuntu repository. Could I use the debian repositories instead? Installation without soundtouch worked if I removed all existing soundtouch libraries from the system, disabled soundtouch from PACKAGES and called ./configure again. I did not get it working with using soundtouch in the PACKAGES file. Since I do not need this, it is big no issue, I just remember I had the same situation when I tried to enable soundtouch the last time I tried to install from HG. BR, Peter Am 01.10.2011 00:42, schrieb Romain Beauxis: Hi Peter! 2011/9/30 Peter Reteppeter_re...@gmx.de: I just tried to install current version from latest HG. There are some install dependencies I cannot resolve. As I have learned for most package I need the libxxx and the libxxx-ocaml-dev package to get it installed. With Ubuntu 11.04 I do not know the repositories and packages for AAC and AAC+ and soundtouch which are required to put liquidsoap on top from HG. aacplus: checking pkg-config is at least version 0.9.0... yes checking whether pkg-config knows about aacplus= 2.0.1... configure: error: aacplus not found i have installed: aacplusenc You need libaacplus-dec, which is different than aacplusenc (sorry for that!) and provided by debian-multimedia. voaaccenc: checking pkg-config is at least version 0.9.0... yes checking whether pkg-config knows about vo-aacenc= 0.1.0... configure: error: vo-aacenc not found i have installed: libfaac0 libfaac-dev libfaad0 libfaad2 libfaad-dev You need libvo-aacenc-dev, which is only available for testing and unstable (debian) at the moment.. Maybe you could recompile it? soundtouch (at make): /home/piradio/savonet/liquidsoap/../ocaml-soundtouch/src/libsoundtouch_stubs.a(soundtouch_stubs.o): In function `ocaml_st_bpm_make': soundtouch_stubs.cc:(.text+0x63a): undefined reference to `BPMDetect::BPMDetect(int, int)' /home/piradio/savonet/liquidsoap/../ocaml-soundtouch/src/libsoundtouch_stubs.a(soundtouch_stubs.o): In function `ocaml_st_bpm_putsamples_ni': soundtouch_stubs.cc:(.text+0x805): undefined reference to `BPMDetect::inputSamples(float*, int)' /home/piradio/savonet/liquidsoap/../ocaml-soundtouch/src/libsoundtouch_stubs.a(soundtouch_stubs.o): In function `ocaml_st_bpm_get_bpm': soundtouch_stubs.cc:(.text+0x855): undefined reference to `BPMDetect::getBpm()' collect2: ld returned 1 exit status i have installed:libsoundtouch0 libsoundtouch0-dbg libsoundtouch1c2 libsoundtouch1-dev libsoundtouch-dev libsoundtouch-ocaml libsoundtouch-ocaml-dev This is a compilation issue.. Which debian distribution do you use? You could give me the output of ./configure run from this folder? Also, you should remove libsoundtouch-ocaml-dev and more generally any packaged OCaml module that you are also compiling from source, in order to avoid liquidsoap picking up the wrong version.. In the past I did not use these modules (aac/soundtouch,..), but I think it could help upcoming users to know what repositories/packages are required to setup from HG. E.g. I like the way like ubuntu wiki does, where you can copy a 'apt-get install' line which contains all the needed reps packages to ease your installation. Yes, I will do that for the release.. In the mean time, except for libaacplus-dev, they are all listed there: http://packages.debian.org/source/sid/liquidsoap The only difference is that all X11 and python related packages are used to build stuff you probably dont need.. Romain -- All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2dcopy2 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Freezing before 1.0: time to test heavily!
Hi David, I will play around with this, but cannot start before next weekend. BR, Peter Am 28.09.2011 16:18, schrieb David Baelde: Dear users, Romain and I have been closing tickets like crazy for the past few days. Most of them were pretty trivial, but some are important are tricky. We have run many tests, but we'd be grateful if you could run your own. So, if you have a little time, please * get the latest mercurial source (default branch) * run make clean at toplevel * do the whole bootstrap/configure/make dance * run your favorite scripts, snippets and torture tests It is important for us that you reconfigure from scratch, since Romain made important changes to the configuration system. A summary of the recent changes, so you know what to test, or what you'll get soon: * configure script: forbid running as root, check for -fPIC, add prefix to compilation flags, and more * conversions: add mux_mono(), plus many fixes and optims (audio_to_stereo, drop, mux, mean) [LS-556] * input.http(): do not crash when input stream has an incorrect nb of channels [LS-565] * clocks: avoid freeze upon errors during streaming, new source.init() [LS-532] * liquidsoap --interactive now displays usual error reports instead of exceptions * server.telnet: timeout can be disabled by setting it to -1 [LS-557] * Avoid freeze (panic exit) in case of a crash of the duppy scheduler * output.icecast(): new timeout for connection [LS-555] * blank(): avoid empty tracks in between real ones [LS-431] * delay(): new initial param for starting with a delay rather than a track * all request sources: queue management now in seconds instead of ticks * playlist(), playlist.safe(): fix multiple reload and negative length bug Cheers, -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] using pulseaudio mix as input
Hi, I am trying to use the pulseaudio mix channel as input for liquidsoap. Do you know how I can find out the names of available pulseaudio devices? I played around with the names I see at audacity but unfortunately I did not succeed. e.g. the following line will not work, since 'mix' is not the right device name. liquidsoap 'output.file(%mp3, /tmp/test.mp3 ,input.pulseaudio(device=mix) )' Background: As you might remember we always wanted to have some dynamic scheduler to start a show (a single audio file) at a certain date time. I have written now a small scheduler which frequently scans all subdirectories below a storage /mnt/storage/ where start date and time is mapped to the path by convention. e.g. if file /mnt/storage/2011/09/27/20-00/show.mp3 exists, show.mp3 will be started at 2011-09-27T20:00:00. Starting a file means starting a cvlc for playout. (At our studio we put the playout audio directly on the sound mixer). Directories are automatically created from our program schedule, so user just has to drop a file in the right folder. To delete or move a show, user can still delete or move the file. The scheduler takes care of file changes, even for shows that are in the past (like a show is inserted to be started a half hour before now). This works good for now and has a very small cpu and memory footprint. Now I would like to build a continous stream with help of liquidsoap to make the scheduler useful for other people, too. Best regards, Peter -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] using pulseaudio mix as input
Hi Damien, If a user does not follow the convention, his/her files will not be played. Usually all shows are planned some weeks or days before. We use a google calendar for planning this. The calendar synchronisation creates all directories from this and additionally creates the website entries with all show descriptions. So mostly user dont need to create any directories, since this is automatically done if the show is scheduled at the calendar. So user just needs to drop its mp3 file into the right directory. If there is a urgent need (e.g. someone has forgotten to schedule the show) he sees all existing directories and can use them as template for the path convention. User does not even has to take care of the file name or any metatags (except correct audio duration metadata). The scheduler writes frequently current and next show to log. So you can check for errors, before the scheduler (or a cron job) would try to start a non-existing file. Additionally I do not want to need the user to care about correct file paths in the jobs. All of this should help to prevent misconfiguration or user errors. There are multiple reasons why I do not to use a cron job for this: - Most users I know, do not know even what a cron job is or what faults you can do when writing one. Additionally I would not like a separate cron job for each show (imagine 24 shows a day, 365 days a year, ok, today we have only around 10 preproduced shows a week). - If there are any changes needed, the user just needs to update the file system. So there is no database or any other redundant definition (like cron) of what is to be played when. - Furthermore the scheduler checks frequently if the current show player is running. If not, the start of the show will be cutted and played from the current position. This is useful for reboots due to power outages and other outages like process failures. The scheduler would be respawned by upstart on failure. Another case like this: the user puts the file at the right directory still one minute after the show should have been started (many users I deal with deliver their productions at the last minute .-) As you can see the scheduler does a lot more than still starting a file at a certain time (e.g. logging, process audits, house keeping, etc.) to keep everything running BR, Peter Am 27.09.2011 20:33, schrieb Audiodef Online: That looks useful. What if a user doesn't follow the correct dir/file structure format? What advantage does this have over using a cronjob? Just wondering. :-) Damien On 09/27/11 18:03, Peter Retep wrote: Hi, I am trying to use the pulseaudio mix channel as input for liquidsoap. Do you know how I can find out the names of available pulseaudio devices? I played around with the names I see at audacity but unfortunately I did not succeed. e.g. the following line will not work, since 'mix' is not the right device name. liquidsoap 'output.file(%mp3, /tmp/test.mp3 ,input.pulseaudio(device=mix) )' Background: As you might remember we always wanted to have some dynamic scheduler to start a show (a single audio file) at a certain date time. I have written now a small scheduler which frequently scans all subdirectories below a storage /mnt/storage/ where start date and time is mapped to the path by convention. e.g. if file /mnt/storage/2011/09/27/20-00/show.mp3 exists, show.mp3 will be started at 2011-09-27T20:00:00. Starting a file means starting a cvlc for playout. (At our studio we put the playout audio directly on the sound mixer). Directories are automatically created from our program schedule, so user just has to drop a file in the right folder. To delete or move a show, user can still delete or move the file. The scheduler takes care of file changes, even for shows that are in the past (like a show is inserted to be started a half hour before now). This works good for now and has a very small cpu and memory footprint. Now I would like to build a continous stream with help of liquidsoap to make the scheduler useful for other people, too. Best regards, Peter -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk
Re: [Savonet-users] hang up on full disk
Hi David, thanks for your answer! Usually there is a housekeeping process which removes old files so there should always be enough free space. Housekeeping just did not work under certain circumstances, which should be fixed by now - so there is no high priority on this issue. I just learned that situations like this can happen even if one thinks about it before. If a full archive device was not stopping the whole LS streaming process it could compensate admin failures and make LS even more robust. I am still confused why ALSA and pulseaudio complain about missing space on the archive device, since they are only used for reading from sound card, but not for output, but as told before, this is not high priority. Best regards, Peter PS: I never would require LS to continue writing to disk, if disk is full. Currently we have two outputs: - one to stream the content to the FM transmitter station and - one to archive the streamed content to disk (required by law in Germany). There are two disks, one for running the system and a separate one used for writing archive only. The archive disk was running full, the system disk was not full and the OS itself kept running. Am 19.09.2011 08:57, schrieb David Baelde: Hi Peter, First, thanks for the report and sorry for the very late reply. Unfortunately, I don't think we can do much about it, and I'm afraid it won't be our top priority. Most applications do not cope well with full disk -- or even full memory. Even if we could keep running part of the system when the disk is full, I'm not sure that a file output should keep running when it cannot write to disk anymore, as you're suggesting. It would be interesting to find a way to make this behavior optional, though. What is important however is (1) that liquidsoap is not the cause for the full disk and (2) that you can get enough info in the logs to figure out the problem, and fix it. As far as I can tell, this is more or less the case here. Cheers, -- All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] hang up on full disk
-06 18:08:30] INFO source/source_move_clients passing 1 listeners to /radio /var/log/icecast2/error.log[2011-09-06 18:08:30] INFO source/source_main listener count on /testbetrieb.ogg now 0 /var/log/icecast2/error.log[2011-09-06 18:08:30] INFO source/source_main listener count on /radio now 1 ^C /var/log/icecast2/error.log[2011-09-06 18:08:41] WARN source/get_next_buffer Disconnecting source due to socket timeout /var/log/icecast2/error.log[2011-09-06 18:08:41] INFO source/source_shutdown Source /radio exiting /var/log/icecast2/error.log[2011-09-06 18:08:41] INFO source/source_move_clients passing 1 listeners to /testbetrieb.ogg /var/log/icecast2/error.log[2011-09-06 18:08:41] INFO source/source_main listener count on /testbetrieb.ogg now 1 when trying to use pulseaudio... /var/log/liquidsoap/play.log2011/09/06 18:13:05 [mksafe:3] Switch to pulse_in(). /var/log/liquidsoap/play.log2011/09/06 18:13:05 [threads:1] Thread wallclock_pulse aborts with exception Sys_error(No space left on device)! /var/log/liquidsoap/play.log2011/09/06 18:13:05 [threads:3] Raised by primitive operation at file pervasives.ml, line 252, characters 2-40 /var/log/liquidsoap/play.log2011/09/06 18:13:05 [threads:3] Called from file list.ml, line 69, characters 12-15 At the receiver side I found: 2011/09/06 18:08:05 [station1:3] Buffer overrun: Dropping 0.03s. 2011/09/06 18:08:05 [station1:3] Buffer overrun: Dropping 0.03s. 2011/09/06 18:08:05 [station1:3] Buffer overrun: Dropping 0.03s. 2011/09/06 18:08:05 [station1:3] Buffer overrun: Dropping 0.01s. ... BR, Peter -- Malware Security Report: Protecting Your Business, Customers, and the Bottom Line. Protect your business and customers by understanding the threat from malware and how it can impact your online business. http://www.accelacomm.com/jaw/sfnl/114/51427462/ ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] Making a player, recommended language
Hi, I have made good experiences with this one: http://www.jplayer.org/ (except for iphone users, but my tests are older than a year) Br, Peter Am 31.08.2011 20:44, schrieb Fábio Costa: Thanks Samuel for the link. Will be sure to look around. I will try this after finishing my test with the java player Em 31 de agosto de 2011 15:26, Romain Beauxisto...@rastageeks.orgescreveu: Hi all! I have played with SoundManager2 for flas/html5 unified javascript players and its pretty good: http://www.schillmania.com/projects/soundmanager2/ It _should_ support ogg/vorbis in html5 mode when the browser supports it. Concerning metadata, though, I have no easy solutions.. Maybe a push registered from liquidsoap could be a good thing to look for though.. Romain 2011/8/31 Fábio Costablackjackde...@gmail.com: Thanks for the response Samuel. My problem is with the metadata, and if i use pure HTML i would have to perform queries from time to time to get the updated status of the music playing. I will try with java, if it don't work as an applet i will use other thing. Em 31 de agosto de 2011 14:19, Samuel Mimramsmim...@gmail.com escreveu: Some more relevant info here: http://stackoverflow.com/questions/6115531/is-it-possible-to-get-icecast-metadata-from-html5-audio-element Apparently you have to hack a bit to make it work... 2011/8/31 Samuel Mimramsmim...@gmail.com Hi, Many modern browsers now natively support playing audio streams ( http://www.w3schools.com/html5/tag_audio.asp ). I don't know if you can grab the tags but it might be worth investigating... ++ Sam. 2011/8/31 Fábio Costablackjackde...@gmail.com Hi josh. I was able to made an MP3 player in flash like the following, but unfortunately icecast doesn't send ID3 tags or so i heard -- import flash.events.IOErrorEvent; var s:Sound; s= new Sound(); var urlReq:URLRequest=new URLRequest(http://localhost:8000/winampstream.mp3;); bt.addEventListener(MouseEvent.CLICK,btclick); s.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); s.load(urlReq); s.addEventListener(Event.ID3, id3Loaded); s.play(); function ioErrorHandler(e:IOErrorEvent){ } -- The ogg is a litte trickier, i downloaded an swc library and the following code: http://mauft.com/2010/11/ogg-vorbis-in-flash/ This library made creating a player really easy. I ended up using a java library http://www.javazoom.net/jlgui and will create an interface of my own and change it for my needs. Em 31 de agosto de 2011 11:42, Joshjosh.stirlan...@gmail.com escreveu: hi, pleas tell me when you have made this player, I have never found how to get flash working on my server, it asks for a stream file? - Original Message - From: Fábio Costa To: savonet-users@lists.sourceforge.net Sent: Wednesday, August 31, 2011 1:27 PM Subject: [Savonet-users] Making a player, recommended language I will make a simple player to play a stream broadcasted by liquidsoap to a icecastserver. I was thinking in using Java or Flash, neither of them have ogg suport but i found some libraries. Would you recommend another technology to make an ogg/mp3 player? -- Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free Love Thy Logs t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free Love Thy Logs t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free Love Thy Logs t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev
Re: [Savonet-users] metadata update from url
Hi Martin, thanks for this coding example. If you allow I would like to reuse this one. Furthermore this usecase and its solution could be a part of the liquidsoap online help. BR, Peter Am 26.08.2011 15:34, schrieb Martin Hamant: Le 26/08/2011 14:41, Martin Hamant a écrit : I was totally far from it. Found the trick ! x = insert_metadata(s0) insert = fst(x) s = snd(x) # A reference to the latest metadata latest_meta = ref [] # A function to update metadata def update_meta() = data = http.get(bla/titles) m = [(title, snd(data))] #= this is the right type of m !! if m != !latest_meta then latest_meta := m insert(m) print(new metadata !) end # Restart in 10. seconds 10. end # Start polling now add_timeout(0., update_meta) :D Now... I have to put all of this into a conditional :) I was thinking of: s0 = if source_device == pulse then input.pulseaudio(client='#{stream_name}') else input.alsa(device=#{source_device}) end s = if stream_metasource != disabled then # Attach metadata insertion hooks x = insert_metadata(s0) insert = fst(x) s = snd(x) # A reference to the latest metadata latest_meta = ref [] #list.append([coucou], !latest_meta) # A function to update metadata def update_meta() = data = http.get(http://martin-virtualbox/titles;) m = [(title, snd(data))] print(m) if m != !latest_meta then latest_meta := m insert(m) print(new metadata !) end # Restart in 10. seconds 10. end # Start polling now add_timeout(0., update_meta) s else s0 end (...) # The output output = out(id=#{stream_id}, host=#{stream_host}, port=int_of_string(#{stream_port}), password=#{stream_password}, genre=#{stream_genre}, url=#{stream_url}, s) The problem is the iteration part where I return s, else s0 ... which leads to the error: this value has type (...)-source(_) but it should be a subtype of (...)-active_source(_) Am I close to it ? -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free Love Thy Logs t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] install error after hg update
Hi, i tried to update from hg to make some retests, but run into following error at make: for i in ocaml-cry ocaml-alsa ocaml-pulseaudio ocaml-mad ocaml-taglib ocaml-lame ocaml-ogg ocaml-vorbis ocaml-faad ocaml-flac ocaml-ladspa ocaml-samplerate ocaml-xmlplaylist ocaml-dtools ocaml-duppy ocaml-mm liquidsoap; do make -C $i || exit 1; done ... OCAMLOPT -c tools/server.ml File tools/server.ml, line 188, characters 30-49: Error: This expression has type (string - string - 'a - 'b, unit, string, string, string, 'a - 'b) format6 but an expression was expected of type (string - string - 'a - 'b, unit, string) format = (string - string - 'a - 'b, unit, string, string, string, string) format6 make[3]: *** [tools/server.cmx] Fehler 2 make[3]: leave directory '/home/radio/savonet/liquidsoap/src' Linux wbox-live 2.6.32-33-generic #72-Ubuntu SMP Fri Jul 29 21:08:37 UTC 2011 i686 GNU/Linux Any idea? BR, Peter PS: for i in ocaml-cry ocaml-alsa ocaml-pulseaudio ocaml-mad ocaml-taglib ocaml-lame ocaml-ogg ocaml-vorbis ocaml-faad ocaml-flac ocaml-ladspa ocaml-samplerate ocaml-xmlplaylist ocaml-dtools ocaml-duppy ocaml-mm liquidsoap; do make -C $i || exit 1; done -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] install error after hg update
Hi David, thanks! installation runs fine now. BR, Peter Am 28.08.2011 14:07, schrieb David Baelde: Hi Peter, Sorry, I introduced this error in a minor change, this should be fixed now. Cheers, -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] errors in WAV header
yeah, it works! thanks so much! 2011/08/28 15:00:00 [/mnt/archive/piradio/%Y-%m-%d/%Y-%m-%d-%H_%M_%S(dot)wav:3] Re-opening output file... /mnt/archive/piradio/2011-08-28/2011-08-28-14_51_08.wav (93851900 bytes): riff: 'RIFF' riff length: -268435457 riff length field should be 93851892 fixed wave: 'WAVE' fmt: 'fmt ' fmt length: 16 format: 1 channels: 2 sample rate: 44100 bytes/second: 176400 bytes/sample: 4 bits/sample: 16 data: 'data' data length: -268435493 data length field should be 93851856 fixed 2011/08/28 15:02:01 [fallback_4951:3] Switch to src_4947 with transition. BR, Peter Am 23.08.2011 14:11, schrieb David Baelde: Hi Peter, Romain and I didn't see a better solution than adding on_close, so I implemented it (commit b57a1b3bd7ae). Let me know how this works for you. For example, you may use output.file(%wav,file%Hwhatever.wav,on_close=fun(s)-system(qwavheaderdump -F #{s}),reopen_when={0m},...,source). On Mon, Aug 22, 2011 at 6:52 PM, Peter Reteppeter_re...@gmx.de wrote: Calling a external tool triggered by on_close would require to use the current filename in a command line, which is currently not supported. This was not the main motivation for adding it, but the new on_close will give you the actual filename which has been used, with the %H and other special things interpreted. A advantage would be that you dont need additional fix tools unless you use them. Yes, and it allows us to keep an encoder that works both for streams and files. WAV: qwavheaderdump -F (quelcom package, tested). MP3: mp3check --fix-headers (not tested). Thanks for the reminder (though I don't know of any problem with the standard %mp3 output that needs to be fixed afterwards). Once you have tested one or both of these features, it would be nice if you could propose either a snippet for http://wiki.sourcefabric.org/display/LS/User+Snippets or a documentation paragraph for the %wav section of http://savonet.sourceforge.net/doc-svn/encoding_formats.html (or perhaps something to add to output.file's short documentation). Cheers, -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] errors in WAV header
it works even at shutdown! excellent! ^C2011/08/28 15:12:16 [main:3] Shutdown started! 2011/08/28 15:12:16 [main:3] Waiting for threads to terminate... 2011/08/28 15:12:17 [harbor:3] Removing HTTP handler for '/radio' on port 7654 /mnt/archive/piradio/2011-08-28/2011-08-28-15_00_00.wav (129992732 bytes): riff: 'RIFF' riff length: -268435457 riff length field should be 129992724 fixed wave: 'WAVE' fmt: 'fmt ' fmt length: 16 format: 1 channels: 2 sample rate: 44100 bytes/second: 176400 bytes/sample: 4 bits/sample: 16 data: 'data' data length: -268435493 data length field should be 129992688 fixed 2011/08/28 15:12:17 [threads:3] Thread src_4927 terminated (1 remaining). 2011/08/28 15:12:17 [clock.wallclock_alsa:3] Streaming loop stopped. 2011/08/28 15:12:17 [threads:3] Thread wallclock_alsa terminated (0 remaining). 2011/08/28 15:12:17 [main:3] Cleaning downloaded files... 2011/08/28 15:12:17 LOG END BR, Peter Am 23.08.2011 14:11, schrieb David Baelde: Hi Peter, Romain and I didn't see a better solution than adding on_close, so I implemented it (commit b57a1b3bd7ae). Let me know how this works for you. For example, you may use output.file(%wav,file%Hwhatever.wav,on_close=fun(s)-system(qwavheaderdump -F #{s}),reopen_when={0m},...,source). On Mon, Aug 22, 2011 at 6:52 PM, Peter Reteppeter_re...@gmx.de wrote: Calling a external tool triggered by on_close would require to use the current filename in a command line, which is currently not supported. This was not the main motivation for adding it, but the new on_close will give you the actual filename which has been used, with the %H and other special things interpreted. A advantage would be that you dont need additional fix tools unless you use them. Yes, and it allows us to keep an encoder that works both for streams and files. WAV: qwavheaderdump -F (quelcom package, tested). MP3: mp3check --fix-headers (not tested). Thanks for the reminder (though I don't know of any problem with the standard %mp3 output that needs to be fixed afterwards). Once you have tested one or both of these features, it would be nice if you could propose either a snippet for http://wiki.sourcefabric.org/display/LS/User+Snippets or a documentation paragraph for the %wav section of http://savonet.sourceforge.net/doc-svn/encoding_formats.html (or perhaps something to add to output.file's short documentation). Cheers, -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] install error after hg update
/08/28 17:41:56 [mksafe:3] Switch to mksafe. 2011/08/28 17:41:56 [mksafe:3] Switch to safe_blank. 2011/08/28 17:41:57 [decoder:3] Method OGG accepted application/ogg. 2011/08/28 17:41:57 [src_4871:3] Decoding... 2011/08/28 17:41:58 [mksafe:3] Switch to src_4871 with transition. 2011/08/28 17:42:07 [src_4871:2] Feeding stopped: Ogg.End_of_stream. 2011/08/28 17:42:09 [decoder:3] Method OGG accepted audio/ogg. 2011/08/28 17:42:09 [src_4871:3] Decoding... 2011/08/28 17:42:12 [src_4871:2] Feeding stopped: Ogg_demuxer.Invalid_stream. 2011/08/28 17:42:15 [decoder:3] Method OGG accepted application/ogg. 2011/08/28 17:42:15 [src_4871:3] Decoding... 2011/08/28 17:42:15 [mksafe:3] Switch to safe_blank with forgetful transition. 2011/08/28 17:42:17 [mksafe:3] Switch to src_4871 with transition. 2011/08/28 17:42:32 [src_4871:2] Feeding stopped: Ogg.End_of_stream. 2011/08/28 17:42:37 [mksafe:3] Switch to safe_blank with forgetful transition. 2011/08/28 17:42:41 [decoder:3] Method OGG accepted application/ogg. 2011/08/28 17:42:41 [src_4871:3] Decoding... 2011/08/28 17:42:43 [mksafe:3] Switch to src_4871 with transition. 2011/08/28 17:43:21 [src_4871:2] Feeding stopped: Ogg_demuxer.Invalid_stream. 2011/08/28 17:43:22 [mksafe:3] Switch to safe_blank with forgetful transition. 2011/08/28 17:43:23 [decoder:3] Method OGG accepted audio/ogg. 2011/08/28 17:43:23 [src_4871:3] Decoding... 2011/08/28 17:43:26 [mksafe:3] Switch to src_4871 with transition. BR, Peter Am 28.08.2011 15:04, schrieb Peter Retep: Hi David, thanks! installation runs fine now. BR, Peter Am 28.08.2011 14:07, schrieb David Baelde: Hi Peter, Sorry, I introduced this error in a minor change, this should be fixed now. Cheers, -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] savonet homepage: ocaml modules
Hi, at http://savonet.sourceforge.net/modules/ocaml-pulseaudio/index.html i see Pulseaudio http://savonet.sourceforge.net/modules/ocaml-pulseaudio/Pulseaudio.html An error occured. eventually there is something wrong with the module description of the online help? BR, Peter -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] retain max listeners counts
Hi, what about getting the Icecast stats directly from the icecast log? BR, Peter Am 28.08.2011 18:46, schrieb Sergei Sokolov: Hi, I run AirTime+Liquidsoap+IceCast2 radio station; AutoDJ task is served by LiquidSoap script: which runs music, jingles, announcements, when nothing is scheduled in AirTIme, which we currently use for scheduling only certain shows. As we tweak that LiquidSoap script a lot, restarting after each edit to commit the changes, IceCast's stats for the mounting points is getting lost each time, and we start from 0. That's a pity, cause we want to show higher numbers to our sponsors. Question: is there a way to make LiquidSoap re-read the script without nulling IceCast's counts? OR a way to 'tell' IceCast2 initial counter settings? Kind regards, Sergei Sokolov -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- EMC VNX: the world's simplest storage, starting under $10K The only unified storage solution that offers unified management Up to 160% more powerful than alternatives and 25% more efficient. Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] errors in WAV header
Hi, Thanks for taking up this talk again! Calling a external tool triggered by on_close would require to use the current filename in a command line, which is currently not supported. A advantage would be that you dont need additional fix tools unless you use them. An internal solution would be more easy to the user, but would increase the list of additional dependencies, independent whether one uses file recording or not. WAV: qwavheaderdump -F (quelcom package, tested). MP3: mp3check --fix-headers (not tested). I could live with both solutions. BR, Peter Am 21.08.2011 20:36, schrieb David Baelde: On Sun, Aug 21, 2011 at 3:14 PM, Peter Reteppeter_re...@gmx.de wrote: i have updated our production system with using the %wav parameter with duration=3600.0 . When I checked recorded WAV files , I found out that duration is 40 or 80 milliseconds longer than expected: Hi Peter, Unfortunately, this was to be expected... I was surprised in the first place that such a simple solution was sufficient. I suggest we start thinking about a more robust solution, like finding a clean way to call an external program to write the duration of the recorded WAV. An obvious possibility is to add an on_close param to output.file(). I'd like to avoid it if existing mechanisms allow it already. It seems that on_start/stop won't be enough here... Anybody sees the beginning of another solution? I don't have time to code right now, but let's try to get this moving. Cheers, -- uberSVN's rich system and user administration capabilities and model configuration take the hassle out of deploying and managing Subversion and the tools developers use with it. Learn more about uberSVN and get a free download at: http://p.sf.net/sfu/wandisco-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] errors in WAV header
Hi Romain, in case you dont know it yet: I have made good experiences with eyeD3 for writing mp3 tags. it supports ID3 up to version v2.4. BR, Peter Am 21.08.2011 20:46, schrieb Romain Beauxis: 2011/8/21 David Baeldedavid.bae...@gmail.com: On Sun, Aug 21, 2011 at 3:14 PM, Peter Reteppeter_re...@gmx.de wrote: i have updated our production system with using the %wav parameter with duration=3600.0 . When I checked recorded WAV files , I found out that duration is 40 or 80 milliseconds longer than expected: Hi Peter, Unfortunately, this was to be expected... I was surprised in the first place that such a simple solution was sufficient. I suggest we start thinking about a more robust solution, like finding a clean way to call an external program to write the duration of the recorded WAV. An obvious possibility is to add an on_close param to output.file(). I'd like to avoid it if existing mechanisms allow it already. It seems that on_start/stop won't be enough here... Anybody sees the beginning of another solution? I don't have time to code right now, but let's try to get this moving. Actually, an on_close hook would also be ideal to write proper metadata for mp3 files using the existing taglib support -- I found another lib that could do that inline but I'm reluctant to add yet another binding/dependency. Also, some file formats like ma4/mp4 or flac really need these kind of operations. But, I agree with you, its better to find a generic solution than adding another hook.. Romain -- uberSVN's rich system and user administration capabilities and model configuration take the hassle out of deploying and managing Subversion and the tools developers use with it. Learn more about uberSVN and get a free download at: http://p.sf.net/sfu/wandisco-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] hg build: Error: Unbound value Graphics.open_graph in File outputs/graphics_out.ml, line 35, characters 4-23:
Hi Romain, I did not find any other package which contains Graphics library, so I assumed this would be the right one. At the user list I found out, that installing libcamlimages-ocaml-dev includes installation of the Graphics library. (see http://comments.gmane.org/gmane.comp.audio.liquidsoap.user/2540 ) . Therefore I thought it would be an good idea to put the right lib into the documentation (list of required packages) to ease the installation. I have seen this on several Ubuntu 10.04 systems. Since I need no graphics at all, how could I switch it off, that configure would show Graphics: no? (Maybe thats the point, David spoke about... ) * Visualization - Graphics : yes Thanks Regards, Peter Am 20.08.2011 18:31, schrieb Romain Beauxis: 2011/8/20 Peter Reteppeter_re...@gmx.de: Hi, Hi Peter! could you please put libcamlimages-ocaml-dev to the list of required packages http://savonet.sourceforge.net/doc-svn/build.html ? I am not sure I understand exactly what your problem was. The compilation error below is cause by the graphics module and not camlimages.. David mentioned that our detection of graphics has bugs by the way. I will review it as soon as possible.. Romain make ... OCAMLOPT -c outputs/graphics_out.ml File outputs/graphics_out.ml, line 35, characters 4-23: Error: Unbound value Graphics.open_graph make[3]: *** [outputs/graphics_out.cmx] Fehler 2 make[3]: Verlasse Verzeichnis '/home/radioadmin/radio/source/savonet/savonet/liquidsoap/src' make[2]: *** [all-auto-ocaml-prog] Fehler 2 make[2]: Verlasse Verzeichnis '/home/radioadmin/radio/source/savonet/savonet/liquidsoap/src' make[1]: *** [all-subdirs] Fehler 2 make[1]: Verlasse Verzeichnis '/home/radioadmin/radio/source/savonet/savonet/liquidsoap' make: *** [all] Fehler 1 cat PACKAGES | grep -v '#' ocaml-cry ocaml-alsa ocaml-pulseaudio ocaml-mad ocaml-taglib ocaml-lame ocaml-ogg ocaml-vorbis ocaml-faad ocaml-flac ocaml-ladspa ocaml-samplerate ocaml-xmlplaylist ocaml-dtools ocaml-duppy ocaml-mm liquidsoap ./configure for i in ocaml-cry ocaml-alsa ocaml-pulseaudio ocaml-mad ocaml-taglib ocaml-lame ocaml-ogg ocaml-vorbis ocaml-faad ocaml-flac ocaml-ladspa ocaml-samplerate ocaml-xmlplaylist ocaml-dtools ocaml-duppy ocaml-mm liquidsoap; do make -C $i || exit 1; done ... * Supported input formats - Vorbis: yes - Theora: no (requires theora) - Speex : no (requires speex) - Dirac : no (requires schroedinger) - Flac (native) : yes - Flac (ogg): yes - MP3 : yes - AAC : yes - text-to-speech: yes, using /usr/bin/text2wave - XML playlists : yes - Lastfm: no (requires lastfm) * Supported output formats - Vorbis: yes - MP3 : yes - AAC : no (requires voaacenc) - AAC+ : no (requires aacplus) - SPEEX : no (requires speex) - Theora: no (requires theora) - Dirac : no (requires schroedinger) * Tags - Taglib (ID3 tags) : yes - Vorbis: yes - charset detection : yes * Input / output - Icecast/Shoutcast : yes - AO: no (requires ao) - OSS : yes - ALSA : yes - Portaudio : no (requires portaudio) - Pulseaudio: yes - JACK : no (requires bjack) - Old JACK : no (requires jack) - opal : no - GStreamer : no (requires gstreamer) * Audio manipulation - Samplerate: yes - SoundTouch: yes - LADSPA: yes * Video manipulation - Gavl : no (requires gavl) - camlimages: no (requires camlimages) * MIDI manipulation - DSSI : no (requires dssi) * Visualization - Graphics : yes - SDL : no (requires sdl) * Additional libraries - dynlink : yes - magic : yes - lo: no (requires lo) - json-wheel: no (requires json-wheel) * Graphical interfaces - Python GUI: yes (requires=pyGTK-2.0) - Linux wbox 2.6.32-33-generic #72-Ubuntu SMP Fri Jul 29 21:08:37 UTC 2011 i686 GNU/Linux Thanks regards, Peter -- Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 ___ Savonet-users mailing list Savonet-users
Re: [Savonet-users] errors in WAV header
Hi, i have updated our production system with using the %wav parameter with duration=3600.0 . When I checked recorded WAV files , I found out that duration is 40 or 80 milliseconds longer than expected: qwavheaderdump *.wav 2011-08-21-00_00_00.wav (635054156 bytes): riff: 'RIFF' riff length: 635040036 riff length field should be 635054148 wave: 'WAVE' fmt: 'fmt ' fmt length: 16 format: 1 channels: 2 sample rate: 44100 bytes/second: 176400 bytes/sample: 4 bits/sample: 16 data: 'data' data length: 63504 data length field should be 635054112 635054156 2011-08-21 01:00 2011-08-21-00_00_00.wav80 ms 635054156 2011-08-21 02:00 2011-08-21-01_00_00.wav80 ms 635054156 2011-08-21 03:00 2011-08-21-02_00_00.wav80 ms 635054156 2011-08-21 04:00 2011-08-21-03_00_00.wav80 ms 635054156 2011-08-21 05:00 2011-08-21-04_00_00.wav80 ms 635047100 2011-08-21 06:00 2011-08-21-05_00_00.wav40 ms 635054156 2011-08-21 07:00 2011-08-21-06_00_00.wav80 ms 635054156 2011-08-21 08:00 2011-08-21-07_00_00.wav80 ms 635054156 2011-08-21 09:00 2011-08-21-08_00_00.wav80 ms 635054156 2011-08-21 10:00 2011-08-21-09_00_00.wav80 ms 635047100 2011-08-21 11:00 2011-08-21-10_00_00.wav40 ms 635054156 2011-08-21 12:00 2011-08-21-11_00_00.wav80 ms 635054156 2011-08-21 13:00 2011-08-21-12_00_00.wav80 ms A local test at home using ALSA input shows 40ms missing: liquidsoap 'output.file( %wav(stereo=true,duration=3600.), ./test_%H:%M.wav, reopen_when={0m0s}, mksafe(alsa.input()) )' qwavheaderdump test_14:00.wav test_14:00.wav (635032988 bytes): riff: 'RIFF' riff length: 635040036 riff length field should be 635032980 wave: 'WAVE' fmt: 'fmt ' fmt length: 16 format: 1 channels: 2 sample rate: 44100 bytes/second: 176400 bytes/sample: 4 bits/sample: 16 data: 'data' data length: 63504 data length field should be 635032944 if I use a source like noise() file length was tested to be correct. At production system we use - ALSA input source, - some fallbacks, - limit() and - output.file, output.icecast and output.harbor. Liquidsoap 1.0.0-beta3+svn (default@83addd3ddbae:20110820:12) our setup: #input radio= mksafe(input.alsa(device=pcm.liq_test)) #define ALSA fallback fallback_mix= mksafe(single(fallback.mp3)) fallback_alsa = smooth_add( normal=fallback_mix, special=switch([ ( { 0s }, mksafe(single(say:Alsa failed!)) ) ]) ) #apply ALSA fallback radio = fallback( track_sensitive=false, [ radio, fallback_alsa ] ) #silence detection radio= fallback( track_sensitive=false, [ fail(), strip_blank( length=180. , radio ) , mksafe(single(silence.mp3)) ] ) #audio processing radio=limit(radio) #record to archive output.file( %wav(stereo=true, duration=3600.0), /mnt/archive/%Y-%m-%d/%Y-%m-%d-%H_%M_%S.wav, reopen_when={0m0s}, mksafe(radio) ) #icecast output output.icecast( %vorbis.cbr(samplerate=44100, channels=2, bitrate=160), host=xxx, port=xxx, user=xxx, password=xxx, mount=/xxx description=piradio, restart=true, radio ) #audio stream output output.harbor( mount=/xxx, protocol=http, port=xxx, format=audio/ogg, %vorbis.cbr(samplerate=44100, channels=2, bitrate=160), radio ) BR, Peter Am 06.08.2011 00:34, schrieb Peter Retep: Hi, next 4 hours were encoded exactly, too! Excellent! BR, Peter Am 05.08.2011 17:35, schrieb Peter Retep: Thank you! liquidsoap 'output.file( %wav(stereo=true,duration=3600.), ./test_%H:%M.wav, reopen_when={0m0s}, mksafe(noise()) )' test started, it will take some hours, due to small frequencies do not work safely with reopen_when. I let you know about results at the earliest. BR, Peter Am 05.08.2011 17:13, schrieb Romain Beauxis: 2011/8/5 Peter Reteppeter_re...@gmx.de: Hi, Hi! I have just found some time for retesting... 1) When trying to apply the length parameter (is it called duration?), I failed. Could you please give me a hint how to set this parameter? liquidsoap -h WAV *** One entry in audio file formats (duration): (no doc) *** One entry in file decoding: Decode as WAV any file with a correct header. *** One entry in stream decoding: Decode a WAV stream with an appropriate MIME type. *** One entry in stream encoding formats: (no doc) liquidsoap 'output.file( %wav(stereo=true,duration=60s), ./test_%M.wav, reopen_when={0s-59s}, mksafe(noise()) )' Error in encoding format at line 1, char 40-42: complex expressions are forbidden in encoding formats. liquidsoap 'output.file( %wav(stereo=true,duration=60), ./test_%M.wav, reopen_when={0s-59s}, mksafe(noise()) )' Error in encoding format at line 1, char 40-41: unknown parameter name or invalid parameter value
[Savonet-users] flows broken?
Hi, I cant use flows page at Firefox nor Chrome. error: update_radios is not defined source: http://savonet.sourceforge.net/flows.html line: 10 BR, Peter -- Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] hg build: Error: Unbound value Graphics.open_graph in File outputs/graphics_out.ml, line 35, characters 4-23:
Hi, could you please put libcamlimages-ocaml-dev to the list of required packages http://savonet.sourceforge.net/doc-svn/build.html ? make ... OCAMLOPT -c outputs/graphics_out.ml File outputs/graphics_out.ml, line 35, characters 4-23: Error: Unbound value Graphics.open_graph make[3]: *** [outputs/graphics_out.cmx] Fehler 2 make[3]: Verlasse Verzeichnis '/home/radioadmin/radio/source/savonet/savonet/liquidsoap/src' make[2]: *** [all-auto-ocaml-prog] Fehler 2 make[2]: Verlasse Verzeichnis '/home/radioadmin/radio/source/savonet/savonet/liquidsoap/src' make[1]: *** [all-subdirs] Fehler 2 make[1]: Verlasse Verzeichnis '/home/radioadmin/radio/source/savonet/savonet/liquidsoap' make: *** [all] Fehler 1 cat PACKAGES | grep -v '#' ocaml-cry ocaml-alsa ocaml-pulseaudio ocaml-mad ocaml-taglib ocaml-lame ocaml-ogg ocaml-vorbis ocaml-faad ocaml-flac ocaml-ladspa ocaml-samplerate ocaml-xmlplaylist ocaml-dtools ocaml-duppy ocaml-mm liquidsoap ./configure for i in ocaml-cry ocaml-alsa ocaml-pulseaudio ocaml-mad ocaml-taglib ocaml-lame ocaml-ogg ocaml-vorbis ocaml-faad ocaml-flac ocaml-ladspa ocaml-samplerate ocaml-xmlplaylist ocaml-dtools ocaml-duppy ocaml-mm liquidsoap; do make -C $i || exit 1; done ... * Supported input formats - Vorbis: yes - Theora: no (requires theora) - Speex : no (requires speex) - Dirac : no (requires schroedinger) - Flac (native) : yes - Flac (ogg): yes - MP3 : yes - AAC : yes - text-to-speech: yes, using /usr/bin/text2wave - XML playlists : yes - Lastfm: no (requires lastfm) * Supported output formats - Vorbis: yes - MP3 : yes - AAC : no (requires voaacenc) - AAC+ : no (requires aacplus) - SPEEX : no (requires speex) - Theora: no (requires theora) - Dirac : no (requires schroedinger) * Tags - Taglib (ID3 tags) : yes - Vorbis: yes - charset detection : yes * Input / output - Icecast/Shoutcast : yes - AO: no (requires ao) - OSS : yes - ALSA : yes - Portaudio : no (requires portaudio) - Pulseaudio: yes - JACK : no (requires bjack) - Old JACK : no (requires jack) - opal : no - GStreamer : no (requires gstreamer) * Audio manipulation - Samplerate: yes - SoundTouch: yes - LADSPA: yes * Video manipulation - Gavl : no (requires gavl) - camlimages: no (requires camlimages) * MIDI manipulation - DSSI : no (requires dssi) * Visualization - Graphics : yes - SDL : no (requires sdl) * Additional libraries - dynlink : yes - magic : yes - lo: no (requires lo) - json-wheel: no (requires json-wheel) * Graphical interfaces - Python GUI: yes (requires =pyGTK-2.0) - Linux wbox 2.6.32-33-generic #72-Ubuntu SMP Fri Jul 29 21:08:37 UTC 2011 i686 GNU/Linux Thanks regards, Peter -- Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] silence detection: strip_blank fails
Hi David, I tried out the workaround and it works as expected! Thanks for this! BR, Peter Am 15.08.2011 07:31, schrieb Peter Retep: Hi David, Thanks for this hint. I will try it as soon as I am back to the machine. BR, Peter Am 15.08.2011 00:18, schrieb David Baelde: Hi Peter, This is not a problem with blank detection, just a weakness of the type inference algorithm. Romain raised it a while ago (and opened a ticket for it) but I didn't know it was an issue for real users as well. I won't enter technical details, but here's a workaround: On Sat, Aug 13, 2011 at 11:43 AM, Peter Reteppeter_re...@gmx.de wrote: radio_blank=strip_blank(radio) radio=fallback( track_sensitive=false, [ radio_blank , fallback_file ] ) Change into: radio=fallback( track_sensitive=false, [ fail(), radio_blank , fallback_file ] ) Of course, this is not a long-term solution, we need to fix this annoying situation. Cheers, -- David -- uberSVN's rich system and user administration capabilities and model configuration take the hassle out of deploying and managing Subversion and the tools developers use with it. Learn more about uberSVN and get a free download at: http://p.sf.net/sfu/wandisco-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users -- Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] silence detection: strip_blank fails
Hi David, Thanks for this hint. I will try it as soon as I am back to the machine. BR, Peter Am 15.08.2011 00:18, schrieb David Baelde: Hi Peter, This is not a problem with blank detection, just a weakness of the type inference algorithm. Romain raised it a while ago (and opened a ticket for it) but I didn't know it was an issue for real users as well. I won't enter technical details, but here's a workaround: On Sat, Aug 13, 2011 at 11:43 AM, Peter Reteppeter_re...@gmx.de wrote: radio_blank=strip_blank(radio) radio=fallback( track_sensitive=false, [ radio_blank , fallback_file ] ) Change into: radio=fallback( track_sensitive=false, [ fail(), radio_blank , fallback_file ] ) Of course, this is not a long-term solution, we need to fix this annoying situation. Cheers, -- David -- uberSVN's rich system and user administration capabilities and model configuration take the hassle out of deploying and managing Subversion and the tools developers use with it. Learn more about uberSVN and get a free download at: http://p.sf.net/sfu/wandisco-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] silence detection: strip_blank fails
Hi, Yesterday I got a chance to collect some more information at our production system with failing strip_blank: what works: radio_blank=radio radio=fallback( track_sensitive=false, [ radio_blank , fallback_file ] ) what does not work: radio_blank=strip_blank(radio) radio=fallback( track_sensitive=false, [ radio_blank , fallback_file ] ) At line 18, char 70: this value has type source(_) (infered at /usr/local/lib/liquidsoap/svn/utils.liq, line 7, char 11-72) but it should be a subtype of (the type of the value at line 18, char 54) active_source(_) (infered at line 16, char 24-48) where radio_blank has an ALSA source and fallback_file is a mksafe(single(file)) . 2011/08/12 17:50:46 [main:3] Liquidsoap 1.0.0-beta3+svn (default@f06dbad62bb5:20110812:171459) 2011/08/12 17:50:46 [main:3] Using: graphics=[distributed with Ocaml] pcre=6.0.1 dtools=0.2.2 duppy=0.4.1 duppy.syntax=0.4.1 cry=0.2.1 mm=0.1.0 xmlplaylist=0.1.3 ogg=0.4.2 vorbis=0.6.0 mad=0.4.2 dynlink=[distributed with Ocaml] lame=0.3.0 alsa=0.2.1 samplerate=0.1.1 taglib=0.1.4 magic=0.7.3 camomile=0.7.1 soundtouch=0.1.5 pulseaudio=0.1.2 ladspa=0.1.2 Linux wbox 2.6.32-33-generic #72-Ubuntu SMP Fri Jul 29 21:08:37 UTC 2011 i686 GNU/Linux At home (Ubuntu 11.04) the same script works fine. Do you have any ideas? BR, Peter -- FREE DOWNLOAD - uberSVN with Social Coding for Subversion. Subversion made easy with a complete admin console. Easy to use, easy to manage, easy to install, easy to extend. Get a Free download of the new open ALM Subversion platform now. http://p.sf.net/sfu/wandisco-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] LS hang up at shutdown after ALSA error
Hi, after some tests with airtime/liquidsoap today one show's playout did not start due to ALSA yesterday hang up after an error. LS initiated shutdown, but did not quit. As a result LS was not restarted by airtime's daemon processes. 2011/08/09 21:06:35 LOG START 2011/08/09 21:06:34 [protocols.external:3] Didn't find ufetch. 2011/08/09 21:06:34 [protocols.external:3] Found /usr/bin/wget. 2011/08/09 21:06:34 [main:3] Liquidsoap 1.0.0-beta2 2011/08/09 21:06:34 [main:3] Using: pcre=6.0.1 dtools=0.2.2 duppy=0.4.0 duppy.syntax=0.4.0 cry=0.2.0 mm=0.1.0 xmlplaylist=0.1.2 ogg=0.4 .2 vorbis=0.6.0 mad=0.4.2 flac=0.1.0 flac.ogg=0.1.0 lame=0.3.0 alsa=0.2.1 samplerate=0.1.1 taglib=0.1.4 camomile=0.7.1 portaudio=@VERSI ON ladspa=0.1.2 2011/08/09 21:06:34 [dynamic.loader:2] Could not load plugins in directory /usr/local/lib/liquidsoap/1.0.0-beta2/plugins. 2011/08/09 21:06:35 [lang:3] Lastfm/audioscrobbler support was not compiled. 2011/08/09 21:06:35 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master. 2011/08/09 21:06:35 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples. 2011/08/09 21:06:35 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks. 2011/08/09 21:06:35 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks. 2011/08/09 21:06:35 [threads:3] Created thread generic queue #1. 2011/08/09 21:06:35 [threads:3] Created thread non-blocking queue #1. 2011/08/09 21:06:35 [threads:3] Created thread alsa_out(default) (1 total). 2011/08/09 21:06:35 [airtime(dot)ogg:3] Connecting mount airtime.ogg for source@127.0.0.1... 2011/08/09 21:06:35 [airtime(dot)ogg:3] Connection setup was successful. 2011/08/09 21:06:35 [threads:3] Created thread wallclock_alsa (2 total). 2011/08/09 21:06:35 [clock.wallclock_alsa:3] Streaming loop starts, synchronized by active sources. 2011/08/09 21:06:35 [fallback_4727:3] Switch to src_4725. 2011/08/09 21:06:35 [src_4725:3] Inserting missing metadata. 2011/08/09 21:06:35 [alsa_out(default):3] Using ALSA 1.0.22. 2011/08/09 21:06:35 [alsa_out(default):3] Samplefreq=44100Hz, Bufsize=7526B, Frame=4B, Periods=9 2011/08/09 21:06:35 [alsa_out(default):2] Underrun! 2011/08/09 21:06:35 [alsa_out(default):2] Trying to recover.. 2011/08/09 21:06:41 [server:3] New client: localhost 2011/08/09 21:06:43 [server:3] New client: localhost 2011/08/09 21:06:43 [server:3] New client: localhost 2011/08/09 21:06:43 [decoder:3] Method MP3 accepted /var/tmp/airtime/pypo/cache/scheduler/2011-08-09-20-40-00/04f7b25bdb34570e681663 ef3098fba1.mp3. 2011/08/09 21:06:43 [queue:3] Prepared /var/tmp/airtime/pypo/cache/scheduler/2011-08-09-20-40-00/04f7b25bdb34570e681663ef3098fba1.mp3 (RID 0). 2011/08/09 21:06:43 [fallback_4727:3] Switch to src_4692 with transition. 2011/08/09 21:06:43 [cue_cut_4687:3] Cueing in... 2011/08/09 21:06:44 [server:3] New client: localhost 2011/08/09 21:06:44 [queue:3] Finished with /var/tmp/airtime/pypo/cache/scheduler/2011-08-09-20-40-00/04f7b25bdb34570e681663ef3098fba1 .mp3. 2011/08/09 21:06:45 [decoder:3] Method MP3 accepted /var/tmp/airtime/pypo/cache/scheduler/2011-08-09-21-05-00/04f7b25bdb34570e681663 ef3098fba1.mp3. 2011/08/09 21:06:45 [threads:1] Thread wallclock_alsa aborts with exception Bad file descriptor in lseek()! 2011/08/09 21:06:45 [threads:3] Raised by primitive operation at file , line 0, characters 0-0 2011/08/09 21:06:45 [main:3] Shutdown started! 2011/08/09 21:06:45 [main:3] Waiting for threads to terminate... 2011/08/09 21:06:45 [server:3] New client: localhost /usr/lib/airtime/pypo/bin/liquidsoap_bin/liquidsoap --version Liquidsoap 1.0.0-beta2 Copyright (c) 2003-2011 Savonet team Liquidsoap is open-source software, released under GNU General Public License. See http://savonet.sf.net for more information. One question, should I report things like this at LS userlist or at airtime userlist? BR, Peter -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de -- uberSVN's rich system and user administration capabilities and model configuration take the hassle out of deploying and managing Subversion and the tools developers use with it. Learn more about uberSVN and get a free download at: http://p.sf.net/sfu/wandisco-dev2dev ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
[Savonet-users] broken link in docs
Hi, link to encoding format http://savonet.sourceforge.net/doc-1.0.0-beta3/encoding_formats.txt is broken at docs: http://savonet.sourceforge.net/doc-1.0.0-beta3/external_encoders.html Link points to encoding_formats.txt instead of encoding_formats.html BR, Peter http://savonet.sourceforge.net/doc-1.0.0-beta3/encoding_formats.txt -- BlackBerryreg; DevCon Americas, Oct. 18-20, San Francisco, CA The must-attend event for mobile developers. Connect with experts. Get tools for creating Super Apps. See the latest technologies. Sessions, hands-on labs, demos much more. Register early save! http://p.sf.net/sfu/rim-blackberry-1 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users
Re: [Savonet-users] errors in WAV header
Am 05.08.2011 16:24, schrieb Romain Beauxis: 2011/8/5 Peter Reteppeter_re...@gmx.de: Hi Romain, Hi! Thanks for this. I will test this at weekend. One more question for the remaining 1% : qwavheaderdump supports fixing track length by parameter -f: qwavheaderdump -F '$filename' Filenames are generic by using reopen_when() with |%SMHdmY| syntax. I would like to start an external qwavheaderdump -F call at stop of each recording, but would need to pass the filename to this. Is there a way to use the right filename at on_stop() function? I dont think so.. However, you could think of grabbing the most recent file in the folder or use a staging directory that contains all WAV files that havent been processed yet.. Romain This should not work that easy, since one or more other WAVs could still have been started to be recorded. But I think I will get around this with some scripting. Thanks! Peter. -- BlackBerryreg; DevCon Americas, Oct. 18-20, San Francisco, CA The must-attend event for mobile developers. Connect with experts. Get tools for creating Super Apps. See the latest technologies. Sessions, hands-on labs, demos much more. Register early save! http://p.sf.net/sfu/rim-blackberry-1 ___ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users