|
|
|
|
@ -4,25 +4,55 @@ settings.harbor.bind_addrs.set(["0.0.0.0"])
|
|
|
|
|
enable_replaygain_metadata()
|
|
|
|
|
|
|
|
|
|
def print_meta(data)
|
|
|
|
|
artist = data["artist"]
|
|
|
|
|
title = data["title"]
|
|
|
|
|
a = data["artist"]
|
|
|
|
|
t = data["title"]
|
|
|
|
|
|
|
|
|
|
meta = json()
|
|
|
|
|
meta.add("artist", artist)
|
|
|
|
|
meta.add("title", title)
|
|
|
|
|
message = json()
|
|
|
|
|
message.add("command", "metadataChange");
|
|
|
|
|
message.add("data", { artist = a, title = t})
|
|
|
|
|
|
|
|
|
|
http.post(data=meta.stringify(), headers=[("Content-Type", "application/json; charset=UTF-8")], "metadata:4000")
|
|
|
|
|
http.post(data=message.stringify(), headers=[("Content-Type", "application/json; charset=UTF-8")], "metadata:4000")
|
|
|
|
|
()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
security = synth.all.sine(id="sine")
|
|
|
|
|
main_air_playlist = playlist("/music/main_air.pls")
|
|
|
|
|
general_playlist = replaygain(random([main_air_playlist]))
|
|
|
|
|
general_stream = normalize(crossfade(general_playlist))
|
|
|
|
|
live_stream = input.harbor("iceberg-live", port=6000, user="djiceberg", password="hackme")
|
|
|
|
|
|
|
|
|
|
radio = fallback(track_sensitive = false, [live_stream, general_stream, security])
|
|
|
|
|
def live_start(_)
|
|
|
|
|
message = json()
|
|
|
|
|
message.add("command", "liveStarted");
|
|
|
|
|
http.post(data=message.stringify(), headers=[("Content-Type", "application/json; charset=UTF-8")], "metadata:4000")
|
|
|
|
|
()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def live_end()
|
|
|
|
|
message = json()
|
|
|
|
|
message.add("command", "liveEnded");
|
|
|
|
|
http.post(data=message.stringify(), headers=[("Content-Type", "application/json; charset=UTF-8")], "metadata:4000")
|
|
|
|
|
()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
security = single("/music/jingle.mp3")
|
|
|
|
|
|
|
|
|
|
arctica_music = playlist("/music/arctica/music")
|
|
|
|
|
arctica_jingles = playlist("/music/arctica/jingles")
|
|
|
|
|
arctica = replaygain(rotate(weights=[5, 1], [arctica_music, arctica_jingles]))
|
|
|
|
|
|
|
|
|
|
jellyfish_migrations_music = playlist("/music/main_air")
|
|
|
|
|
jellyfish_migrations = replaygain(jellyfish_migrations_music)
|
|
|
|
|
|
|
|
|
|
general_stream = normalize(switch([
|
|
|
|
|
({13h-15h}, arctica),
|
|
|
|
|
({true}, jellyfish_migrations)
|
|
|
|
|
]))
|
|
|
|
|
|
|
|
|
|
live_stream = input.harbor(
|
|
|
|
|
"iceberg-live",
|
|
|
|
|
port=6000,
|
|
|
|
|
user="djiceberg",
|
|
|
|
|
password="hackme",
|
|
|
|
|
on_connect=live_start,
|
|
|
|
|
on_disconnect=live_end
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
radio = fallback(track_sensitive = false, [live_stream, general_stream, security])
|
|
|
|
|
radio.on_metadata(print_meta)
|
|
|
|
|
|
|
|
|
|
output.icecast(%mp3,
|
|
|
|
|
|