Crossfade

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