Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/liquidsoap
- set("log.stdout", true);
- set("server.telnet", true);
- # is skipped flag
- track.isSkipped = ref false;
- # transition func
- def transition(from, to)=
- if (!track.isSkipped) then
- track.isSkipped := false;
- add(normalize = false, [fade.initial(to), fade.final(from)]);
- else
- add(normalize = false, [to, from]);
- end
- end
- # extended crossfade
- def crossfade.switch(~id = "", ~conservative = true, ~start_next = 10., ~fade_in = 5., ~fade_out = 5., s)
- cross(id = id, conservative = conservative, duration = start_next, transition, s);
- end
- # security track
- security = single("/home/security.mp3");
- # external script just returns random track from folder
- # add your script name here
- playlist = request.dynamic(conservative = true, fun () -> request.create(list.hd(get_process_lines("external script"))))
- # apply crossfade (we need it really only for tracks in playlist)
- playlist = crossfade.switch(playlist);
- # create main source
- radio = fallback(track_sensitive = false, [playlist, security]);
- # output source
- output.icecast(mount = "testme", host = "localhost", port = 80, password = "hackme", %mp3, radio)
- # Updates program timeout, server command
- def server.source.skip(unused) =
- track.isSkipped := true;
- source.skip(radio);
- "done"
- end
- # Register server command
- server.register(namespace = "source",
- description = "Skips current track",
- usage = "skip", "skip", server.source.skip);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement