################ DEBUT AJOUT POUR L'AUTODJ ########################### INIT PLAYLIST ################################## ignore(run_process("python3 /home/radio-dragon/autoDJ/scripts/create_playlist.py")) ########################### REFRESH PLAYLIST EVERY NIGHT ################################## exec_at(freq=1800., pred={ 23h00-23h50 }, fun() -> ignore(run_process("python3 /home/radio-dragon/autoDJ/scripts/create_playlist.py")) ) ########################### TRANSITIONS ################################## # a 3-seconds crossfade operator that skips the cutted track. # Skipping avoids getting back in the middle of a music track after a live show, # but it requires a weird implementation. See https://github.com/savonet/liquidsoap/issues/1548 def crossfade_3s(a,b) faded = add(normalize=false, [ fade.in(duration=3., type="exp", b), amplify(mkfade(duration=3., start=1., stop=0., type="exp", a) ,a) ]) add_timeout(10., { source.skip(a) ; -1.}) faded end # Transition entre émission et playlist def back_to_playlist(live, playlist) = # Cancel current track. This will also set the playlist # to play a new track. source.skip(playlist) sequence([live, playlist]) end # Transition vers libretime def to_libretime(playlist, live) = sequence([playlist,live]) end ########################### AUTODJ ################################## autodj = playlist(reload_mode="watch", "/home/radio-dragon/autoDJ/playlist_autodj.txt",mode="normal") # 780 = au moins 13 minutes de délai entre les jingles # "delay" compte en secondes et c'est forcément un flottant d'ou le point obligatoire jingles = delay(780., id="jingles", playlist.safe("/home/radio-dragon/Musique/JINGLES-BA-FOCUS/Jingles en COURS", mode="random", reload_mode="watch") ) # à la fin de chaque track, va piocher un jingle s'il est dispo (après lecture, il n'est pas dispo) autodj_avec_jingle = fallback([jingles, autodj], id="autodj_avec_jingle") ########################### PLAYLIST SECOURS ################################## secours = mksafe(playlist("/home/radio-dragon/Musique/playlist_secours",reload_mode="watch")) ########################### COMBINING SOURCES ################################## default = fallback(track_sensitive=false,transitions=[back_to_playlist,to_libretime], [autodj_avec_jingle,secours], id="default") ######################################################## FIN AJOUT POUR L'AUTODJ