crossfade #
Liquidsoap умеет делать плавные переходы между песнями (crossfade).
Для этого вместе в путем до аудиофайла нужно передать аннотации.
А именно, есть 4 переменные, которые вы можете передать в качестве метаданных,
liq_fade_in
, liq_fade_out
, liq_cue_in
, и liq_cue_out
. Они делают то, что вы ожидаете.
Протокол аннотаций можно использовать даже если вы играете простой текстовый плейлист.
Если вы используете request.dynamic
, вы можете передать строку,
содержащую метаданные аннотации request.create
.
request.create("annotate:liq_fade_in=0.5,liq_fade_out=0.5,liq_cue_in=30,liq_cue_out=50:/home/tracks/misic.mp3")
После того как вы передали аннотации нужно включить обработку меток (cue) и плавных переходов.
Для обработки меток понадобится cue_cut
для переходов crossfade
или smart_crossfade
в итоге доработав скрипт играем одну папку получим
# включаем вывод отладочной информации
set("log.stdout", true)
# устанавливаем уровень 3 - для отладки достаточно
set("log.level", 3)
# описываем источник (папку на диске. Указываем либо полный путь, либо папку рядом со скриптом, либо ссылку на плейлист)
radio = playlist('~/radio/playlist.txt') # пример полного пути
# обязательное условие сделать источник безопасным, то есть не допускать остановок
radio = mksafe(radio)
# добавляем обработку меток
radio = cue_cut(radio)
# добавляем плавные переходы
radio = crossfade(radio)
out = output.pulseaudio(radio)
Файл с плейлистом playlist.txt
может может содержать простые пути к файлам, либо пути дополненные аннотациями
annotate:liq_fade_in=0.5,liq_fade_out=0.5,liq_cue_in=10,liq_cue_out=50:/home/tracks/first_song.mp3
annotate:liq_fade_in=0.3,liq_fade_out=0.5,liq_cue_in=30,liq_cue_out=50:/home/tracks/second_song.mp3
annotate:liq_fade_in=0.1,liq_fade_out=0.5,liq_cue_in=2,liq_cue_out=50:/home/tracks/first_song.mp3
annotate:liq_fade_in=0.9,liq_fade_out=0.5,liq_cue_in=5,liq_cue_out=50:/home/tracks/first_song.mp3