2018-09-27 14:18:03 +02:00
|
|
|
set("log.file",false)
|
|
|
|
set("log.stdout",true)
|
|
|
|
|
|
|
|
set("server.telnet",true)
|
|
|
|
set("server.telnet.port", 5000)
|
|
|
|
set("server.telnet.bind_addr", "0.0.0.0")
|
|
|
|
|
|
|
|
set("decoder.file_extensions.gstreamer",["wav", "webm"])
|
|
|
|
set("decoder.mime_types.gstreamer",["audio/x-wav", "audio/wav", "video/webm"])
|
|
|
|
|
|
|
|
def crossfade(a,b)
|
|
|
|
add(normalize=false,
|
|
|
|
[ sequence([ blank(duration=5.),
|
|
|
|
fade.initial(duration=5.,b) ]),
|
|
|
|
fade.final(duration=5.,a) ])
|
|
|
|
end
|
|
|
|
|
|
|
|
live = audio_to_stereo(
|
|
|
|
rewrite_metadata(
|
|
|
|
[
|
|
|
|
("title", "$(title) (LIVE - Dodsorfas Radio)"),
|
|
|
|
("comment", "http://www.radio.dodsorf.as")
|
|
|
|
],
|
|
|
|
stretch(
|
|
|
|
ratio=interactive.float("test", 1.00005),
|
|
|
|
input.harbor(
|
|
|
|
"dodsorfas.live",
|
|
|
|
id="dodsorfas.live",
|
|
|
|
port=5002,
|
|
|
|
password=getenv("LIVE_PASSWORD"),
|
|
|
|
user="source",
|
|
|
|
logfile="/tmp/harbor.log"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
2018-10-21 20:07:53 +02:00
|
|
|
normal_songs = playlist(reload=600, mime_type="application/x-mpegURL", "http://web/playlist.php")
|
|
|
|
halloween = playlist("/playlists/events/Halloween.m3u")
|
2018-09-29 23:08:11 +02:00
|
|
|
|
2018-10-21 20:07:53 +02:00
|
|
|
requests = audio_to_stereo(drop_video(request.queue(id="request")))
|
2018-09-29 23:08:11 +02:00
|
|
|
|
2018-10-21 20:07:53 +02:00
|
|
|
jingles = playlist("/jingles/")
|
2018-10-13 22:34:30 +02:00
|
|
|
|
2018-10-21 20:07:53 +02:00
|
|
|
def is_halloween() =
|
|
|
|
localtime(time(), fun (~sec,~min,~hour,~mday,~mon,~year,~wday,~yday,~isdst) ->
|
|
|
|
mday >= 22 and mon == 10 and mday <=31) # These are POSIX standards, mon: month of year [0,11]
|
|
|
|
end
|
2018-10-13 22:34:30 +02:00
|
|
|
|
2018-10-21 20:07:53 +02:00
|
|
|
default = switch([
|
|
|
|
({is_halloween()}, random(weights = [1,5], [halloween, normal_songs])),
|
|
|
|
({true}, normal_songs)
|
|
|
|
])
|
2018-09-29 23:08:11 +02:00
|
|
|
|
2018-10-21 20:07:53 +02:00
|
|
|
mix = blank()
|
|
|
|
mix = fallback(track_sensitive=false, [default, mix])
|
|
|
|
mix = fallback(track_sensitive=true, [requests,mix])
|
2018-09-29 23:08:11 +02:00
|
|
|
|
2018-10-21 20:07:53 +02:00
|
|
|
mix = random(weights=[9, 1], [mix, jingles])
|
2018-09-27 14:18:03 +02:00
|
|
|
|
|
|
|
mix = fallback(track_sensitive=false, transitions=[crossfade], [live, mix])
|
2018-10-21 20:07:53 +02:00
|
|
|
|
2018-10-15 19:00:03 +02:00
|
|
|
mix = normalize(mix)
|
2018-10-21 20:07:53 +02:00
|
|
|
mix = audio_to_stereo(mix)
|
2018-09-27 14:18:03 +02:00
|
|
|
|
|
|
|
# OUTPUTS
|
|
|
|
output.icecast(
|
|
|
|
password=getenv("HARBOR_PASSWORD"),
|
|
|
|
host=getenv("BROADCAST_PORT_5001_TCP_ADDR"),
|
|
|
|
port=int_of_string(getenv("BROADCAST_PORT_5001_TCP_PORT")),
|
|
|
|
%wav,
|
|
|
|
mount="dodsorfas.main",
|
|
|
|
mix
|
|
|
|
)
|