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") requests = audio_to_stereo(drop_video(request.queue(id="request"))) jingles = playlist("/jingles") 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 default = switch([ ({is_halloween()}, random(weights = [1,5], [halloween, 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 )