Hi Again All: I have done further research into the behaviour of merge_tracks() and switch(). Either I don't understand the correct behaviour of these constructs, or I have found a bug. Demo code is attached and documented herein. I have tried to document the issue clearly, and provided source code. I hope this will help with resolution of my problem!
BACKGROUND:
I want to use a switch() construct to play an -entire- playlist in normal (i.e.
top to bottom) order at a specified time. I am using merge_tracks() to join
the target playlist into a single track.
PLATFORM:
Liquidsoap 1.1.0 running on an Intel machine; Ubuntu 12.10 with all updates
applied.
PLAYLIST:
I have the following playlist, named "test.pls", which consists of 4 short .ogg
files. Each .ogg file is a 2-second long item that just contains the spoken
audio "Item A", "Item B", "Item C", and "Item D". The merged audio file will
be only about 8 seconds in length. Here is the playlist file:
$ cat ../playlists/test.pls
/home/kevin/radio/content/test/a.ogg
/home/kevin/radio/content/test/b.ogg
/home/kevin/radio/content/test/c.ogg
/home/kevin/radio/content/test/d.ogg
PROGRAM CODE:
I have written a short test program to play the merged "test.pls" source twice
per minute. Here is my short test program:
$ cat demo.liq
#!/usr/local/bin/liquidsoap
# Logging information:
set("log.file.path","/home/kevin/radio/log/test.log")
# Test: merge tracks of test.pls:
zzz = merge_tracks(playlist.safe(reload_mode="watch", mode="normal",
"~/radio/playlists/test.pls"))
radio = mksafe(fallback(track_sensitive=false, [
switch([
({0s}, zzz),
({30s}, zzz)
])
]
))
# Streaming:
output.icecast(%vorbis,
host = "localhost", port = 8000,
password = "donthackme", mount = "vorbis-dev",
radio)
output.icecast(
%mp3(bitrate=128),
host = "localhost", port = 8000,
password = "donthackme", mount = "mp3-dev",
radio)
EXPECTED BEHAVIOUR:
I expected that the program would play the entire "test.pls" (items a, b, c,
and d.ogg) twice every minute, at 0 seconds and 30 seconds of every minute. I
should hear "Item A, Item B, Item C, Item D" for about 8 seconds, starting at 0
seconds; and then again at 30 seconds past each minute.
OBSERVED BEHAVIOUR:
The program plays only 2 items, "a.ogg" and "b.ogg" at 0 seconds of the
minute; then it plays the other two items, "c.ogg" and "d.ogg" at 30 seconds
past the minute. This behaviour continues each minute.
SUMMARY:
Either I don't understand the LS constructs, or there is a problem either with
merge_tracks() or with switch().
I am hoping for the former, as I would like to get my little project completed,
but if this is a bug then I hope this information can help resolve it.
I have attached my demo program code.
Any assistance appreciated, I like LS so far and it will meet my project needs
perfectly once I get the new program running!
Kevin
demo.liq
Description: Binary data
------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________ Savonet-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/savonet-users
