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" ) ) ) ) normal_songs = playlist(reload=600, mime_type="application/x-mpegURL", "http://web/playlist.php") halloween = playlist("/playlists/events/Halloween.m3u") christmas = playlist("/playlists/events/Christmas.m3u") requests = audio_to_stereo(drop_video(request.queue(id="request"))) jingles = playlist("/jingles") def is_date(startd, startm, endd, endm) localtime(time(), fun (~sec,~min,~hour,~mday,~mon,~year,~wday,~yday,~isdst) -> mday >= startd and mon == startm-1 and mday <= endd and mon <= endm-1) # These are POSIX standards, mon: month of year [0,11] end default = switch([ ({is_date(22, 10, 31, 10)}, random(weights = [1,5], [halloween, normal_songs])), ({is_date(1, 12, 28, 12)}, random(weights = [1,5], [christmas, normal_songs])), ({true}, normal_songs) ]) mix = blank() mix = fallback(track_sensitive=false, [default, mix]) mix = fallback(track_sensitive=true, [requests,mix]) mix = random(weights=[9, 1], [mix, jingles]) mix = fallback(track_sensitive=false, transitions=[crossfade], [live, mix]) mix = normalize(mix) mix = audio_to_stereo(mix) # 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 )