Re: [Savonet-users] liquidsoap doesn't release mount points

2009-04-01 Thread Romain Beauxis
Le Wednesday 01 April 2009 23:12:26 Romeo, vous avez écrit :
 Hi, again!

Hi !

 i have solved the problem by rewriting feed method with this code.

Thanks, that was indeed the solution !

Patch adapted and applied, thanks !


Romain

PS: Shall I credit Romeo on the changelog ?

--
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Output AAC

2009-04-03 Thread Romain Beauxis
Hi !

Le Friday 03 April 2009 23:02:30 Romeo, vous avez écrit :
 is it possible to steam AAC to icecast using internal liquidsoap encoder?

 i mentioned that you have output.file.aac operator, but not
 output.icecast.aac

Watch this mailing list, this might come quite soon... :-)


Romain

--
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Output AAC

2009-04-04 Thread Romain Beauxis
Le Saturday 04 April 2009 11:26:04 Gilles PIETRI, vous avez écrit :
 Don't cry for me.. Argentiina :)

 Thanks for your work Romain, I really look forward to making liquidsoap
 cry, the shouting became really annoying!

Here is the (fixed) changelog !

Switched to custom implementation of the shout protocols !
 New with this:
 
* Support for arbitrary headerless formats using content-type and external   
encoding process 

* Wrappers updated for lame and shoutcast, added custom irc, aim and icq 
headers for shoutcast. fixes #192 

* Added wrappers for icecast and shoutcast using aacplusenc. fixes #220 and 
#136 

* Completely rewrote external encoder start/stop mechanisms. Now relies 
strictly on the encoding process' good behaviour. See (updated) documentation 
for more details. 

* Added restart_encoder_delay to regulary restart the encoder. Useful for lame 
and aacplusenc encoders since they tend to fail after some time. Defaults to 
3600 seconds for these encoders. 

 Of course, this might not be bug prone, so feel free to test and report :)

Enjoy !


Romain
-- 
Say I remember,
when we used to sit,
In the gouvernement yard in Trenchtown,
(...)
In this great future,
you can't forget the past,
So dry your tears I say,
No woman no cry...

--
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Thank You

2009-04-06 Thread Romain Beauxis
Le Monday 06 April 2009 08:53:11 Romeo, vous avez écrit :
 Thank You for adding a possibility to specify a mime type at
 output.external operator !!!

Thanks !

I am not yet satisfied by the current external encoder code. It will be worked 
out soon.

Romain

--
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] output restart failure

2009-04-07 Thread Romain Beauxis
Hi all !

Le Tuesday 07 April 2009 15:10:28 David Baelde, vous avez écrit :
 Probably, ocaml-cry is not sending the same exceptions as ocaml-shout,
 and we are not yet catching them all in the way they should be
 treated. Here, my feeling is that ocaml-cry should not raise Sys_error
 exceptions.

 We'll look into that. In the meantime, feel free to fill in a bug report.

Yep, I confirm the suspicion on ocaml-cry. However, this could also be the 
external encoder if used (didn't have time to look in details). 
I will look at this as soon as possible.


Romain

--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] input.jackd - regular pop

2009-04-08 Thread Romain Beauxis
Le Wednesday 08 April 2009 13:20:25 David Baelde, vous avez écrit :
 The question concerning the initial bug report is: do you see any such
 message in your logs when you hear those pops?

I didn't notice this log in the bjack code. You probably should test with ao 
to see the message.


Romain

--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] liquidsoap FreeBSD 7

2009-04-08 Thread Romain Beauxis
Le Thursday 09 April 2009 00:41:57 Orama Avis, vous avez écrit :
 Good afternoon,

