libretime/playout
Marvin d2f93f7c8a
fix(playout): when shows ends, next shows starts without fade-in/fade-out (#2412)
Tracks are not fading with the crossfade function which leads to hard cuts at the end of tracks and shows. Therefore the explicit fade functions are used.

In Liquidsoap version 1.4.3. crossfade is implemented as a cross with a custom transition (fade_in and fade_out).
9f730f2c5f/src/libs/fades.liq (L433-L436)

The "duration" argument is passed through to the cross function.
In the implementation of the cross operator the value duration is used to determine how log the crossfade should take.

It is set to the cross_lenght parameter

f075905715/src/operators/cross.ml (L30-L34)

This can be overwritten with metadata, but the current annotation does not include a "override_duration" field so in our case it is always 0.
f075905715/src/operators/cross.ml (L186-L198)

So I assume the crossfade is starting to fade.out the track but because the duration is set to 0. the "cross" is completed immediately and the next source of the queue is started. Our queues do only ever contain one track at a time so there is no next source to play.
The next queue is activated and the same happens for the fade.in.

Replacing the crossfade with a fade.in/out removes this time boundary as there is no longer a "cross" function involved.

Until the tag 3.0.0-alpha.8 there was a custom crossfade_airtime function.
In tag 3.0.0-alpha.9 it was replaced with the crossfade function but was unable to find why.
ecd302068c/python_apps/pypo/liquidsoap/1.4/ls_script.liq (LL76C9-L76C18)

Co-authored-by: Marvin <Marvin>
2023-03-02 20:20:09 +01:00
..
install fix: remove systemd ProtectHome feature (#2244) 2022-10-19 12:37:39 +02:00
libretime_playout fix(playout): when shows ends, next shows starts without fade-in/fade-out (#2412) 2023-03-02 20:20:09 +01:00
tests test(playout): generated liquidsoap script syntax 2023-02-27 06:42:33 +02:00
Makefile chore: remove venv activation 2023-02-03 12:40:30 +01:00
README.md chore: update outdated readmes (#2131) 2022-09-12 20:45:37 +02:00
packages.ini chore: list distribution releases by release date 2022-10-10 20:11:33 +02:00
pyproject.toml test: re-enable pylint logging-fstring-interpolation 2023-02-26 19:09:51 +02:00
requirements.txt feat: drop Python 3.6 support 2022-10-10 20:11:33 +02:00
setup.py Merge branch '3.0.x' into main 2023-02-26 20:16:38 +01:00

README.md

LibreTime Playout

LibreTime Playout is a service that will ingest a schedule and stream it.

Development

# Install dependencies
make install
# Activate the development environment
source .venv/bin/activate

# Run linters
make lint

# Run tests
make test

# See the Makefile for more commands
cat Makefile

History

This tool was born out of a collaboration between Open Broadcast and Sourcefabric.

The authors of the code are:

Original Authors:

Almost a complete refactor/rewrite by: Martin Konecny martin.konecny@gmail.com