[Savonet-users] max_listeners?

2018-04-11 Thread Peter

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

2018-04-11 Thread Peter

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

2018-04-11 Thread Peter

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

2018-04-10 Thread Peter

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

2017-11-28 Thread Peter Retep
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

2017-05-24 Thread Peter Retep
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?

2016-12-31 Thread Peter Retep
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

2016-12-16 Thread Peter Retep
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

2016-04-20 Thread Peter Retep
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!

2016-01-14 Thread Peter Retep
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?

2015-12-10 Thread Peter Retep
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

2015-07-10 Thread Peter Retep
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

2015-03-19 Thread Peter Retep
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

2015-02-27 Thread Peter Retep
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

2015-02-04 Thread Peter Retep
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?

2014-12-20 Thread Peter Retep
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

2014-12-20 Thread Peter Retep
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

2014-11-19 Thread Peter Retep

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

2014-11-19 Thread Peter Retep
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?

2014-09-13 Thread Peter Retep
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

2014-08-20 Thread Peter Retep
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?

2014-05-21 Thread Peter Retep
  : 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?

2014-05-06 Thread Peter Retep
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?

2014-05-01 Thread Peter Retep
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

2014-01-29 Thread Peter Retep
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

2013-12-11 Thread Peter Retep
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

2013-11-13 Thread Peter Retep
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

2013-10-27 Thread Peter Retep
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

2013-10-26 Thread 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


Re: [Savonet-users] monitor level output / telnet

2013-10-26 Thread Peter Retep
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

2013-10-25 Thread Peter Retep
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

2013-10-04 Thread Peter Retep
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

2013-09-29 Thread 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


Re: [Savonet-users] monitor level output / telnet

2013-09-29 Thread Peter Retep
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

2013-09-10 Thread Peter Walter
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)

2013-03-09 Thread Peter Retep
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!

2013-03-08 Thread Peter Retep
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)

2013-03-05 Thread Peter Retep
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

2013-02-01 Thread Peter Zingg
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

2012-10-25 Thread Peter Walter
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

2012-10-01 Thread Peter Walter




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

2012-08-10 Thread Peter Walter
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)

2012-07-28 Thread 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] smooth_add and metadata (#2)

2012-07-28 Thread Peter Walter
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

2012-07-20 Thread Peter Retep
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

2012-07-20 Thread Peter Retep
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

2012-07-09 Thread Peter Walter
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

2012-06-27 Thread Peter Walter




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.

2012-05-28 Thread Peter Retep
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

2012-05-15 Thread Peter Walter




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?

2012-04-02 Thread Peter Retep
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

2012-03-28 Thread Peter Retep
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

2012-03-23 Thread Peter Walter
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

2012-02-25 Thread Peter Retep
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())

2012-02-25 Thread Peter Retep
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

2012-01-28 Thread Peter Retep
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

2012-01-02 Thread Peter Retep
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

2012-01-02 Thread Peter Retep
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

2012-01-02 Thread Peter Retep
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

2012-01-02 Thread Peter Retep
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

2011-12-02 Thread Peter Retep
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!

2011-11-28 Thread Peter Retep
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

2011-10-10 Thread Peter Retep
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

2011-10-04 Thread Peter Retep
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

2011-10-03 Thread Peter Retep
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

2011-10-02 Thread Peter Retep
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

2011-10-02 Thread Peter Retep
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

2011-10-01 Thread Peter Retep
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)

2011-10-01 Thread Peter Retep
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

2011-10-01 Thread Peter Retep
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

2011-10-01 Thread Peter Retep
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)

2011-09-30 Thread Peter Retep
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

2011-09-30 Thread Peter Retep
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)

2011-09-30 Thread Peter Retep
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!

2011-09-28 Thread Peter Retep
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

2011-09-27 Thread Peter Retep
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

2011-09-27 Thread Peter Retep
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

2011-09-26 Thread Peter Retep
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

2011-09-06 Thread Peter Retep
-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

2011-08-31 Thread Peter Retep
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

2011-08-30 Thread Peter Retep
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

2011-08-28 Thread Peter Retep
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

2011-08-28 Thread 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


Re: [Savonet-users] errors in WAV header

2011-08-28 Thread Peter Retep

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

2011-08-28 Thread Peter Retep

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

2011-08-28 Thread Peter Retep
/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

2011-08-28 Thread Peter Retep
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

2011-08-28 Thread Peter Retep
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

2011-08-22 Thread Peter Retep
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

2011-08-22 Thread Peter Retep
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:

2011-08-21 Thread Peter Retep
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

2011-08-21 Thread Peter Retep
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?

2011-08-21 Thread Peter Retep
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:

2011-08-20 Thread Peter Retep
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

2011-08-20 Thread Peter Retep
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

2011-08-14 Thread 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


[Savonet-users] silence detection: strip_blank fails

2011-08-13 Thread Peter Retep
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

2011-08-10 Thread Peter Peterson
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

2011-08-07 Thread Peter Retep
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

2011-08-05 Thread Peter Retep


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


  1   2   >