Hi !

 I am now retrying FreeBSD build, this time from trunk.

 My configure args are following:

 ./configure CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib

 however make still is unable find libs:

 gmake[3]: `libao_stubs.a' is up to date.
 ocamlmklib          \
                                 -o ao_stubs  ao_stubs.o -lao \

 /usr/bin/ld: cannot find -lao

 I have checked,  libao.so is in /usr/local/lib

Indeed, I had not seen this. Apparently the -L option is not passed to 
ocamlmklib.

I have found a variable which makes it work:
Index: Makefile.in
===
--- Makefile.in (révision 6515)
+++ Makefile.in (copie de travail)
@@ -30,6 +30,7 @@
 ACLIBS = @LIBS@ @libao_LIBS@
 LDFLAGS = @LDFLAGS@ @libao_LDFLAGS@
 CLIBS = $(ACLIBS:-l%=%)
+LIBDIRS = $(LDFLAGS:-L%=%)
 CC = @CC@
 CFLAGS = @CFLAGS@ @libao_CFLAGS@ -Wall -DCAML_NAME_SPACE
 CPPFLAGS = @CPPFLAGS@

Using this patch, the compilation should hopefully be sucessful.

I don't know however if this is the good place to add this and if the LDFLAGS 
will always contain value of the form -L%.. I have added our specialist for 
these questions, Julien, which may help in solving this issue..


Romain

--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Stopping dynamic.request from prefetching songs

2009-04-09 Thread Romain Beauxis
Le Wednesday 08 April 2009 20:44:41 Robert McAuley, vous avez écrit :
 Hello all,

Hi !

 I run a radio station where users request and then vote for what song
 they want to hear next.  The voting part is critical - each song is
 run through an election, and then that song is played immediately as
 the next song.  The process is controlled via an executable program,
 and I have been using Ices' script input to handle this.

 This immediate decision process is the problem I am having with
 LiquidSoap and its dynamic.request input.  On start of LiquidSoap, it
 executes the script twice, always keeping one song in queue ahead of
 the one currently playing.  This makes the voting process on my site
 not immediate, which is not desired behaviour from my perspective.

 I have tried setting the length setting to 1., however, that
 hasn't changed the prefetching behaviour.

 Is there a way to stop dynamic.request from prefetching?  Or must I
 use JACK or something similar to make sure LiquidSoap does not try
 prefetching?

Ok, I understand a bit better now your issue :)

Have you try to reverse the behaviour ? I mean that, instead of letting 
liquidsoap pull the next song, use a request.{queue,equeue} and push the 
songs as soon as they are elected ? 

In this case, the behaviour should be much more immediate, but you would have 
to provide a fallback source for the cases when there are no next song on the 
queue..


Romain


--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap Controller using Django an Python

2009-04-09 Thread Romain Beauxis
Hi !

Le Wednesday 08 April 2009 16:20:29 Chris Everest, vous avez écrit :
 I have much to learn about ocaml and liquidsoap's internals.  This
 tool only uses the telnet interface, but I am finding that python is
 super clean and easy to work with.  Add in Django and I can
 concentrate on the interfaces (to liquidsoap and the end user) rather
 than all the other tedious web stuff.

No need to learn OCaml, indeed telnet interface should be sufficient :)

By the way, we were considering adding a machine-interpretable output to the 
server instead of the human-oriented one that we currently only support. 

We though about using some JSON. Since this is mainly oriented toward a better 
interaction with GUI or web applications, do you believe this format would be 
useful for you ?

See:
  http://savonet.rastageeks.org/ticket/140

On the same track, we discussed adding per-session data, such as the 
possibility to login into the server and have specific rights and commands.

See:
  http://savonet.rastageeks.org/ticket/142

Feel free to make any remark, here or preferably directly in the tickets :)

 I am currently focusing on error handling so that I can get this
 current code out to everyone.  As well I am trying to stay as close to
 the python/django design as possible.

Many thanks, I am looking forward to see this :-)


Romain

--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Taglib problem, svn upgrading problem

2009-04-15 Thread Romain Beauxis
Le Monday 13 April 2009 19:27:18 Austin Seraphin, vous avez écrit :
 Hi. 

Hi !

 I've recently begun using Liquidsoap. I upgraded from an older svn
 version to the latest stable 0.9..0 release. When I did, I noticed
 errors like the following:

 TagLib: MPEG::Header::parse() -- Invalid sample rate.
 TagLib: MPEG::Properties::read() -- Page headers were invalid.
  
 These happen when trying to read .ogg files, so I'd guess that
 liquidsoap tries to use taglib's mp3 tagging on the wrong file format,
 hence the errors. Unfortunately, these errors keep outputting on the
 console, making it unusable for anything else. 

Hmm.. These messages are not really an issue. If you don't like them, I think 
you should simply run liquidsoap in a screen, as a daemon, or simply telling 
it to redirect its messages to /dev/null:
  liquidsoap (...) /dev/null 21

 I then tried upgrading to
 the latest svn, and ran into another interesting problem.

 After building it, it could not find output.icecast.vorbis, and related
 icecast and shoutcast output plugins. I asked on the #savonet channel,
 and someone suggested using ocaml-cry instead. I added this to the
 PACKAGES file, after seeing it in the PACKAGES.default file. Firstly,
 ocaml-cry didn't have a valid configuration file. An error on line 32
 (if memory serves) of the main ./configure script said @echo instead of
 echo. It couldn't find the configure script for ocaml-cry, so I used
 autoconf to build it. The configuration and making worked for ocaml-cry,
 but then later on, it gave this:

 In outputs/icecast2.ml: Error: Unbound value Cry.ogg_audio

 So there you have my current state. I don't know if upgrading to the
 latest svn will fix my taglib problem, and the ocaml-cry has some
 related issues. I hope this email helps.

your problem with ocaml-cry comes from the fact that you need to bootstrap 
again. Hence, you should do again the whole compilation process, from the 
toplevel, which is:
  ./bootstrap
  ./configure
  make clean
  make

The current state of the toplevel build, with PACKAGE.default, is not really 
useful. We should do something about it soon..


Romain



--
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] large media library

2009-04-16 Thread Romain Beauxis
Le Thursday 16 April 2009 16:04:59 Brandon Casci, vous avez écrit :
 Hello

Hi !

 I've learned a lot over the past few weeks. A setup with live source,
 that's backed up by a local media source.

Good !

 Just curious, do any of you have large media libraries? 10,000 tracks
 or more? If so, how do you handle keeping your playlists fresh and
 interesting? In the past I've used tools which selects songs from a
 database with various rules applied to the selection, to ensure
 interesting rotation.

On Dolebrai we are using an external database. Its seems more appropriate to 
me for dealing with large sets of data. At least that's what database are 
about after all :)


Romain

--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] input.http with flac icecast stream

2009-04-16 Thread Romain Beauxis
Le Thursday 16 April 2009 15:57:22 Chris Everest, vous avez écrit :
 Don't rack your brain or prioritize.  I can still use
 output.file.flac() to the local file system, so that's really where I
 need the lossless encoding.

Oki :)

I guess you are using the latest SVN version for a correct FLAC output 
support. The code which implements it, output.file.external, is still a bit 
young, don't hesitate to report any issue :)

By the way there is currently no output.file.flac.. Did you make one yourself 
or 
you were talking about a prospective ? This operator can be added quite 
quickly (it is defined at the level of the liquidsoap scripting language).

Romain


--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] large media library

2009-04-17 Thread Romain Beauxis
Le Thursday 16 April 2009 23:33:22 Brandon Casci, vous avez écrit :
 That sounds good. How do you have liquidsoap getting query results?  
 Also are your query result simply track URI's

We use a request.dynamic source that pulls the result from a custom script.
The query result is not only a URI, we pass additional informations using the 
annotate protocol. For instance:

  annotate:bla=foo,id=1234:/path/to/file.mp3

Will add the two metadata bla and id with their respective values to the 
metadata of the file mentioned at the end. The general grammar for this query 
is:

 annotate:label=value,(...):URI

where URI can be another protocol, such as ftp:// for instance..


Romain


--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] large media library

2009-04-17 Thread Romain Beauxis
Le Friday 17 April 2009 09:23:12 Brandon Casci, vous avez écrit :
 I've been checking out this script. It's interesting!

 http://savonet.sourceforge.net/doc-svn/dolebrai.html

 What language is the liq script based on? It's unlike anything I'm used to.

Well, it is a liquidsoap script, so the language is liquidsoap itself :)

 I've read about specific functions in the API docs, but I'm still
 unclear. These areas for example

 ###

 default = single(id=default,default)

 s =
   request.dynamic(id=scheduler,default_duration=30.,length=1.,
 fun () -
   request(get_process_output(#{scripts}/scheduler.pl 2
 #{scripts}/log)))

 s = fallback([ request.queue(id=q), s, default ])

 ###

  default = single(id=default,default)

 I understand what is happening here, you're taking an individual mp3
 file, and setting up to be a source.

  s =
   request.dynamic(id=scheduler,default_duration=30.,length=1.,
 fun () -
   request(get_process_output(#{scripts}/scheduler.pl 2
  #{scripts}/log)))

 This is a little confusing to me. I understand this is probably the
 source which calls a perl script, which queries your database and
 outputs a result in the annotated format you mentioned. I don't
 understand the purpose of fun(). I noticed fun() is defined in an
 add_protocol function, and is setup to take parameters. Though no
 parameters are passed in though request.dynamic, at least not in a way
 I understand. Can you explain what's happening here?

Well, you basically got it right :)

fun is a keyword specific to functional language. In fact:
  fun (x) - print(x)
is equivalent to:
  def f(x) = 
print(x)
  end

It is not really equivalent in the sense that there can be syntactic side-
effects, but that's the idea..

Hence, here:
  fun () -
 request(get_process_output(#{scripts}/scheduler.pl 2 #{scripts}/log))
Is a function that takes no value and returns a new query.

In particular:
  get_process_output: returns the output of the script.
  request: create a request based on the output of this script.

Romain

--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] large media library

2009-04-17 Thread Romain Beauxis
Le vendredi 17 avril 2009 10:07:37, Brandon Casci a écrit :
 I think I get it. fun - is a way to create a anonymous function, and
 you'd probably use fun() - if your function code is only a single
 line and used in one place. You would go with a full def, if your
 custom function were more advanced or was used repeatedly. Correct?

Yep !

  add_protocol(dolebrai,
   fun (arg,delay) -
 get_process_lines(#{scripts}dolebrai-filename #{quote(arg)}))

 In this case, the function has two args, arg and delay. How are the
 values for those arguments being supplied? I don't see any explicit
 calls to to add_protocol.

Yes. This function registers a new request protocol. It will be used when a 
request of the form: dolebrai:arg is received.

The two arguments are the arg (part after dolebrai:) and the delay for getting 
the song (usually 60 seconds). This possibility is very useful if you want to 
extend liquidsoap's capabilities for fetching songs or applying a treatement 
to the song. 

 I'm not sure there if you sense much need for this, but if you help me
 understand the language I can try to write a code generator for simple
 use cases. Maybe something something like a config file that defines
 how you want tracks rotated, backup sources and so on, and a ruby
 script (that's what I use most) that generates a .liq based on
 contents of config.

Héhé, nice idea.

I have written a similar thing which you can find here:
  http://savonet.rastageeks.org/browser/trunk/liq-contrib/simpleliq.in
However, it is nothing serious and was just a proof-of-concept.

But, clearly, a tool to generate a script based on some fixed parameters would 
be a great thing for newcomers who don't want (yet) to program their streams 
but still benefit from the flexibility :)



Romain

--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Muted output

2009-04-17 Thread Romain Beauxis
Le Saturday 28 March 2009 10:59:27 Romain Beauxis, vous avez écrit :
 Yes, indeed, several issues of this kind have been noticed, including by
 myself. We never managed to get an hand on it, and almost all the time it
 disapeared without any reasons for it.

 The last time I had it, I was using the custom liquidsoap debian 0.9.0
 package. I got rid of it by using a binary built from source on the
 machine.

Just to confirm that I again had this issue today: apparentely main thread 
stops operating, while secondary threads are still working good, including 
telnet connections.

I will investigate shortly, though I have little idea on how to debug this.. 
Any idea ?


Romain


--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] deb Hash Sum mismatch

2009-04-18 Thread Romain Beauxis
Le Saturday 18 April 2009 07:14:38 noser...@no-log.org, vous avez écrit :
 Hi there,

Hi !

 I've a problem since this morning with the deb package.
 I've tested on two differents machines :

Yes, there was a crash on the hard drive of the serveur yesterday and some 
files got corrupted when restoring the file system.

I have regenerated a new package: liquidsoap 0.9.0~savonet-2


Romain

--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] convert mp3 stream to aac stream

2009-04-22 Thread Romain Beauxis
Hi all !

Le Wednesday 22 April 2009 05:03:09 David Baelde, vous avez écrit :
 Romain is our expert in exotic formats (i.e., other than
 mp3/ogg/wav), but I'll try to answer.

 The shout library that liquidsoap 0.9.0 uses for sending data to
 icecast does not allow us to specify the mime type of the stream.
 Hence, sending AAC is not properly supported: we send the right audio
 data but the server does not treat it correctly -- or at least the
 listener does not get it as AAC, I'm not sure. In any case, this is
 fixed with the SVN version which now uses our own version the shout
 library, allowing to pass the correct mime-type and get proper AAC
 streaming through icecast.

 It is safe to switch to SVN: I'd say that it is currently as stable as
 0.9.0. It's a bit long to compile the first time, but it's a good
 investment if you want to follow the new features, notably regarding
 AAC.

I confirm what David said.

More details there:
  http://blog.rastageeks.org/spip.php?article33

Romain


--
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Issue with metadata using AAC (m4a) files

2009-05-03 Thread Romain Beauxis
Hi !

Le Thursday 30 April 2009 17:28:15 Romaric, vous avez écrit :
 I find this:

 (* Disable other formats for now... *)
 if (format  MP3) then
   raise Not_found ;

 It has been inserted in the file taglib_plug.ml under
 liquidsoap\liquidsoap\src\formats with the revision 6456

Yes, for now taglib is only used to read mp3 metadata. Back in the time we 
added support for taglib, we did not need more.

Also, if I remember well, m4a files cannot be decoded by the internal ocaml-
faad support (cannot parse the container), hence it is played by an external 
binary decoder, most probably faad.

There is a support for the metadata using what is returned by faad -i but 
the problem surely comes from there. Could you check the output of:
  faad -i /path/to/audio.m4a

Hope this helps.

Romain

--
Register Now  Save for Velocity, the Web Performance  Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance  Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Mix Problem

2009-05-05 Thread Romain Beauxis
Hi !

Le Thursday 30 April 2009 13:11:33 David Baelde, vous avez écrit :
 What do you mean by mix? cross-fading? If so, it could be that there
 is a small latency leading to an temporary failure in the dynamic
 request source: from the point of view of the crossfade, a failure is
 a failure, long or short, and you don't cross-fade over failures.

I think the problem is that same as described last summer: for apparently no 
reason, the crossfade (or smart crossfade) doesn't cross the tracks.

Jeff: it would be good for us to have some logging of the issue. So far, we 
were inable to track down the reason for this, nor to reproduce -- I have 
smart crossfade without issues in production for instance.

A good starting point would probably be a ticket with some script that gives 
the issue, and the corresponding logs for instance..


Romain

--
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] input.jackd - regular pop

2009-05-09 Thread Romain Beauxis
Hi !


Le Friday 08 May 2009 18:18:12 noser...@no-log.org, vous avez écrit :
 Is there a wrong buffer managment or something between liquidsoap and
 bjack ?

 Hope this help !

Thanks for the report !

In fact, this bug is a known bug:
  http://savonet.rastageeks.org/ticket/203

I have started working on it, I can provide a preliminary patch if you feel 
like testing :)


Romain

--
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Compilation liquidsoap from svn libmad undefined reference

2009-05-09 Thread Romain Beauxis
Le Friday 08 May 2009 18:09:16 Peter Schälchli, vous avez écrit :
 Hi @ all on the Users ML from Savonet

Hi !

 1. Who can say the liquidsoap is a cool tool, i have this on my Ubuntu
 and it works fine

Thanks !

 Now the Problem:
 I have Savonet from SVN on a Opensuse 10.3 Server and configure is fine
 but on the compilation come this fault:
 http://www.schaelchli.ch/fail.txt
 I testet this also with the full tar.gz with the same problem.

 What is wrong?

I don't know yet..
Could you go on the ocaml-mad directory (full tarball compilation), and 
manually do:
  ./configure 
  make clean
  make

This would allow to check the variables used for compilation.

Also, where is your libmad installed ? /usr/{lib,include} or 
/usr/local/{lib,include} ?

 Greetings and have a nice weekend

To you too ! :)

Romain

--
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] script call, request.dynamic

2009-05-09 Thread Romain Beauxis
Le Saturday 09 May 2009 10:15:56 Guillaume Rose, vous avez écrit :
 Hi,

Hi !

 I use request.dynamic in order to create a dynamic playlist. Although,
 liquidsoap call, at launch, 3 times, then
 it keeps in cache URIs of 2 songs. 

Yes, that is the current behaviour: liquidsoap caches some songs to make sure 
it alw  ays have something available to stream in the future..

 Is there a solution to stop this ? true
 real time ?

There is no real solution for now. you can play with the parameters in order 
to reduce the cache length.

There is a ticket dedicated to this:
  http://savonet.rastageeks.org/ticket/169

David agreed recently that we whould review this. However, it is not an easy 
change, so it might take some time to do it properly. 

In the mean time, you can give a try to the patch attached to the above 
ticket. It should work, though it has not been tested intensively..



Romain


--
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] How can one play a playlist just o nce, and reload it each time it's called

2009-05-13 Thread Romain Beauxis
Le Wednesday 13 May 2009 13:33:55 Kero, vous avez écrit :
 Hello,

Hi !

 Writing here as suggested on IRC.

 Here is the deal :

 I'm running a webradio with a music playlist most of the day, and some
 live shows usually during the evening. These show can last from 1 to
 more than 7 hours, it all depends on the mood of the DJ.
 All live shows are saved by liquidsoap in different files using
 output.file.mp3

 Now, I would like to be able to rerun my shows during nights and
 afternoons. It has to stop and go back to the main playlist once the show
 has been entirely rebroadcasted. And also at special hours, even if the
 rebroadcast is still running.

 So I was thinking of something like :

 pre_rerun = playlist.once(path/rerun.m3u)
 music = playlist(path/music.m3u)
 true_rerun = fallback([pre_rerun, music])
 switch([ ({10h00-16h00}, music),({16h00-20h30},
 true_rerun),({20h30-3h00}, music),({3h00-10h00}, true_rerun)] )

 The main problem is : playlist_once has no way of reloading rerun.m3u
 - so it would play the same playlist everyday even tho the files are
 changing.

It is even worse: playlist.once will not be available any more when it has 
finished, so that you shall need to restart liquidsoap..

 I've heard there was a workaround for this, a way to force a playlist
 to run only once per switch while being regularly reloaded. I would be
 interested by such a solution. :-)

For this case, I have another idea in mind. You should be able to perform 
something relatively simple using a queue of request and a recursive task.

Something like:

rerun = request.queue(id=rerun)

Now the trick is to register a recursive task for adding the new live shows. 
Roughly, something like:

def add_live() = 
  # We check if it is time to push a request
  if 16h00-20h30 or 3h00-10h00 then
# We check if we are already running a live
  ret = list.hd(server.execute(rerun.queue))
  if ret ==  then
# We get the file/uri to play (can be a obtained from a script or 
# anything else)
file = (...)
# We push the request
ignore(server.execute(rerun.push #{file}))
  end
  end
  # We run again in one minute
  60.
end

Eventually, we register the task:
add_timeout(60., add_live)

The purpose of this recursive task is to feed the rerun source. It will feed 
it if it is the correct time for broadcasting the live archive, and only if 
another archive is not already being played.

When an archive ends, within at most one minute, if it is still time, it will 
start another live.

We could also check the duration of the file, using file.duration, and if there 
is not enough time for it, don't push it, but I am nto sure there is a 
function for that in the language for now..

Eventually, we can add the switch that will make sure we play the archive at 
the correct time:

# This transition skips the current track when switching..
def transition(a,b) =
  source.skip(a)
  # This eats the last remaining frame from a
  sequence([a,b])
end

full = switch(track_sensitive=false, transitions=[transition,transition], 
   [({16h00-20h30 or 3h00-10h00}, rerun), ({true}, music) ])

We set track_sensitive to false to make sure that the switch can occur in the 
middle of an archive. We could set it to true if we check for available time 
before starting a live, as explained above.

The transition function is also needed when track_sensitive is false. It makes 
sure that if switching back to music in a middle of an archive, then this 
track is skiped, such that the next time we play an archive, it starts with a 
fresh one.


I did not test the code above, but I think it should mostly be correct. Let me 
know if you need more details.. I may also add something inspired by that in 
the standard library.


Romain

--
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] normalize/skip_blank

2009-05-15 Thread Romain Beauxis
Le Friday 15 May 2009 02:05:51 Brandon Casci, vous avez écrit :
 Hello

Hi !

 If you choose to use normalize and skip_blank, do you need to apply
 them for each playlist, or can you apply them to the whole chain of
 playlists?

In general, skip_blank can be used on the top level of your playlists. 
The same applies for normalize. 

However, you should not apply skip_blank on the last source before an output 
if this source includes live sources, such as input.http or input.harbor. For 
these sources, skipping would not work. Normalize should work, however, but 
you should care about sound issues when normalizing. More details there:
   http://savonet.sourceforge.net/doc-0.9.0/replay_gain.html

 For example..looking at the case study from the website
(...)
 radio = add(normalize = true, [radio, switch([({0m0s},clock)])])

Beware that the meaning of the normalize parameter here is not the same as the 
meaning of the normalize operator. In add, normalize means that, when adding 
for instance a and b, the resulting sound samples are normalized, in the form:
  a + b / 2
Without normalization, the resulting samples are simply:
 a + b

Romain


--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Writer is late

2009-05-18 Thread Romain Beauxis
Le Monday 18 May 2009 19:59:51 Pascal Vanbel - Radio Universitaire Namuroise - 
107.1MHz FM, vous avez écrit :
 Hello,

Hi !

 Liquidsoap sometimes put in the log several Writer is late and the
 song isn't playing nice (saturation mostly) once or twice a day

 Someone knows what causes this problem

Well, this is hard to tell without the script. My guess is that you are using 
alsa and this comes from it.

The good news in this case is that we have fixed this recently in the SVN, so 
you should be able to test the fixed code there..


Romain


--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Issues using request.dynamic in daemon mode

2009-05-19 Thread Romain Beauxis
Hi !

Le Tuesday 19 May 2009 04:10:51 Frank Berthold, vous avez écrit :
 Any assistance will be much appreciated.

Thanks for this report, it seems interesting.

Could you reproduce the logs with more verbosity, it would help to understand 
better the issue.. You can add to your script:
  set(log.level,5)

Thanks !


Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] maintaining shout/icecast output

2009-05-19 Thread Romain Beauxis
Le Tuesday 19 May 2009 23:31:37 Brandon Casci, vous avez écrit :
 Hello

Hi !

 I've been running liquidsoap regularly for a few days, it does well
 for a while but eventually loses the shoutcast output connection after
 some time, meaning the servers are no longer sourced. There appears to
 be no dropped connection information in the log. The log does show
 liquidsoap is still running and playing tracks though. I'm using the
 0.9.0 debian package. Is this  a known issue?

Yes, this is probably a known issue. I would like to have more details to find 
out more on this issue...

Can you provide logs ? Script ?
Could you try to reproduce with a minimal script ? (by minimal I mean removing 
one by one the operators in the script in order to reproduce the bug with the 
less operators/sources as possible)

Also, which package did you install ? Debian's lenny/testing/unstable ? Custom 
packages made by ourselves ? In this case, daily package or stable backports ?

Eventually, what is your distribution ? Could you give us your kernel version 
(check uname -r) ? And the architecture (uname -a) ?


Thanks for your help !


Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap on FreeBSD

2009-05-25 Thread Romain Beauxis
Hi !

Thanks for you detailled report. Here are some comments:

Le Tuesday 26 May 2009 05:30:10 Andrew, vous avez écrit :
 In order to get configure to go through cleanly I had to use this
 configure command:
 CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/
 usr/local/include ./configure

Ok. That is probably normal.

 To compile with OSS support I needed to create /usr/src/include/linux
 and copy the following sound include files there:
 cp /usr/src/sys/dev/sound/pcm/sound.h /usr/src/include/linux/sound.h
 cp /usr/src/sys/sys/soundcard.h /usr/src/include/linux/soundcard.h

Could you check with the attached patch if it fixes oss compilation for you 
without this hack ?

 With the LDFLAGS on the command line I was able to make it go through
 the configure process successfully, however make would continually fail.

 To fix the issues with make I had to symlink the following libraries
 from /usr/local/lib to /usr/lib

 ln -sf /usr/local/lib/libmp3lame.so /usr/lib/libmp3lame.so
 ln -s /usr/local/lib/libmad.so /usr/lib/libmad.so
 ln -sf /usr/local/lib/libogg.so /usr/lib/libogg.so
 ln -sf /usr/local/lib/libvorbisenc.so /usr/lib/libvorbisenc.so
 ln -sf /usr/local/lib/libvorbisfile.so /usr/lib/libvorbisfile.so
 ln -sf /usr/local/lib/libshout.so /usr/lib/libshout.so
 ln -sf /usr/local/lib/libfaac.so /usr/lib/libfaac.so
 ln -sf /usr/local/lib/libfaad.so /usr/lib/libfaad.so
 ln -sf /usr/local/lib/libsamplerate.so /usr/lib/libsamplerate.so
 ln -sf /usr/local/lib/libtag.so /usr/lib/libtag.so
 ln -sf /usr/local/lib/libtag_c.so /usr/lib/libtag_c.so

Ok. We had found the issue for this some times ago.
I just made a big commit on trunk/ in order to fix this. 
Could you try with the latest SVN trunk if you can compile without this hack ?

 This fixed the problems of finding codecs and such, however despite
 specifically compiling using gmake it would try and use the FreeBSD
 make instead. This forced me to temporarily rename the BSD version and
 symlink gmake:

 mv /usr/bin/make /usr/bin/make.good
 ln -sf /usr/local/bin/gmake /usr/bin/make
 make

Hmm..
We have tried to remove all hardcoded make calls. Apparently there still are 
some of them..
Could you send us the compilation logs where this fails so that we can fix them 
?

 And lastly in order for 'make install' to work I had to add a user and
 group named liquidsoap using adduser:

 adduser

 make install

Hmmm..
So far, this part is assumed to be done by the user/administrator:
# User ${user} and group ${group} are expected to exist.
# They are defined in Makefile.defs, written by configure.

However, since you are not the first to complain, I wonder whether this could 
be done in a better way..

 This produced a working /usr/local/bin/liquidsoap binary that worked
 with OSS audio input.

Good ! You seemed quite patient :)

 For some reason though I had to remove the /usr/local/lib/liquidsoap/
 0.9.0/utils.liq file as the program would just hang there with it in
 place.

That is really strange.
Using liquidsoap without utils.liq will be mush less usefull. A lot of useful 
functions are defined there.. It would be good to debug and fix this issue..
Do you have more informations ?


Romain

Index: configure.ac
===
--- configure.ac	(révision 6589)
+++ configure.ac	(copie de travail)
@@ -1166,7 +1166,7 @@
 AC_ARG_ENABLE([oss],AC_HELP_STRING([--disable-oss],[don't use OSS]))
 
 if test x$enable_oss != xno ; then
-  AC_CHECK_HEADERS([linux/sound.h],[W_OSS=yes])
+  AC_CHECK_HEADERS([sys/soundcard.h],[W_OSS=yes])
 fi
 
 AC_SUBST(W_OSS)
Index: src/io/oss_io_c.c
===
--- src/io/oss_io_c.c	(révision 6589)
+++ src/io/oss_io_c.c	(copie de travail)
@@ -5,7 +5,7 @@
 #include caml/misc.h
 #include caml/mlvalues.h
 
-#include linux/soundcard.h
+#include sys/soundcard.h
 #include sys/ioctl.h
 #include assert.h
 
--
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers  brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing,  
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA,  Big Spaceship. http://www.creativitycat.com ___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap on FreeBSD

2009-05-25 Thread Romain Beauxis
Le Tuesday 26 May 2009 13:36:27, vous avez écrit :
  Could you check with the attached patch if it fixes oss compilation  
  for you
  without this hack ?

 Unfortunately it did not. I got this:

 checking linux/sound.h usability... no
 checking linux/sound.h presence... no

 And at the end:
 - OSS   : no

 The patch did apply cleanly in the savonet/liquidsoap directory.

I forgot to mention that you need to run ./bootstrap again for this patch to 
work..

  Ok. We had found the issue for this some times ago.
  I just made a big commit on trunk/ in order to fix this.
  Could you try with the latest SVN trunk if you can compile without  
  this hack ?

 I just tried SVN revision 6591 and that seems to have fixed things.  
 However I did need to run gmake with the LDFLAGS:

 CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/
 usr/local/include gmake

 after that it compiled cleanly without having to make any symlinks to  
 libraries or gmake.

Great !
It seems strange that you still need to pass the compilation variables. 
However, this is far much better..

  Hmmm..
  So far, this part is assumed to be done by the user/administrator:
  # User ${user} and group ${group} are expected to exist.
  # They are defined in Makefile.defs, written by configure.
 
  However, since you are not the first to complain, I wonder whether  
  this could
  be done in a better way..

 I think if there was some information in INSTALL that would be  
 suitable. It just threw me off because I wasn't expecting that. 

Yes. I think we should detect when the user/group does not exist and issue an 
error in this case..

 The LDFLAGS on the command line was also a bit non-intuitive as I'm used  
 to libraries being automatically discovered when running ./configure --
 prefix=/usr/local. It's not a big deal though.

Ok, I will look at that.

  That is really strange.
  Using liquidsoap without utils.liq will be mush less usefull. A lot  
  of useful
  functions are defined there.. It would be good to debug and fix this  
  issue..
  Do you have more informations ?

 The SVN releases seems to have fixed this issue as well.

Good !

 One note. With ocaml-faac and ocaml-faad enabled in PACKAGES it would  
 not compile cleanly. I don't particularly need regular AAC so that is  
 ok for my purposes, but I thought I would report it:

Ok, will look at that.


Romain

--
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers  brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing,  
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA,  Big Spaceship. http://www.creativitycat.com 
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] External aacplusenc on FreeBSD

2009-05-25 Thread Romain Beauxis
Le Tuesday 26 May 2009 13:47:33 Andrew, vous avez écrit :
  Humm...
  The external mechanism is pretty complicated. I am not surprised it  
  does not
  work out of the box.
 
  For a start, could you try to test with the latest SVN trunk code ?  
  This part
  has been rewritten recently, and there were important changes in the
  implementation.

 SVN release 6591 appears to have resolved the issue here. Aacplusenc  
 how works.

Good !

 One bug that I discovered with it on both Linux and FreeBSD was that  
 it does not restart correctly using the restart_encoder_delay field.  
 With this set to 3600, I got:

 2009/05/25 20:39:40 [output(dot)icecast(dot)aacplusenc:3] Restarting  
 encoder after delay (3600s)


 encoding finished

 And it never did restart. I also have these values in my config (as in  
 my previous post);

   ~restart=true,
   ~restart_delay=3
   ~restart_on_crash=true,
   ~restart_on_new_track=false,
   ~restart_encoder_delay=3600

Hmm. I need to debug this more. Will try to look more in details. Of course, 
any patch/contribution is welcome :)

 With a working restart_encoder_delay will there be any cutouts in the  
 audio while the encoder restarts or will liquidsoap just continue to  
 store audio in the buffer as it comes in from the soundcard and then  
 pump it out to the encoder once it comes back up?

There should not be any loss, from the point of view of liquidsoap, the 
encoder is just restarted, but no audio is lost. For the player, however, 
there can be a glitch.

 I understand that the hourly restart is due to bugginess with  
 aacplusenc. Is this because it's a child process instead of a library?  

Yes !

 Perhaps it would be useful to use libaacplus instead? I know that's  
 what the Darkice project is using:

 http://lists.tyrell.hu/pipermail/darkice-list/2008-November/000314.html

Haha !
I initially looked for such wrapper to turn aacplusenc into a library. 
However, upstream communication was not very sucessful, and I decided to 
switch to external encoders for that reason.

I do not know f it is a good idea to use this library: its API might change, 
or support get lost.. However, any contribution on this topic would be of 
course welcome. For myself, I do not know yet if I want to bind this library.


Romain

--
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers  brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing,  
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA,  Big Spaceship. http://www.creativitycat.com 
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] MP3 output problem

2009-05-28 Thread Romain Beauxis
Le Friday 29 May 2009 01:21:20 Jean-Francois Mauguit, vous avez écrit :
 Hello,

Hi !

 I'm installing liquidsoap on a brand new server. But I've a problem  
 with my output MP3 (output.icecast.mp3). It says unbound symbol  
 output.icecast.mp3. 

Indeed, that seems the issue.

 After reading the forums it sounds to be related  
 to missing MP3 support in the OS but I've installed liblame-dev.

 I can read in the make output
 OCAML_LFLAGS   : -linkpkg -package unix -package threads -package str -
 package bigarray dtools.cmxa duppy.cmxa shout.cmxa -package xml-light  
 xmlplaylist.cmxa ogg.cmxa vorbis.cmxa speex.cmxa mad.cmxa lame.cmxa  
 theora.cmxa gavl.cmxa bjack.cmxa alsa.cmxa ao.cmxa samplerate.cmxa  
 taglib.cmxa faad.cmxa faac.cmxa soundtouch.cmxa portaudio.cmxa  
 pulseaudio.cmxa ladspa.cmxa

 It sounds lame is there. I've no error during the build.

 But I've the same error on 0.3.8 and 0.9 installation...

Indeed, this looks correct.

 Anyone has an idea ?

Hmmm.. We should need more logs of the compilation to see where the issue can 
happen.

Also, the dummy answer: are your sure you are testing against the compiled 
liquidsoap and not another binary, installed by the packaging system, for 
instance ?


Romain

--
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT 
is a gathering of tech-side developers  brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing,  
iPhoneDevCamp as they present alongside digital heavyweights like Barbarian 
Group, R/GA,  Big Spaceship. http://p.sf.net/sfu/creativitycat-com 
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] line in and Metadata

2009-06-04 Thread Romain Beauxis
Le Thursday 04 June 2009 07:18:22 Ramon Roche, vous avez écrit :
 Hey guys

Hi !

 i am stuck in a project in which i need to use a Line in (got
 this working easily) but i need to get the Metadata going as well, i am
 wondering how to get the data into the application, i have read of
 telnet on liquidsoap but i am yet to find any good docs on using telnet
 with liquidsoap

In order to inject metadata into your source, you can use the insert_metadata 
operator.

You enable it by adding in your script:
  radio = insert_metadata(id=radio, radio)

That way, the radio source is redefined with the possibility to inject 
metadata. 

When running the script with the telnet server enabled:
  set(server.telnet, true)
you should be able to connect to the port 1234 on the localhost:
  telnet localhost 1234

This should open a console where you can type commands. For instance help 
will return the list of available commands. Also, some commands are self-
documented, so you can ask for their documentation.

In your case, you can then insert metadata, for instance:
  radio.insert title=foo,artist=bar

For advanced usages, you can also execute this command within the script it 
self, using the server.execute operator:
  server.execute('radio.insert title=foo,artist=bar')
This operator returns the strings corresponding to the output of the command. 
Usually you don't care about them and you ignore the output:
  ignore(server.execute('radio.insert title=foo,artist=bar'))



Romain



--
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Metadata update according with live show info

2009-06-07 Thread Romain Beauxis
Le Sunday 07 June 2009 20:11:29 Romeo, vous avez écrit :
 Hi, Savonet Team!

Hi !

 is it possible to update stream metadata using input.harbor headers?

 i suggest i must do it this way, but it doesn't work. i get blank title
 instead.

Yes, the liquidsoap language is a functional language. Hence, it is not 
possible to change the value of a variable. This is done by redefining a new 
variable.

For that reason, 
  x = y
is a boolean, true if x = y and false otherwise.

In some cases, however, this is not possible to redefine the variable
You can use the string.ref operator. This operators returns two functions, one 
for reading the current registered value, and another one to register a new 
value. 

In your precise case, you can do even better, and avoid string.ref. This goes 
like this:

def liveStart(headers)
log([LIVE-START]: live source goes up! Switching from playlist...)
title = headers[ice-name]
ignore(server.execute(liveMeta.insert title=\#{title}\))
end

liveInput = input.harbor(id=live,
live.ogg,
buffer=10.,
password=livePasswd,
on_connect=liveStart)

liveInput = insert_metadata(id=liveMeta, liveInput) 

That way, a new metadata will be inserted each time the harbor input receives 
a new connection.


Romain


--
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Non english symbols in tags

2009-06-08 Thread Romain Beauxis
Le Monday 08 June 2009 14:43:50 Vadym, vous avez écrit :
 Hi all

Hi !

 I listen mp3 to icecast
 but LS send russian(cp1251) tags not properly
 on which encoding I must fill tags in mp3 ?

I think we should need more details to help you on this issue.

What is exactly the source of the tags ? Is it an audio stream from another 
icecast server or local files ?

Once we know the origin of the metadata, we can look at the encoding used..

Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] line in and Metadata

2009-06-08 Thread Romain Beauxis
Hi !

Le Thursday 04 June 2009 21:06:07 Ramon Roche, vous avez écrit :
 great, i can connect to telnet from here, which is great, i found out
 after i initially sent this email that i could do it, but i ignored how
 to send messages back to my instance of liquidsoap

 after reading your email i went and added
 radio = insert_metadata(id=radio, radio)
 and i connected via telnet, typed help and the command showed up
 at this point i was really happy hahaha
 and then, i typed
 radio.insert title=Song Title,artist=Artist Name
 and i didn't notice any change on my stream, and all of a sudden my
 stream just stopped w/o showing nothing on the log

 i am about to test the stream with curl to see the actual data, do you
 have any idea of what may be wrong? 

Not at that point. It would be nice if you could show me a script and explain 
how to reproduce the issue here.

 maybe telnet is interrupting the
 icecast stream?

That's possible if the telnet server crashed the liquidsoap instance, though 
unlikely. By the way, which version of liquidsoap are you using ?


Romain


--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] line in and Metadata

2009-06-08 Thread Romain Beauxis
Hi !

Le Tuesday 09 June 2009 01:14:40 Ramon Roche, vous avez écrit :
 thanks for your reply, here is my script

That script works correctly here, both with SVN and 0.9.0.

Do you have an extract of the logs during the failure ?


Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] make install liquidsoap 0.9.0 svn revision 6610 error

2009-06-10 Thread Romain Beauxis
Le jeudi 11 juin 2009 01:17:59, fruity a écrit :
 Hi,

Hi !

 as subject I was just compiling the latest svn and I got this error
 while doing make install, updating to 6609 solved :)

Thanks for the report. Fixed now.. !


Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Weird problems when calling a playlist of only 1 title

2009-06-10 Thread Romain Beauxis
Hi !

Le mercredi 10 juin 2009 02:46:55, Kero a écrit :
 My guess is : each time this playlist is refreshed, the bug makes the
 refresh going a little worse. At the beginning it's not that bad, but
 after a few dozens (hundreds?) of refreshes, liquidsoap really starts
 to lose control.

Your analysis was correct.

While preparing another commit (a nice surprise that David suggested), I 
realized there was a bug in the feeding task for the queued source and also 
the playlist source. 

Basically, the feeding was not doing what we wanted it to do, resulting in the 
possibility to spawn an important number of parrallel refresh when the initial 
request was failling..

This is now hopefuly fixed by commit [6612].


Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] We need a way to control request.dynamic pre-load function

2009-06-10 Thread Romain Beauxis
Hi all !

Le mardi 09 juin 2009 23:57:15, David Baelde a écrit :
 On Tue, Jun 9, 2009 at 7:13 PM, Robert McAuleyrmcau...@rainwave.cc wrote:
  Maybe enough prodding by other users and we'll see this issue bump up
  the priority list for the Liq devs.  I know it's the only thing
  stopping me from deploying this on my production site. :)

 Nice prod indeed :)

 Bumping up a bit more...

Thanks to a very good suggestion from David, this should be fixed now !

Indeed, now queued sources (request.queue, request.equeue and playlist) take 
the estimated remaining time into account for fetching new files.

This means that now these sources may fetch much less files in advance. By 
default, the first file should be sufficient. It can happen that two files are 
queued from time to time due to the estimated nature of the remaining time, 
but this should be very minimal.

This also mean that now the secondary queue, the one that you can edit in 
request.equeue, should contain all queued files, and the primary_queue only the 
file currently being played.

Default values have also been changed to enable this new behaviour. You can 
fallback to the old behaviour by setting back to old values (length=60.) and 
setting the new conservative option to true.

Eventually, one must be carefull with the queue length. It is possible to set 
it to a minimal value, like 0.1 in order to be sure that only one file is 
loaded. However, when using an operator that buffers audio data in advance, 
like the crossfade, the new file may be ready too late. 

For instance, the crossfade sources buffer about 5 seconds of the end of each 
files. Hence, if the length is less than this value, the new file will not be 
ready quickly enough, leading to either the source being unavailable for a 
short time, or at least the crossfade transition being disabled.


Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] We need a way to control request.dynamic pre-load function

2009-06-13 Thread Romain Beauxis
Le samedi 13 juin 2009 10:56:59, vous avez écrit :
 Here it is

 http://solvik.pastebin.com/mbf62124

Ok.

I suspect the crossfade to be the culprit. There is high change that the 
crossfade can eat track limits and then prevent the dedicace to be played.

Could you try to put the dedicace fallback *before* the crossfade ?


Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Preroll sound

2009-06-14 Thread Romain Beauxis
Le dimanche 14 juin 2009 18:34:54, Jean-Francois Mauguit a écrit :
 Hello,

Hi !

 Is it possible to pass trough the output.icecast a sound to play when  
 a listener connect to icecast on the liquidsoap mount point ?

I don't think it can be done properly in liquidsoap. However, there is an 
option in icecast2 for that purpose:
intro

An optional value which will specify the file those contents will be sent to 
new listeners when they connect but before the normal stream is sent. Make 
sure the format of the file specified matches the streaming format. The 
specified 
file is appended to webroot before being opened.

http://www.icecast.org/docs/icecast-trunk/icecast2_config_file.html#mount



Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] how not to repeat code in a liquidsoap script

2009-06-14 Thread Romain Beauxis
Hi !

Le samedi 13 juin 2009 00:09:07, fruity a écrit :
 More in practic I whould like to have some tips on how could I avoid
 repeating code over and over:

 output.icecast.$codec(stereo=true, restart=true, restart_delay=5,
 mount=mount0, name=name0, host=host0, port=port0, user=user0,
 password=passwd0, genre=NONE, url=NONE, description=NONE,
 public=true, quality=0.2, radio)

 and to change the default sets that are common to all streams in one shot.
 (I immagine something like
 output.icecast.$codec(alltheconstant,quality,source)
 I thought (suggested by a friend) I could also try to make an external
 with ffmpeg, so that I have only audio stuff variable but stuff like
 metadata and accountings constant.

There are several things you can do for that.

First, you can use a partial application. For instance if you write:
  
out.mp3  = output.icecast.mp3(stereo=true, restart=true, restart_delay=5,
  host=host0, port=port0, user=user0, password=passwd0, public=true, 
quality=0.2)

The value out.mp3 is then a partial application, and you can use it to spawn 
several sources by passing it the missing arguments, for instance mount, name, 
description and source:

out.mp3(mount=first,name=xx,description=yy,s)
out.mp3(mount=second,name=xx,description=yys')

If the repeated parameters are the same for each output.icecast.$codec, you 
can even write:

def my_out(f) = 
  f(stereo=true, restart=true, restart_delay=5,
  host=host0, port=port0, user=user0, password=passwd0, public=true)
end

And then:
out.mp3 = my_out(output.icecast.mp3)
out.vorbis = my_out(output.icecast.vorbis)
out.aacp = my_out(output.icecast.aacplusenc)


Hope that helps.


Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Script Issue - Fallback from a live stream to a playlist - How to make a playlist to start from the beggining at every fallback?

2009-06-15 Thread Romain Beauxis
Le samedi 13 juin 2009 12:09:28, kosnickx a écrit :
  hi, 

Hi !

  i have a script that fallbacks between a playlist and a live
 stream. I am having this live stream and when i end it (disconnect from
 the icecast server) the playlist starts. So far everything is ok. But
 the thing is that the playlist starts from the middle of a song. 

Yes, that is the default behaviour.

 I
 mean it seams to me that the playlist is already being streamed (somehow
 somewhere - i guess this is the way you have built it, read the playlist
 and start playing it) and the exact time i stop my live stream the
 playlist starts at the point it is. Is there any way to start the
 playlist from  the beggining and not from the middle of some song?
 Should this have to do with length in the playlist command? Is there
 any way to achieve this thing (to start the streaming of the playlist
 from the beggining of it every time)?

You can look at fallback.skip in the utils.liq file. This operators skips the 
file currently being played when changing source. Hopefully this will be 
sufficient for you.

If you look for a real restart of the playlist at its beginning, this should 
need more work, but could be done too.


Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] LiquidSoap : Failed to prepare track: no file

2009-06-18 Thread Romain Beauxis
Le jeudi 18 juin 2009 09:07:20, vous avez écrit :
 Hello,

Hi !

 Here is my liq script. I'll try the latest svn 

Thanks ! You should also make sure that this is not a failure from your 
script.

 (is it stable enough to  
 put it in production ?)

I guess so. However, we should release a bugfix of 0.9.0 quite soon.


Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] LiquidSoap : Failed to prepare track: no file

2009-06-18 Thread Romain Beauxis
Le jeudi 18 juin 2009 11:48:27, Jean-Francois Mauguit a écrit :
 Hello,

Hi !

 No, if i call the php from the command line, the annotate returned is  
 OK and file is here.

Ok. Then, it should be possible to track what happened after the call by 
inpecting the request through telnet. There can be several reasons for ths 
issue. The most common could be a request ID leak due to some bug in 
liquidsoap, but it could also be something external, like failure to read file 
or else.

When connecting through telnet, you can check the list of requests by doing:
  alive

For each request ID, you can check the history of its resolution by doing:
  trace 13


Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] add_metadata_resolver

2009-06-18 Thread Romain Beauxis
Hi !

Le jeudi 18 juin 2009 20:13:04, vous avez écrit :
 I was told there is support for aac metadata, but it was only available in
 the trunk version. I'm using 0.90 and feel like sticking with it a while
 longer. What do you think would be easiest way for me to aac metadata
 support? When do you think the next stable release might be?

There was a release today, 0.9.1, but it only include bugxifes and minor 
improvements. Native support for AAC metadata needs more testing and will be 
released later.

Le jeudi 18 juin 2009 20:23:51, vous avez écrit :
 By the way...I got the idea to add aac meta data support to my installed
 version of liquidsoap from this blog article

 http://blog.rastageeks.org/spip.php?article35

 That examples uses the add_metadata_resolver to get raplygain data, and it
 gave me the impression it was appending to the metadata not replacing it,
 because the resolver returns what looks like a one element or zero element
 array. It looks intereasting. For my own education, can you explain what's
 actually happening? Thanks.

Internaly in liquidsoap, we have a modular support for metadata. Each resolver 
registers itself to the main system, and when trying to find the metadata of a 
file, the decoders are tried one by one.

Each of these decoders may return a list of elements of the form 
(label,value). Each elements of this list is added to the list of metadata. If 
there was another element with the same label, it is overriden  with the new 
value.

For instance, the replaygain resolver only returns a list with a single 
element, which is added to the list of metadata.

add_metadata_resolver is the export of this system to the liquidsoap language.
You can use it to register your own resolver. It needs to be a function of the 
form: 
  string - (string*string) list

In other word, this function takes a string, which is the URI of the (local) 
file, and returns a list of elements of the form (label,value).

You can find some examples in the utils.liq file, in the scripts directory of 
the liquidsoap sources.


Romain

--
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 0.9.1 is out !

2009-06-22 Thread Romain Beauxis
Dear all,

The release 0.9.1 of liquidsoap is now available [1] !

We have received in the recent weeks a bug report about playlist reloading, 
and while investigating on it, we discovered an issue is the code involved to 
fill request-based sources, such as request.dynamic, request.queue/equeue and 
playlist.

We believed this issue was important enough to trigger a bugfix release, so we 
started preparing a new release incorporating the bugfixes we already had. 
Along this path, we also included several features that we believed were 
stable enough to be added.

In particular, we have also backported the changes on request-based sources 
that allow to take into account the estimated remaining time when feeding the 
queues. This allows a request-based source to prepare titles only when the 
current one is about to end. 

For the 0.9.1 release, the old behaviour is still the default, but the next 
stable release will switch to the new behaviour. If you want to test the new 
behaviour, you can set the following options on request-based sources in 
0.9.1:
  conservative = true

Other important changes such as the switch to ocaml-cry, our custom 
implementation of the shout library, and the rewrite of external encoders will 
have to be tested more before being released. These two features will allow 
liquidsoap to natively support AAC+ codec when sending to icecast, using the 
external aacplusenc binary encoder.

The full list of changes is given in the following changelog:

0.9.1 (18-06-2009)
Bugs fixed:
 - Fixed request task not ending properly for request-driven sources 
   (playlist, request.queue, request.equeue). Fixes a problem reported 
   when reloading an empty playlist multiple times. (#269)
 - Fixed math.h usage in rgb_c.c.
 - Fixed append operator. (#284)
 - Fixed OSS compilation for non-linux systems.
 - Disconnect idle harbor sources after timeout has expired.
   Thanks to Roman Savrulin for reporting and fixing !
 - Taglib metadata resolver is only used on files decoded
   by the MP3 decoder.
New:
 - Get a node's striping status when stripping
   blank with strip_blank (#260).
 - on_connect function for input.harbor now receives the
   list of headers given by the connected source (#266).
 - Added on_end operator, to execute a handler when a track ends.
 - Added estimated remaining time in the queue length for request-driven
   sources (request.{equeue,queue}, playlist). This allows these sources
   to prepare less files in advance. In particular, primary queue may
   only contain the file currently played. Default behaviour has been
   set to the old behaviour, and a conservative option has
   been added to switch to the new behaviour. New behavivour
   will be the default for the next release.
   fixes #169, references #146

We will update our custom stable packages very soon, as well as the official 
debian  ubuntu packages. We also hope this release will be rock stable and 
perfect for production.

Of course, if you encounter any issue when running this release, please report 
it on our trac:
  http://savonet.rastageeks.org
Or on IRC, or to this mailling list (but preferably to the trac system..).

Cheers,

Romain

[1]: 
https://sourceforge.net/project/showfiles.php?group_id=89802package_id=150493release_id=690804

--
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 0.9.1 is out !

2009-06-22 Thread Romain Beauxis
Le lundi 22 juin 2009 17:36:59, David Baelde a écrit :
 On Mon, Jun 22, 2009 at 4:57 PM, Romain Beauxisto...@rastageeks.org wrote:
  For the 0.9.1 release, the old behaviour is still the default, but the
  next stable release will switch to the new behaviour. If you want to test
  the new behaviour, you can set the following options on request-based
  sources in 0.9.1:
   conservative = true

 I believe you meant if you want to test the new behavior, set
 conservative=false.

Indeed :)


Romain

--
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] i have some question about no available rid

2009-06-22 Thread Romain Beauxis
Hi !

Le lundi 22 juin 2009 19:27:57, kosnickx a écrit :
 i have some liquidsoap script running for my icecast server
 but every time i run this script i get a no available rid  kind of list
 once i asked in your #savonet channel and someone said this can be a
 problem this guy also mentioned there is a way to increase this number but
 i haven't figured out yet
 could someone give some help about it?

Indeed, liquidsoap has a limited number of request in use.

The current limit is registered into the request.max_id configuration key. 
Its current value is 50.

You can override this value by adding to your script:
  set(request.max_id,100)

However, we often assume that the current value is correct and that if you 
reach this limit there is probably something going wrong, either in liquidsoap 
or in your script.

Hence, could you also show us your script, and tell us which version of 
liquidsoap you are using ?


Thanks !


Romain


--
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] using liquidsoap and giss.tv streaming, catchups and freezings

2009-06-24 Thread Romain Beauxis
Le jeudi 25 juin 2009 00:51:19, Luciano A. Ferrer a écrit :
 here: http://pastebin.ca/1473375

 I have closed everything, 256kb upload all for liquidsoap
 (256/8 real 32kb... liquidsoap used something like 14-15kb upload)

 no catchups at all... but at 19:17:44 it just freezed...
 I had to kill it...

I doesn't seem like a freeze. Apparently it switches to safe_blank, which is 
the mksafe fallback I believe.

Could you send a similar bug with more verbosity:
  set(log.level,5)

Also, you can try to turn the conservative parameter to false for all sources 
using playlist or request.{dynamic,queue,queue} and see if it helps.


Romain

--
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] fail with request.dynamic

2009-07-03 Thread Romain Beauxis

On Tue, 30 Jun 2009 17:16:45 +0200, Solvik Blum sol...@oxyradio.net
wrote:
 Hi,

  Hi !

 I would like to use an external application to manage the music which is
 played.
 So I though to use request.dynamic.
 
 My script has only that:
 pls = request.dynamic(id=scheduler,
 fun () -
 

request(get_process_output(/home/oxyradio/liquidsoap/test/oxycast.php)))
 
 
 But it doesn't play anything and logs say:
 2009/06/30 17:13:23 [scheduler:5] Queue is empty !
 2009/06/30 17:13:23 [scheduler:5] Failed to prepare track: no file
 2009/06/30 17:13:23 [scheduler:5] Queue is empty !
 2009/06/30 17:13:23 [scheduler:5] Failed to prepare track: no file
 2009/06/30 17:13:23 [scheduler:5] Queue is empty !
 2009/06/30 17:13:23 [scheduler:5] Failed to prepare track: no file
 2009/06/30 17:13:23 [scheduler:5] Queue is empty !
 2009/06/30 17:13:23 [scheduler:5] Failed to prepare track: no file
 2009/06/30 17:13:23 [scheduler:5] Queue is empty !
 2009/06/30 17:13:23 [scheduler:5] Failed to prepare track: no file
 
 
 The script is executable, and when I execute it, i get the URI of a file
 like:
 /home/oxyradio/musique/rock/Andy Blurry - Square Fate.mp3
 
 Any idea ?

You should use list.hd(get_process_lines()), get_process_output will have
the trailing \n at the end.

For debugging purpose, you can also print the retrieved URI before sending
the request:

def process () = 
  s =
list.hd(get_process_lines(/home/oxyradio/liquidsoap/test/oxycast.php))
  print(\n\n\nGot: #{s}\n\n\n)
  request.create(s)
end

Romain
-- 
If you are the big  three,
We are the small axe...

--
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Link error on web site

2009-07-05 Thread Romain Beauxis
Le vendredi 03 juillet 2009 17:34:05, Jean-Francois Mauguit a écrit :
 Hello,

Hi !

 A small error on the web site
 http://savonet.sourceforge.net/doc-0.9.1/settings.html is not working  
 (404) but
 http://savonet.sourceforge.net/doc-0.9.0/settings.html is working :-)

Thanks, this is fixed now.


Romain

--
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap asleep :-)

2009-07-05 Thread Romain Beauxis
Hi !

Le jeudi 02 juillet 2009 19:32:15, Jean-Francois Mauguit a écrit :
 Is it possible it is related to ntpdate operation. All the servers  
 were out of sync, so I made ntpdate on all the servers which were all  
 7000+ seconds later than correct time. Is it possible the timeout  
 (today) and the too much latency were due to this synchro ?

Yes, that is clearly the cause of the issue.

Liquidsoap needs a time reference for checking that it is not late with 
respect to real time. Currently, this reference is the local time on the 
machine, which means that when changing it, you create an artificial delay for 
liquidsoap.

We have discussed other implementations, but so far we believe that a server 
that goes out of sync with its local time is definitely a bad thing, since it 
will also mess with the other software in the streaming chain. 

Hence, it should be better to run regular ntpdate on the server. A small delay 
is ok with liquidsoap in this case.


Romain

--
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Log lines meaning

2009-07-05 Thread Romain Beauxis
Le vendredi 03 juillet 2009 15:58:40, Jean-Francois Mauguit a écrit :
 Hello,

Hi !

 Does anyone knows what mean :
 2009/07/03 08:44:40 [1150:4] Remaining: 176688, queued: 0, adding:  
 1323000 (RID 7)
 2009/07/03 08:44:40 [generic queue #1:4] There are 0 ready tasks.
 2009/07/03 08:44:40 [generic queue #1:4] Enter select at  
 1246610680.500597, timeout 0.00 (2/0/0).
 2009/07/03 08:44:40 [generic queue #1:4] Left select at  
 1246610680.500625 (2/0/0).
 2009/07/03 08:44:40 [generic queue #1:4] Ther

Yes, these are the logs from the internal scheduler. These logs are not 
printed by default, so you should not see them unless you've set the 
scheduler.log option to true.


Romain


--
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Mix Problems

2009-07-06 Thread Romain Beauxis
Le vendredi 03 juillet 2009 18:05:06, Jean-Francois Mauguit a écrit :
 Hello,

Hi !

 As you know we have some problems with mix. On some radios, everything  
 is perfect, on some other not. What we have found is that the  
 problem occurs often when short songs are played. For example, on  
 radios with song - jingle - song - jingle - ... there is almost no mix.

 So I presumed I made something wrong in the liq :-)

 Here is our crossfade definition
 def our_crossfade(~start_next,~fade_in,~fade_out,s)
s = fade.in(duration=fade_in,s)
s = fade.out(duration=fade_out,s)
fader = fun (a,b) - add(normalize=false,[b,a])
cross(duration=start_next,minimum = -1.0,fader, s)
 end

 input2=our_crossfade(start_next=6.0,fade_in=3.0,fade_out=3.0, input)

 Value for start_next, fade_in and fade_out comes from the annotate and  
 are right.

 One other question concerning the same problem. What happen if we have  
 3 files playing at the same time ?

 File 1 start_next = 120, fade_out 120
 File 2 (duration = 140), start_next = 50, fade out = 50
 File 3 fade_in = 50

 So 120 s before the end of file 1 we start playing file 2 and 90  
 seconds later we start playing file 3 but file 1 is not yet ended.

There can indeed be some issues with the remaining time, in particular since 
this is an estimated value. However, the crossfade have a conservative option. 
Using this option, the data needed for the crossfade is buffered in advance at 
the beginning of each track. Did you try with this option ?


Romain

--
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] fail with request.dynamic

2009-07-06 Thread Romain Beauxis
Le lundi 06 juillet 2009 14:12:36, Solvik Blum a écrit :
 David Baelde wrote:
  Also, I'm thinking of this bug where something failed (froze) only in
  daemon mode...
   

 My script works without deamon mode. Is there any way to use it with the
 daemon mode ? :/

Interesting.. 
We already have a minimal script for this issue (#283). We should really try 
to fix it soon..


Romain

--
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Mix Problems

2009-07-07 Thread Romain Beauxis
Le mardi 07 juillet 2009 10:36:53, Jean-Francois Mauguit a écrit :
 Hello,

Hi !

 Here is my new crossfade

 def our_crossfade(~start_next,~fade_in,~fade_out,s)
s = fade.in(duration=fade_in,s)  s = fade.out(duration=fade_out,s)
fader = fun (a,b) - add(normalize=false,[b,a])
cross(conservative=true,duration=start_next,minimum = -1.0,fader, s)
 end
 input2=our_crossfade(start_next=6.0,fade_in=3.0,fade_out=3.0, input)

 But it seems to still don't mix correctly.

Ok. I would like to try to reproduce.. Could you try to send me in a private 
mail a sequence of songs that do not work ?

 I was wondering if my

 input2 = on_metadata(fun (meta) - system(curl
 http://something.radionomy.com/something.cfm?string=
 ^fluxid^,^quote(meta[album])),input2)

 before my icecast output could be the cause of some mix problems ? In  
 fact this http request takes less than one second. Should I use set
 (scheduler.fast_queues,1) to avoid the problem ?

Hmmm.. I don't think this can be the cause of the issue, but I could be 
wrong..


Romain

--
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have 
the opportunity to enter the BlackBerry Developer Challenge. See full prize 
details at: http://p.sf.net/sfu/blackberry
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Mix Problems

2009-07-07 Thread Romain Beauxis
Le mardi 07 juillet 2009 12:38:12, vous avez écrit :
 Hello,

 I found the prob in our test environment, it was due to false mix  
 points. After fixing that, the conservative=true works perfectly !

 Thanks for the help, it solved an old problem here ;-)

Very nice to read !! :)


Romain

--
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have 
the opportunity to enter the BlackBerry Developer Challenge. See full prize 
details at: http://p.sf.net/sfu/blackberry
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] periodic metadata rewriting

2009-07-09 Thread Romain Beauxis
Le mercredi 08 juillet 2009 19:12:59, Gergely CZUCZY a écrit :
 Hello,

Hi !

 I'm back to this issue, now I'm facing the problem, I can't really
 get the stream I should be rewriting. Now I've got this piece of code:

I think you're doing it the wrong way..

 --- here ---
-- function starts here
 def nextsong_cd(m) =
   #
   title=m[title]
   artist=m[artist]
   album=m[album]

   def insert_rnd(m1) =
 rnd=random.float(min=0.0, max=10.0)
 [(title, string_of(rnd)),
  (artist, string_of(rnd)),
  (album, string_of(rnd))]
   end

   cdradio = map_metadata(insert_rnd ,cdradio)
   system(/usr/local/bin/lstest.sh ^artist^!^album^!^title)
 end
-- function ends here

 cdmdradio = on_track(nextsong_cd, cdradio)
 --- here ---

Now, let's look at the the type of nextsong_cd:
  (string*string) list - unit
This means that this function takes the metadata and does not return anything.

In other words, this is a dead end function: it does whatever it wants and 
_voila_. However, you write, in the content of the function:
  cdradio = map_metadata(insert_rnd ,cdradio)

When the function is executed, this line creates a source with random 
metadata. However, this source is not used anywhere after, so it is just 
cleared away when the function has finished..

The correct way would be to apply both function on the same source, but in the 
right order, of course :) This gives:


--- here ---
# This functions records the passed metadata
def nextsong_cd(m) =
  # Get the variables
  title=m[title]
  artist=m[artist]
  album=m[album]

  # Call the script
  system(/usr/local/bin/lstest.sh ^artist^!^album^!^title)
end

# We call the above function on each metadata
cdradio = on_track(nextsong_cd, cdradio)

# This function replaces all metadata with random values. 
def insert_rnd(_) =
  rnd=random.float(min=0.0, max=10.0)
  [(title, string_of(rnd)),
   (artist, string_of(rnd)),
   (album, string_of(rnd))]
end

# Apply this function, set update to false to discard remaining entries
cdradio = map_metadata(update=false, insert_rnd ,cdradio)
--- here ---

Now, the problem that you will have is about after a few
frames put back the original metadata.. I don't have a magic solution for 
that. You could combine the use of insert_metadata and add_timeout.
When receiving the metadata, in the nextsong_cd function, you could
use add_timeout to rewrite the correct balues back after some time. However, 
I don't know what's the good some time..


Romain

--
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] input.harbor

2009-07-15 Thread Romain Beauxis
Le lundi 13 juillet 2009 10:27:31, Jean-Francois Mauguit a écrit :
 Hello,

Hi !

 Just a quick question. How to set up input.harbor to play the incoming  
 stream when receiving the first bits without waiting the buffer is  
 filled in ?

Appart from setting the buffer to a very low value, I don't konw any other mean 
to acheive this. However, setting to a very low value should do the trick.


Romain

--
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Spam on trac..

2009-07-15 Thread Romain Beauxis
Hi all !

The savonet trac website is currently being spamed. Apparently the script 
genius are now able to register new accounts and started creating spam pages 
on the wiki.

I have temporarily desactivated wiki pages edition and creation for any user 
except administrators. I also removed susprious accounts. I hope I did not 
remove any legitimate account.

We will try to fix this soon. The trac system, however, should continue to work 
smoothly. Registered users are still able to submit and modify tickets. Let's 
hope they don't start to spam that too...

Romain

--
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Fedora RPM Building

2009-07-27 Thread Romain Beauxis
Hi !

Le lundi 27 juillet 2009 22:29:12, Chris Everest a écrit :
 So i started looking into building a Fedora RPM of liquidsoap. 

Thanks for this work, this is a great news !

 I keep
 finding myself compiling (yuk) and have even resorted to running
 virtual Ubuntu instances, to make the liquidsoap install less painful.
  So here's my question:

 1.) Do I need to split out lame dependencies (et al non-free library
 dependencies) to have this RPM distributed by the liquidsoap project?

Clearly no. The stable and daily build packages are built directly from the 
full set of dependencies without individual packages.

The problem can be for external dependencies like ocaml-pcre if they are not 
packaged for Fedora.

In any way, you can distribute a binary package of liquidsoap without the need 
to also package the external dependencies that we ship.

 2.) Maybe Axel from atrpms would dist?  Or rpm fusion.  I don't know
 how those orgs operate.

I don't know. For reaching the most users as possible, it is always better to 
distribute the packages there and not in the project's website. 
I don't know how these sites work, though. In particular, you'd probably have 
to also package the dependencies in this case.



Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Fw: Thread non-blocking queue #1 aborts with exception Unix.Unix_error(56, write, )!

2009-08-02 Thread Romain Beauxis
Hi !

Sorry for the delay. We're all on vacations at the moment, so we're not very 
responsive...

Le lundi 03 août 2009 00:33:34, polemon a écrit :
 This happend twice today again.

 If no one can tell me what to do, or help me get to the problem, I'll be
 forced to dump Liquidsoap for some rudimentary solution with shoutcasts,
 streamtranscoderv3 etc, which puts me back about a year and a half.

 Please help, as this is really important for me.

 Here's the .liq script, that crashes with the error I described in my
 earlier mail: http://pastie.org/569051

Ok.

As usual, this needs further investigations. In the case of exceptions, we 
should need the whole exception trace, as described in the corresponding 
section there:
  http://savonet.rastageeks.org/wiki/Debugging

Also, it is more easy if you can test patches by recompiling liquidsoap with 
them. For instance, I identified a write call that can be the cause of the 
issue. I have attached a patch about it. You can apply it by doing, from the 
liquidsoap/src directory:
  patch -p0  /path/to/possible_fix.patch

Romain
Index: tools/harbor.ml
===
--- tools/harbor.ml	(révision 6691)
+++ tools/harbor.ml	(copie de travail)
@@ -151,7 +151,13 @@
 )
 
 let write_answer ?(keep=false) c a =
-  ignore (Unix.write c a 0 (String.length a)) ;
+  begin
+   try
+ignore (Unix.write c a 0 (String.length a)) ;
+   with
+ | Unix.Unix_error(_,_,_) - 
+log#f 1 Error while writing answer..
+  end ;
   if not keep then
 try
   Unix.shutdown c Unix.SHUTDOWN_ALL ;
--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] AAC+ on Icecast vs Centova

2009-08-06 Thread Romain Beauxis
Hi !

Thanks for your nice comments on liquidsoap !

Le jeudi 30 juillet 2009 23:42:30, Artur Skupienski - DJ a écrit :
  I only interested: transcode my current stream 128kbps to AAC+ (Icecast)
  using liquidsoap, without any other features, like plalists, crossfades
  etc.

(Sorry, quick answer due to lack of time..)

A very basic way to acheive that is:


88
# The source
s = input.http(http://server:8000/mount;)

# output
output.icecast.aacplusenc(s,mount=source.aac,password=XXX,host=server)
88

This needs liquidsoap SVN for a proper support of aac+, and also the 
aacplusenc binary, available as a package in debian-multimedia repositories 
for instance...

Please ask for more details if needed :)

Cheers,

Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Unclean external Encoder restart/shutdown

2009-08-10 Thread Romain Beauxis
Le dimanche 2 août 2009 18:38:36, Romeo a écrit :
 Hi, Savonet Team!

Hi !

(Sorry late answer due to vacations..)

 Sometimes i have the following issues: aacplusenc restarts and shuts down
 uncleanly in the logs i see the following:

 2009/08/02 23:42:34 [threads:3] Thread harbor source feeding exited
 (1 remaining).
 2009/08/02 23:42:37 [source:4] CrossfadeAddSeqBlank gets down
 2009/08/02 23:42:37 [CrossfadeAddSeqBlank:4] Activations changed:
 static=[], dynamic=[].

 2009/08/03 00:21:26 [nw32a:3] Restarting encoder after delay (3600s)
 2009/08/03 00:21:26 [stderr:3] [0%]
 [-1%]
 ... down to some value, someimes a very long sequence.
 [-236%]
 2009/08/03 00:21:26 [stderr:3]

 2009/08/03 00:21:26 [stderr:3] encoding finished
 2009/08/03 00:21:26 [nw32a:4] Reading task reached end of data
 2009/08/03 00:21:26 [nw32a:2] Creating external encoder..
 2009/08/03 00:21:26 [stderr:3]
 2009/08/03 00:21:26 [stderr:3]
 *

 2009/08/03 00:21:26 [stderr:3] * Enhanced aacPlus Encoder
 2009/08/03 00:21:26 [stderr:3] * Build May 18 2009, 16:22:38
 2009/08/03 00:21:26 [stderr:3] * Matteo Croce rootki...@yahoo.it

 2009/08/03 00:21:26 [stderr:3]
 *
 2009/08/03 00:21:26 [stderr:3]
 2009/08/03 00:21:26 [stderr:3] input file -:
 2009/08/03 00:21:26 [stderr:3] sr = 44100, nc = 2

 2009/08/03 00:21:26 [stderr:3]
 2009/08/03 00:21:26 [stderr:3] output file -:
 2009/08/03 00:21:26 [stderr:3] br = 32000 sr-OUT = 44100  nc-OUT = 2
 2009/08/03 00:21:26 [stderr:3]

 everything just works fine after that...

Well, currently the external encoders are setup so that they restart after 
some time. This is because most of them are meant to use with finite streams, 
while we use them for infinite ones.

This can be turned off by using the restart_encoder_delay, in the SVN version. 
Also, a restart should not be a big deal, in particular in the case of 
headerless formats such as mpeg ones, in particular mp3 and AAC(+).

Is this restart a particular issue for you ?


Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Get current song

2009-08-10 Thread Romain Beauxis
Hi all !

The two solutions mentioned by Bede are valid. I even believe we use the first 
one for dolebrai.

Additionally, you can also use the on_metadata operator. This operator will 
call a function that you specifiy, which can be in particular a call to an 
external script, when it see new metadata.

That way, you can register the latest metada in a database, for instance, and 
use it on the other computer in order to retreive the current song.

Romain

Le lundi 3 août 2009 09:31:05, bede a écrit :
 Pascal Vanbel - Radio Universitaire Namuroise - 107.1MHz FM wrote:
   Hello,
  
   I wonder how to get current song from another computer ?
  
   In fact our web server is not our streaming server. I got the title on
   my stream server (icecast2) but I want to get it on my web server also
   in a nicer way than play with my icecast page  :-)
  
   Thx for any help

 1. (i see you don't want this)

 a simple way is:

 - wget http://IP:PORT/status.xsl(get icecast status page)
 - parse icecast status page and extract field Current Song:
   - if this script is on icecast server, try to upload information of
 current song to web server (via ftp or something)
   - if this script is run from web server, write down in a file or
 something that info.
 repeat every minute/ two minutes, whatever


 2.
 on web server start a mplayer instance (with something like -ao null)
 and intercept messages :
 ICY Info: StreamTitle='cuba (phunk investigation miramar mix) (albino
 alligator)';

 ... and do whatever you need with info.

 Daniel



 ---
--- Let Crystal Reports handle the reporting - Free Crystal Reports 2008
 30-Day trial. Simplify your report design, integration and deployment - and
 focus on what you do best, core application coding. Discover what's new
 with Crystal Reports now.  http://p.sf.net/sfu/bobj-july
 ___
 Savonet-users mailing list
 Savonet-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/savonet-users

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] amd64 deb packages?

2009-08-10 Thread Romain Beauxis
Le mardi 4 août 2009 07:09:28, Oliver Oli a écrit :
 hello!

Hi !

 i reinstalled my machine to 64bit ubuntu and then realized that there
 are no liquidsoap amd64 packages in the rastageeks repositories.

 deb ftp://savonet.rastageeks.org ./
 deb http://www.rastageeks.org/downloads/liquidsoap/ ./

 are there any source packages available for building a amd64 deb?

Unfortunately there is no package for amd64 at the moment. It could be done 
later, but I didn't have time to do it recently..



Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Input harbor buffer

2009-08-12 Thread Romain Beauxis
Le mercredi 12 août 2009 07:31:39, Jean-Francois Mauguit a écrit :
 Hello,

Hi Jef !

 Here is my problem.

 I would like to allow our user to use input.harbor on their webradio  
 to allow them doing live radio. But I also have to insert some ads and  
 I would like to announce to the radio editor when the ad will be  
 inserted in his stream (using a countdown). But due to the buffer  
 between this editor and the liquidsoap, I never know when to warn him.  
 How could I know the duration of the buffer ? Is it an easy way doing  
 that ?

Hmmm, good call. Recently we have added something initially meant for 
debugging. This is an option that, when turned on, outputs the size of the 
buffer to a file. See: 

* logfile :: string (default )
Log buffer status to file, for debugging purpose. Disabled if empty.

Perhaps you can use this to know the length of the buffer..


Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Hallo Romain - how can I properly build ocaml-xml-light?

2009-08-13 Thread Romain Beauxis
Le jeudi 13 août 2009 09:48:10, vous avez écrit :
 Hallo Romain, how are you? :)

Hi !

 I got a problem with our Liquidsoup, actually with building...

 I installed all libraries what we need to run liquidsoup except
 ocaml-xml-light. Try this way- I installed but it's something wrong, but I
 really dont know.

Yes, that's a well-known issue. The problem is that we had chosed ocaml-findlib 
to detect xml-light. However, we realized later that in fact, the support for 
ocaml-findlib in xml-light was a debian-specific patch.. Unfortunately also, 
xml-light is no longer maintained so there will be no release adding that 
support..

For the current developpement code, we have switched to xmlm which has a 
ocaml-findlib support and is maintained at the moment. However, for building 
stable liquidsoap releases, it should be needed to add this manually. I 
remember I had send some patch in the past about this in the mailing list.


See:
http://www.mail-archive.com/savonet-users@lists.sourceforge.net/msg00871.html


Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] AAC+

2009-08-19 Thread Romain Beauxis
Le mercredi 19 août 2009 03:00:11, vous avez écrit :
 HI Guys

Hi Artur !

 I'm trying to make an alternative stream in AAC+, the point is I've got
 128kbps stream from Icecast now. How can I encode that stream into another
 one in aac+?
 Is it any sense in that commands below?

The address you used is for bug reports only. The correct mailing for support 
is savonet-us...@lists.sf.net.

From your last message, I understood that you were still executing your script 
with liquidsoap 0.9.1 and not liquidsoap SVN.

Can you check the output of:
  liquidsoap --version

If it does not mention the SVN, you should find out were the liquidsoap from 
SVN was installed.

Cheers,

Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap svn - Thread 3 killed on uncaught exception Cry.Error(1)

2009-08-20 Thread Romain Beauxis
Le jeudi 20 août 2009 16:46:58, Artur Skupienski - DJ a écrit :
 HI everyone, this is my output:

Artur, please register to the mailing list. Here's my answer from this 
morning:

This message is not very usefull. However, since you activated a log file, you 
should have a more verbose logging in that file.

In any case, you should also enable console logging while you're still testing 
on the console. Just add:
  set(log.stdout,true)
to your script.

About your issue, it means liquidsoap could not connect to the host, so most 
probably you did a mistake in the settings for the icecast output.

Cheers,

Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Input harbor buffer

2009-08-21 Thread Romain Beauxis
Hi !

Le mercredi 12 août 2009 07:31:39, Jean-Francois Mauguit a écrit :
 I would like to allow our user to use input.harbor on their webradio  
 to allow them doing live radio. But I also have to insert some ads and  
 I would like to announce to the radio editor when the ad will be  
 inserted in his stream (using a countdown). But due to the buffer  
 between this editor and the liquidsoap, I never know when to warn him.  
 How could I know the duration of the buffer ? Is it an easy way doing  
 that ?

I have just added a new telnet command for input.http and input.harbor: 
buffer_length. This commands returns the current buffer's length in seconds, up 
to two digits of precision.

I believe this should be sufficient for your need. You should also be able to 
backport the patch to 0.9.1. It is attached.


Romain

Index: liquidsoap/src/sources/harbor_input.ml
===
--- liquidsoap/src/sources/harbor_input.ml	(révision 6725)
+++ liquidsoap/src/sources/harbor_input.ml	(révision 6726)
@@ -160,7 +160,11 @@
  if relaying then
source client connected
  else
-   no source client connected)
+   no source client connected) ;
+Server.add ~ns buffer_length ~usage:buffer_length
+   ~descr:Get the buffer's length, in seconds.
+   (fun _ - Printf.sprintf %.2f
+ (Fmt.seconds_of_samples self#length))
 
   method private sleep =
 if relaying then self#disconnect
Index: liquidsoap/src/sources/http_source.ml
===
--- liquidsoap/src/sources/http_source.ml	(révision 6725)
+++ liquidsoap/src/sources/http_source.ml	(révision 6726)
@@ -474,8 +474,13 @@
 Server.add ~ns start ~usage:start ~descr:Start the source, if needed.
(fun _ - relaying - true ; Done) ;
 Server.add ~ns stop ~usage:stop ~descr:Stop the source if streaming.
-   (fun _ - relaying - false ; Done)
+   (fun _ - relaying - false ; Done) ;
+Server.add ~ns buffer_length ~usage:buffer_length 
+   ~descr:Get the buffer's length, in seconds.
+   (fun _ - Printf.sprintf %.2f 
+ (Fmt.seconds_of_samples self#length))
 
+
   method sleep = poll_should_stop - true
 
 end
--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Thread root aborts with exception Cry.Error(1)!

2009-08-21 Thread Romain Beauxis
Le vendredi 21 août 2009 18:17:39, David Baelde a écrit :
 Hi,

Hi all !

 The first thing that comes to my mind is: did you check the maximum
 number of mounts in your icecast.xml?

Good call !

 The second thing is that you're using AAC, which is requires a patched
 icecast iirc. You should try to start with an MP3 or OGG mount. If AAC
 turns out to be the problem, then Romain should be able to help or
 point you to the relevant doc.

I don't think you need to modify icecast for streaming AAC.

Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Playing blank

2009-09-03 Thread Romain Beauxis
Hi Jef !

Le jeudi 3 septembre 2009 10:19:08, Jean-Francois Mauguit a écrit :
 As you have a huge load, I can understand that something happened that  
 make liquidsoap switched to blank. But i don't see why it didn't come  
 back.

Indeed. In order to understand the issue better it would be nice if we can see 
the script also. If you do not want to disclose it here, you can sent it as a 
private message.

Also, what version of liquidsoap are you using ?


Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] aac+ vs quality of sound

2009-09-03 Thread Romain Beauxis
Le mardi 1 septembre 2009 19:18:30, Artur Skupienski - DJ a écrit :
 Hi Guys

Hi !

 Im using aac+ on liquidsoap

 Bitrate on aac+ is variable, not static, is it right or it is because
 something wrong..

There a static parameter, but it could mean an average bitrate.

 also I got a question about quality, how can I improve quality of sound
 aac+, is it passible? I tested orban aac+ before, is it passible to get
 similar quality of sound as on orban aac+?

Have you tried raising the bitrate in aacplusenc ? Also, you may use different 
software for encoding AAC+, all you need is the capability to read from stdin 
and output to stdout. 

However, I don't know any other software for linux that is capable of doing 
that. The nero AAC+ encoder, which is very good, outputs data in mp4 format 
which is not streamable. I have, however, contacted one of the devs to request 
the possibility to output in a compatible format and he said thay can't do it 
for the next release but will surely consider it for the one after.

Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] refresh a playlist only if changed

2009-09-03 Thread Romain Beauxis
Le mercredi 2 septembre 2009 11:11:04, Romaric Petion a écrit :
 Hi,

Hi !

 I would like to use a playlist (from an URL) with randomize, reloaded every
 minutes.

 So I use: playlist(reload=60, http://myserver/playlist.m3u;)

 But I would like liquidsoap refresh it's internal playlist only if my
 remote playlist have changed (to avoid that we never played some files of
 the playlist), and not refresh at each download.

 Is it possible?

Unfortunately I don't think this is possible yet. This would probably be 
possible by scripting your own playlist. However, this could be a bit more 
tricky, so let me know if you're interested :)


Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Playing blank

2009-09-03 Thread Romain Beauxis
Le jeudi 3 septembre 2009 11:34:28, Jean-Francois Mauguit a écrit :
 Hello,

Hi !

 Here is my script. I'm using 0.9.1.

Ok, the script is quite small, so that should be suitable for a proper 
debugging.

Before proposing tests and patches, I would like to know: did you use this 
script with any previous version of liquidsoap ? If yes, did you experience 
this issue with any previous version ?

Thanks for your answers !


Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Playing blank

2009-09-04 Thread Romain Beauxis
Le vendredi 4 septembre 2009 02:28:05, vous avez écrit :
 Yes I used it in the previous version except the metadata change  
 function. But in this time we stopped the radio every days (at 5 AM).  
 Now the radios are playing for days. Moreover we were in a beta stage  
 at this time (with some other problems due to our infra) so I'm not  
 able to say if this specific problem was already present.

Ok, thanks.

I am considering either a bug in the scheduler, or a bug in the requests 
system.

What you can do to check this is to allow a telnet server for each instance. 
A simple (and probably a bit hacky) way to do that could be to set the telnet 
port to the pid of the running liquidsoap:
  set(server.telnet.port,getpid())
  set(server.telnet,true)'

(Probably better at the end of the script)

Otherwise, you can also pass the port as a parameter as you do for the other 
parameters.

Then, as soon as an instance goes to blank, it would be interesting to try to 
connect to its telnet and issue some dummy commands.

Simply connecting to telnet, if sucessful, shoud indicate that the scheduler 
is not the issue and then we could concentrate on the request system.

Later on, if you need some work-around, in case the issue is not the 
scheduler, we should be able to provide you with a patch that allows to 
manually restart the failed queue.


Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap daemon trouble

2009-09-07 Thread Romain Beauxis
Le vendredi 4 septembre 2009 08:24:10, Mathijs Vos a écrit :
 It appeared liquidsoap had no writing permissions in the log directory when
 running in deamon mode. Hence the empty logfile. Now everything works fine.

Cool, nice to read !

Have fun !

Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] [Savonet] #303: Large tracks take long to load

2009-09-09 Thread Romain Beauxis
Hi !

Le mercredi 9 septembre 2009 17:48:58, vous avez écrit :
 What I was hoping to see:
 
 Start your liquidsoap with a playlist designed to fit x # of hours. Put in
  a variable assuming that the first track is the track I want to play next
  (obviously common sense in every situation of listing things in a fresh
  manner of speaking), when the playlist has reloaded (and detected as a NEW
  playlist ie:  ANYTHING changed... Size, Shape, Order, whatever I don't
  think it matters)  ie: changes made to the playlist, but while starting at
  the top of the playlist after the track that is playing has finished.
  This would allow us to create day long playlists, and then updating the
  new playlist in the evening, rather than do substring cutting, and
  searching through a playlist file to see what has been playing.
 
 Thanks!
 
 Sorry if I sound like I'm complaining, this stuff is kind of difficult if
  you just learned linux a week ago :)

No problem, you're much welcome ! However, please try to use the mail adress 
dedicated to user's support, which is: savonet-users@lists.sourceforge.net

About your issue, my guess is that your needs will not fit the playlist design. 
The playlist in liquidsoap is really designed to be something flexible, where 
you put a bunch of songs to be played.

If you need a more precise control over what you play, the best would be to 
have liquidsoap call an external script. Such a source can be created using 
the request.dynamic operator.

Using this operator, each time liquidsoap needs to queue a new song, it will 
call any script that you provide it and use the returned value. That way, you 
can work out all your constraints outside of liquidsoap, using your prefered 
language etc.. All you need to do it to code a script that returns the new 
song to queue.

A usage example would be:
  # Request function
  def request () =
request.create(audio=true,
list.hd(get_process_lines(/path/to/script))
  end

 # The dynamic source:
 s = request.dynamic(request)

The first part of the code is a function that calls the script 
/path/to/script and creates a new request using the the first line of its 
output.

The second part is a source that calls the function request in order to get 
its new songs.


Please don't hesitate to ask for more details if you need !

Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquid Soap

2009-09-09 Thread Romain Beauxis
Le mardi 8 septembre 2009 12:54:08, jeffgcs at me.com a écrit :
 What are your future plans on continuing support for this program?  

We are still actively developping it. Currently, we do a lot of user support 
and bugfix. We plan on finishing the video support but this takes time since it 
is not an easy task.

 Also,
 does it support VOIP calls for use over the station for radio interviews?

It can using the input.external operator. However, this needs a bit of work in 
the setup. Basically you need an external program that does the voip stuff and 
outputs the audio data to its standard output. We've had at least one user 
that was successful in doing this.

The more general support for voip has been already started, but lacks some 
manpower since we don't personally use it and voip stuff can be rather 
complicated.


Don't hesitate to ask more questions at: savonet-users@lists.sourceforge.net


Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] [Savonet] #303: Large tracks take long to load

2009-09-09 Thread Romain Beauxis
Le mercredi 9 septembre 2009 19:59:01, Nathan Huebner a écrit :
 Ok so I have put the dynamic request in, and it points to a file.. ( a
  script )... 

Hmm.. This file has to be an executable script..

  But I put in the script the MP3 to play, and this was spammed
  so much that it kicked me out of SSH lol:
 
 /home/nocturnal/track.txt: line 1:
  /home/nocturnal/tunes/_TODAY/10.today.mp3: cannot execute binary file
 
 
 Your site examples are great, but none actually show the script I use, and
  how It should respond to my LIQ file to be a valid response. What do I
  name my script file? What do I put in it? Do I need to do a Single, and
  echo back something? Can you help.

Well the script should be some sort of program of your own, all liquidsoap 
requires is that it writes to its standard output the name of the next song to 
queue. Then you can put all the details you need on this script.

The dummy example to start with could be:

8--8
#/bin/sh

# Dummy script that always returns the same song...
echo /home/nocturnal/tunes/_TODAY/10.today.mp3
8--8

You save this content to a file, say /tmp/test.sh and then do:
  chmod +x /tmp/test.sh
which will make it executable.

Then on the previous code example I gave you, you replace /path/to/script by 
/tmp/test.sh.

However, this is a stupid script, in order to have the scheduling you need you 
will need to write your custom script that returns exactly the song you want 
to play. The advantage of this method is that you are free to use whatever 
language you feel comfortable with, and you will not have to cope with the 
details about playlists in liquidsoap.

Hope this helps..

Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] [Savonet] #303: Large tracks take long to load

2009-09-09 Thread Romain Beauxis
Le mercredi 9 septembre 2009 20:54:06, vous avez écrit :
 The latest problem is that LiquidSoap automatically loads up the same file
  when I do dynamic requests.
 
 So In order for 1 song to play, and then the next correct song, liquidsoap
  will play each one 2 times.
 
 I tried echoing back 2 lines, but liquidsoap doesn’t error, it just...
  doesn’t do anything...
 
 Track.sh:  (try # 1 success, infinitely repeats the track)
 
 echo /home/nocturnal/tunes/_TODAY/13.today.mp3
 
 Track.sh   (Doesn't error or anything, just doesn't stream -- mainly
  because I don’t have a fallback, because I don't want one (at least until
  I get everything running through this dynamic request system))
 
 echo /home/nocturnal/tunes/_TODAY/13.today.mp3
 echo /home/nocturnal/tunes/_TODAY/14.today.mp3

Heh.. The problem, I guess is that you have never written a script so far, have 
you ? :-)

The problem that you will run into now is that you need to consider all that 
you want 
for your system. By that I mean write down exactly the specifications that you 
want 
for the songs to be played.

Then, you will need to implement them, which means choose a language and write 
a 
program that finds the correct song according to the specifications.

However, this should not be too difficult. I could try to help. Could you 
please try to 
write what exactly you want to do for selecting a new song. Try to answer as 
simply 
as possible to the question:
  Hey, I am liquidsoap. I need to queue a new song, which file should I add ?
:-)

Le mercredi 9 septembre 2009 20:57:15, vous avez écrit :
 Here's what our playlist metadata did...
 
 
 #playlist = rewrite_metadata(
 #   [(artist,([Nocturnal.FM Main]
  ^$(artist))), #(title,($(title) ^[The
  best trance  progressive] ^$(album)  )),
  # (album,)],playlist)
 
 
 Basically, 
 
 [Nocturnal.FM] Romain Beauxis - Liquidsoap Trance (Original Mix) [The best
  trance  progressive] $(album)
 
 The same way we had our playlist setup... I'm sorry I don't know how to do
  any of this stuff :(

Well, you can do exactly the same !
In the code you show, playlist is a variable, so it could be named anything 
else. 
For instance:

s = request.dynamic(...)

s = rewrite_metadata(
   [(artist,([Nocturnal.FM Main] ^ $(artist))),   
   
(title,($(title) ^ [The best trance  
progressive] ^ $(album) )),
(album,)], s)

Here I have replace playlist by s, but you could also use any variable name 
that you like..


Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] [Savonet] #303: Large tracks take long to load

2009-09-09 Thread Romain Beauxis
Le mercredi 9 septembre 2009 21:32:15, vous avez écrit :
 Liquidsoap says, ok I'll load this, and Oh since I see this is the main
  fallback for receiving music, I'll go ahead and load it again! Now I have
  two of the same track ready to play (...)..
 
 I just need to know how to tell Liquidsoap what to load. I don't know SH
  programming, I'm actually a pure PHP programmer. 

Ok, please apologize for my previous assumption then... 

  But it's a real mystery
  here what your software wants to receive, and how it should be received.
  It's been a guessing game.

The thing is that liquidsoap wants to keep in advance a queue of some requests 
in order to make sure that it will always have something to play. Hence the 
two songs that you see on the initial startup.

Provided you have liquidsoap 0.9.1, you can however, use the new behaviour 
which will allow only one song to be requested at once. What you need is to 
do:
  request.dynamic(conservative=false, length=5., (...)

That way, liquidsoap will estimate the length of the current song and only 
query for a new one when there are 5 (estimated) seconds remaining. 

The reason for this being an estimation is because mp3 format, for instance, 
does not allow a reliable length computation, hence computing the total length 
needs the decoding of the whole song, which we want to avoid :)

 Once I can dynamically talk to liquidsoap using the request.create (without
  every request being a duplicate, and without liquidsoap needing a new
  fallback to facilitate it during this dynamic method), I'll add a fallback
  playlist later. Right now I'm focusing on how to have full control over
  liquidsoap using request.dynamic, so I can begin writing a scheduler in
  PHP.

Ok. I hope that with the above settings, you should have the full control of 
the scheduling in liquidsoap. I wish you success in writing a scheduler in PHP 
:-)


Romain

--
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] prob. with automatically restarting

2009-09-14 Thread Romain Beauxis
Le lundi 14 septembre 2009 18:05:36, Artur Skupienski - DJ a écrit :
 Hi Guys, thanks a lot for your help:) 

Hi Artur !

 Liquidsoap makes fantastic passibilities! and you made a staff what we all
  need for, so thanks!

Thanks !

 I got some prob with this... I trying to keep continuing my stream as a
  relay but after 99sec I lost definitelly my streamming, I think it is
  because my little funny fault, maybe I forgot something... but please look
  at my code, output as well.

Hmmm.. what do you mean exactly by losing your stream ? The listener gets 
disconnected ? Liquidsoap doesn't work ?

 ps I know I can change my restart_encoder_delay but how can I automatically
  restarted my aacplusenc?

I don't really understand this. The delay is indeed for restarting the 
encoder.. 

By the way, if you put a negative delay, the encoder will not be restarted. 
However, I am not sure that aacplusenc is meant to run indefinitely, that is 
why it is restarted every hour by default (3600s).

Any user feedback would be interesting on this point

Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Read error Unix.Unix_error(56, read, ) ???

2009-09-21 Thread Romain Beauxis
Le lundi 21 septembre 2009 01:33:33, David Baelde a écrit :
 Romain, are you sure this is the same bug? I don't see duppy crashing
 in the logs.

Yes, I'm 90% sure. This exactly the same conditions as for previous reports.

We don't see explicitely duppy, but the Unix.read error raised in the non-
blocking thread in the context of Harbor clearly indicates duppy and the Io 
API.

 Also, it's curious that the DJ was still streaming.. from liquidsoap's
 point of view, he was disconnected: unix error 56 is ECONNRESET.

Yes. To me this bug seems to be trigered by strange unix network conditions. 
However, we shouldn't crash but catch the exception.


Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Metadata-based on/off switch for smart crossfading

2009-09-21 Thread Romain Beauxis
Le dimanche 20 septembre 2009 10:30:07, David Baelde a écrit :
 Hi,

Hi !

 The smart_cross() operator takes a transition function of type (float,
 float, [(string*string)], [(string*string)], source, source)-source).
 This means that it is of the form fun (v1,v2,m1,m2,s1,s2) - ... where
 v1/v2 are the volumes before/after the track change, m1/m2 the
 metadata before/after the track change, and s1/s2 the source
 before/after the change.
 
 So, you can read the metadata attached to the next track using for
 example m2[cross]==no.

Just to add more details. If you want an example of the use of a function for 
smart_cross, you can look for the definition of smart_crossfading in utils.liq.

Now, if you want a metadata to prevent any transition, you could do:

def smart_crossfade (~start_next=5.,~fade_in=3.,~fade_out=3.,
 ~default=(fun (a,b) - sequence([a, b])),
 ~high=-15., ~medium=-32., ~margin=4.,
 ~width=2.,~conservative=false,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=smart_crossfade)

  def transition(a,b,ma,mb,sa,sb)

list.iter(fun(x)- log(level=4,Before: #{x}),ma)
list.iter(fun(x)- log(level=4,After : #{x}),mb)

if mb[cross]==no  # 
 # no transitions# 
then   # 
 sequence([a, b])   # 
   elsif
  # If A and B are not too loud and close, fully cross-fade them.
  a = medium and b = medium and abs(a - b) = margin
then
  log(Old = medium, new = medium and |old-new| = margin.)
  log(Old and new source are not too loud and close.)
  log(Transition: crossed, fade-in, fade-out.)
  add(fade.out(sa),fade.in(sb))

elsif
  # If B is significantly louder than A, only fade-out A.
  # We don't want to fade almost silent things, ask for medium.
  b = a + margin and a = medium and b = high
then
  log(new = old + margin, old = medium and new = high.)
  log(New source is significantly louder than old one.)
  log(Transition: crossed, fade-out.)
  add(fade.out(sa),sb)

elsif
  # Opposite as the previous one.
  a = b + margin and b = medium and a = high
then
  log(old = new + margin, new = medium and old = high)
  log(Old source is significantly louder than new one.)
  log(Transition: crossed, fade-in.)
  add(sa,fade.in(sb))

elsif
  # Do not fade if it's already very low.
  b = a + margin and a = medium and b = high
then
  log(new = old + margin, old = medium and new = high.)
  log(Do not fade if it's already very low.)
  log(Transition: crossed, no fade.)
  add(sa,sb)

# What to do with a loud end and a quiet beginning ?
# A good idea is to use a jingle to separate the two tracks,
# but that's another story.

else
  # Otherwise, A and B are just too loud to overlap nicely,
  # or the difference between them is too large and overlapping would
  # completely mask one of them.
  log(No transition: using default.)
  default(sa, sb)
end
  end

  smart_cross(width=width, duration=start_next, conservative=conservative,
  transition,s)
end

Not tested by it should work...



Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] What are the laws?

2009-09-24 Thread Romain Beauxis
Hi all !

Le jeudi 24 septembre 2009 09:36:23, Gilles PIETRI a écrit :
  I've been reading for hours and I think Im more confused than ever.  
  Does anyone have any experience with licensing?  Anyone know if/how the 
  laws apply to mixes and live broadcasts as opposed to singles playing?
 
 In France, no matter what you broadcast (remixes, bootlegs, live 
 shows..), you have to get an agreement with several of the rightholders 
 defenders.. That is the SACEM, SCPP, SCPF  so on..
 
 Even if you play unlicenced (or licenced but on other terms than theirs) 
 music, there is some case you still have to pay a fee.. Which is rather 
 irritating obviously.. And it's not cheap also ;)

Hmmm. Do you also mean it for Creative Commons licensed music ?

About the MP3 format, which was in the initial question, this depends. The 
basics of the license for using mp3 is the patents over the corresponding 
audio technologies. 

However, such patents are not filed worldwide but localy, one for the USA, one 
for Europe etc.. So if there is no patent in your country (say... Russia ?), 
then you don't have to pay a license.

Furthermore, some countries, like the countries in European Union do not 
recognize software patent (to some extend), hence it is highly possible that 
such license fees would be illegal. (to be confirmed)

In any way, one of the main purpose of the ogg codecs was precisely to have 
patent free technologies. So if you stream using one of the ogg codecs, say 
ogg/vorbis, you do not have to pay fees, and will never have.

This fact, by the way, really makes me wonder why hardware manufacturers still 
push for patent-encumbered technologies, which is exactly like shooting its 
own foot where they could use patent-free technologies and save costs..

 As for mixes or bootlegs, there are even artists who refuses them, in 
 case you might alter how good their music sounds..

Hmmm... But I am not sure this is legal for the artist. So far, my 
understanding is that, in France, as soon as you pay the required fees you 
have the right to broadcast the artist's performance. This is probably linked 
to the legal requirement that an artist cannot cancel a publicaly exposed 
artistic thing. 

Most similar to the fact that they can't refuse a cover of their song, can 
they ?

In particular, I remember that radio show on sunday on Skyrock when I was a 
teen that was playing bootleg lives for a couple of hours and was, I believe, 
totaly legal.



Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Preparing a bugfix release.

2009-09-25 Thread Romain Beauxis
Hi Gabriel !

Le mercredi 23 septembre 2009 22:31:37, Gabriel Afana a écrit :
 I've been using liquidsoap pretty extensivly over the past several
  months.  Its been working very well so far :-)  However, here are some
  things Id like to see in a future release:

Thanks for your encouragements !

 1) Better video support.  I want to be able to broadcast video from DJs
  while they play live or from remote locations like clubs and parties.  As
  it is right now, I will likely just use a 3rd party flash video streaming
  application but it will not be fully synced to the music.  Idealy the best
  way is to do it all together in liquidsoap.  

Sure !
Video support is already an ongoing work. Current status is however half-baked 
and there are core changes that are waiting to be done.

We are currently working on this, but this will be for liquidsoap 1.0, which 
will eventually land, but not in the short term.

We will inform you and the other users as soon as we have something ready to 
be tested for production !

 2) Better support for external input and/or porting between programs.  I am
  planning on setting up a web-based telephone switching board so listeners
  can call in a toll-free number to get on the radio.  The DJ will be able
  to view the virtual switch board online and control who goes on air, view
  whose waiting, bridge them all in, just one, cut people off..etc.  I can
  do this all through Asterisk (Open source PBX program), but I have no idea
  how to port this audio into liquidsoap...especially during a live
  broadcast.  Maybe some way to merge a harbor input and an
  input.external?  

This should be feasible with an input.external. What you need is a program 
that is able to receive the calls and output the sound to its standard output 
in a pcm format.

Then you should be able to have a new source using input.external and this 
program to acheive what you want. I remember that at least one user tried this 
recently.


Romain 

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Read error Unix.Unix_error(56, read, ) ???

2009-09-26 Thread Romain Beauxis
Hi Gabriel !

Le dimanche 20 septembre 2009 21:20:08, Gabriel Afana a écrit :
 So today I had something unusual happen for the first time.  A DJ was
  playing live (input.harbor) and about 40 minutes into his show, liquidsoap
  fell back to the playlist and continued playing the normal playlist that
  plays when there isn't a live show.
 
 The really strange part is I checked to logs thinking to see the DJ simply
  lost his connection, however this wasn't the case.  The logs showed that
  he reconnected again and my on_connect and on_disconnect function logs
  show that he did connect again but never disconnected (i.e. he was still
  streaming).  However liquidsoap was still playing playlist songs and
  wasn't going to the input.harbor source.  
 
 This has never happened before.  I had to go in and manually run the
  on_disconnect function since it never ran.  I have a crontab running every
  minute that checks and disconnects the DJ the minute his timewinow is up
  (using telnet connection).  Even if all else fails, this will disconnect
  his input.harbor connection and of course should run the on_disconnect
  function.  The crontab ran and connected via telnet but the on_disconnect
  function never ran (leading me to believe he was never connected anyways
  because the radio was streaming the playlist and not his live
  show).  However, he connected but never disconnected (but was no longer
  connected!!) haha confusing!  I noticed an unusual error i've never
  seen.  Maybe this is what caused this strange occurance?

Ok, I am looking at your issue now.

From what I see on the log, it seems like everything hapened has expected.

The exception you saw on the log is generated because the reading on the 
socket failed, and as expected you see that the harbor source disconnects him.

Then, the second request that you see on the logs is in fact a metadata update 
request. It means that the source client tried to do a metadata update 
request, which will suceed even if the audio feeding has failed.

The thing that I don't see in the logs is the second source client connection 
on the harbor. Perhaps it should need to look later in the logs ?

So, my understanding is:
 * The connection with the DJ was lost at some point
 * The behaviour after that was not what you expected

Hence, as such I cannot reallt judge whether the problem after the 
deconnection comes from the source client (VirtualDJ) or from liquidsoap.

It would be nice if you could send us more logs, in particular a bit before 
and after the issue so that we can see the harbor source client connections.



Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] The aacplus streaming is great!

2009-09-27 Thread Romain Beauxis
Le dimanche 27 septembre 2009 14:19:36, Brandon Casci a écrit :
 Hello

Hi !

 Got a chance to check out the aacplus streaming. It sounds great! I even
 tried using an aacplus stream for http.input, and I was surprised that
 worked. Though when aacplus was used as input, ever 20 seconds or so the
 output, also aacplus, would have a shuffling sound, almost like the
 fast-forward while playing a CD. Still I'm looking forward to useing
  aacplus and will drop certain streams in favor of it.

Thanks for the report !

The aacplus encoder is known to have issues with parametric stereo, which is 
used at low bitrates, such as 32k. 

So far, it performs quite good at 64k, which I would recommend for now.

The nero AAC+ encoder has a much better quality at each bitrate. However, it 
is not yet possible to use it as an external encoder. I have requested the 
changes upstream, they say they will surely consider it, so we have to wait 
and see..



Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] SVN 6763: Error in File tools/liqfm.ml, line 148, characters 20-47

2009-09-28 Thread Romain Beauxis
Le lundi 28 septembre 2009 10:02:54, Frits Letteboer - St. Radio Twenterand a 
écrit :
 Hi there,

Hi !

 Was trying to get up-to-date with the latest SVN, but this error popped 
 up. Ocaml-lastfm is commented out in PACKAGES, since I don't use it:
 
 OCAMLC -c tools/liqfm.ml
 File tools/liqfm.ml, line 148, characters 20-47:
 This function is applied to too many arguments,
 maybe you forgot a `;'

Yes, you probably have a lastfm module installed in your system.
If you are on a debian-derived system, you should look for a package named 
liblatfm-ocaml-dev, otherwise look in the paths returned by:
  ocamlfind printconf

For instance, for me it is:
Search path:
/usr/local/lib/ocaml/3.11.1
/usr/lib/ocaml
/usr/lib/ocaml/METAS


Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] log rotation

2009-09-29 Thread Romain Beauxis
Le mardi 29 septembre 2009 18:48:45, Romeo a écrit :
 Hi!

Hi !

 Can i use logrotate tool to rotate liquisoap log, or it has internal
 capabilities to do this stuff?

Yes you can ! :-)

The basic logrotate script provided by liquidsoap is:
/var/log/liquidsoap/*.log {
  compress
  rotate 5
  size 300k
  missingok
  notifempty
  sharedscripts
  postrotate
for liq in /var/run/liquidsoap/*.pid ; do
  if test $liq != '/var/run/liquidsoap/*.pid' ; then
start-stop-daemon --stop --signal USR1 --quiet --pidfile $liq
  fi
done
  endscript
}

As you can see, you need to send the USR1 signal to liquidsoap after moving 
the file away..


Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Fading / Silence issues after version 0.3.8.1

2009-09-29 Thread Romain Beauxis
Le mardi 29 septembre 2009 03:34:28, Frits Letteboer - St. Radio Twenterand a 
écrit :
 Hi there,

Hi !

 After checking out the latest SVN version there seems to be some issues 
 between regular tracks.
 
 In the old version there's a smooth crossfade between regular tracks. In 
 later / the latest version(s) this has changed to fade out - 10 seconds 
 of silence - fade in to next song.
 
 The fades from/to jingles and commercials still work as expected.
 
 I'm pretty sure I screwed up somewhere, but I can't find where. So I've 
 attached the script used in both cases.

Thanks for the report !

There can be various possible reasons for your issue. The first and immediate 
that comes to my mind is the change in the default behaviour of request-based 
sources. 

Now, the new song request is triggered only 10 seconds before the previous 
song ends. So if the requests and song processing takes too long, you might 
experience this kind of issues.

What you can do to test this assumption, is to pass the option 
conservative=true to request.dynamic, but also playlist if needed.

Please let us know whether it helps, otherwise we would try to find another 
reason for your issue.


Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] liquidsoap libaacplus

2009-09-29 Thread Romain Beauxis
Le mardi 29 septembre 2009 20:47:54, Romeo a écrit :
 Hi Savonet Team!

Hi !

 i'm trying to make work 0.9.1+svn with  ocaml-aacplus but get error when
 starting liquidsoap. it says it cannot load libaacplus.so.1 but it exists
  in /usr/local/lib/
 
 i use this http://tipok.org.ua/node/17 library (libaacplus)

Ok, correct link.

The problem could be that your system does not know that you have installed 
the library.

You should try to execute, as root:
  ldconfig


Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Considering shutting down my radio and possibly making my radio management system public

2009-09-29 Thread Romain Beauxis
Hi Gabriel !

Le mardi 29 septembre 2009 21:35:14, Gabriel Afana a écrit :
 So I've been doing a LOT of research in the legality of running an internet
  radio and because of all the corrupt politians (at least in the USA),
  running a legal internet radio station is not really possible for most
  people due to the OUTRAGEOUS fees of SoundExchange. 
 
 I've looked into running the radio in another country such as Canada which
  have less strict laws, but the radio is for an online community I run
  which is a legitimate business that I make my living off of.  I dont want
  to merge shady business activies (such as moving the radio system to
  canada to avoid fees) with my legitimate business and have possible
  problems down the radio.  Im REALLY upset about this because I spent the
  last several months developing this radio (spending 10-12 hours/day
  working on it).  This is what I was doing full-time.  

I am really sorry to hear this. I understand why you want to do your business 
seriously and why you do not want to use alternative sneaky ways. 

I personaly believe the actual fees for net broadcasting are decided while 
consulting only the existing players, which already have a lot more income, 
and also for the most of them rely massively on traditional broadcasting, and 
for that reason do not have any interest into letting new concurrent appear on 
internet...

I really hope that people like you with innovative ideas and willing to work 
full time on setting up new broadcasting systems for internet find their own 
economic equilibrium.

 However, if I end up shutting down my radio, I do not want all that work of
  mine to go to waste so I would like to share it with you guys.  If this
  ends up happening, I'll be sure to give everyone a tour and explain how it
  works.

In the very unfortunate case where this would happen, we would be pleased to 
host the source code, provided it is released under any open-source compatible 
license, which I am sure is what you have in mind.

Another issue from our perpective would be the maintenance of the code, but 
that is another topic.



Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Playing blank

2009-09-29 Thread Romain Beauxis
Le vendredi 4 septembre 2009 14:12:42, Jean-Francois Mauguit a écrit :
 Hello,

Hi Jef !

 Thanks. I'll work on that next week and let you know if telnet  
 connection is successful.

Do you have any news on that issue ? We're considering a bugfix release, so it 
would be nice to fix it if we can.. 


Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Fading / Silence issues after version 0.3.8.1

2009-09-30 Thread Romain Beauxis
Le mercredi 30 septembre 2009 17:49:54, Romain Beauxis a écrit :
 I am quite curious about your issue. Did you try to add
  conservative=true,  and also length=30. to your request-based sources
  ?
 
 If it still does not work with that, then I think it would worth a ticket
  with  script and logs and we should try to fix it.

Another remark reading your script. The delay operator was not present in 
3.8.1. Furthermore, in its current implementation, it might be subject of 
issues when used with crossfading.. 

Could you also check whether the bug disapear when you remove the delays, 
please ?


Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Fading / Silence issues after version 0.3.8.1

2009-10-01 Thread Romain Beauxis
Le jeudi 1 octobre 2009 01:41:48, vous avez écrit :
  Another remark reading your script. The delay operator was not present
  in  3.8.1. Furthermore, in its current implementation, it might be
  subject of issues when used with crossfading..
 
 Are you sure? Since delay is working flawlessly with that version and 
 works great for queueing promotions and commercials.
 
  
  Could you also check whether the bug disapear when you remove the
  delays,  please ?
 
 If I removed the delays I would be listening to commercials and jingles 
 all the time?
 
 I will check this and report back.

Hmm Sorry, it seems I have confused delay and lag.. No need to bother about 
this..


Romain

--
Come build with us! The BlackBerryreg; Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


<    1   2   3   4   5   6   7   8   9   10   >