-
lindon v6.0.0~rc1-7 Stable
released this
2026-09-30 11:15:29 +02:00 | 1 commits to main since this releaseNote: GitHub renames
~to.in uploaded asset filenames — use the
GitHub-safe form in install commands, e.g.lindon_6.0.0.rc1-7_amd64.deb.Changes since rc1-6
- Fixed
RDCartDialog::loadFileData()(the "Load from File" quick-import
in RDCartSlots) using a hardcoded dBFS-appropriate normalization
value (-11) that became far too loud when a station has LUFS-based
loudness normalization enabled. Now uses -23 (LUFS) or -11 (dBFS)
depending on the station's LOUDNESS_NORMALIZATION setting. - New: per-station switch (RDAdmin Edit CartSlots dialog) to toggle
playback on RDCartSlots slots via the keyboard -- digit keys 1-8
play/stop the corresponding slot, independent of widget focus
within the RDCartSlots window. Slots in Breakaway mode ignore the
key. A green border is drawn around the window while it has focus
and the feature is enabled. NewSTATIONS.CARTSLOT_KEY_PLAYBACK
column, database schema 380 -> 381.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Fixed
-
lindon v6.0.0-rc1-6 Stable
released this
2026-09-29 13:20:47 +02:00 | 7 commits to main since this releaseWhat's new
- Per-station LUFS-based loudness normalization, alongside the
existing peak-based normalization (RDAdmin Host dialog switch).
Ports the approach already used in the external M3U-import tooling
into core Rivendell itself. Requires a DB schema update
(379 -> 380) — runrddbmgr --modifyafter installing. - Fixed a dead-air bug: a race between
RDLogPlay::Stopped()and
the grace-timer handling could double-start a "Make Next & Wait
max" line and stall the log for several minutes (observed up to
4:18) when the grace line was started by a normal segue from its
predecessor. lindon-install.sh: added a fixed-48kHz sample-rate choice
alongside the existing 44.1kHz-fixed/auto-detect options.
Note on the version string
GitHub renames the tilde in the package version to a dot in uploaded
asset filenames. If you're scripting the download, use e.g.
lindon_6.0.0.rc1-6_amd64.deb(dot, not tilde) — the actual Debian
package version stays6.0.0~rc1-6.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Per-station LUFS-based loudness normalization, alongside the
-
lindon 6.0.0~rc1-4 Stable
released this
2026-09-14 11:59:05 +02:00 | 14 commits to main since this release"Fix fresh-install detection: the LINDON_HAD_EXISTING_CONFIG check
was reading /etc/rivendell.d/rd-default.conf AFTER the preceding block
already created it in the same postinst run, so every fresh install
(not just a rivolution->lindon upgrade) took the upgrade branch and
called rddbmgr --modify on a database that was never created. Now
captured into a variable before that block runs."Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
lindon 6.0.0~rc1-2 Stable
released this
2026-09-09 19:00:56 +02:00 | 17 commits to main since this release6.0.0~rc1-2
- Fixed Manual/Forced Segue: RDLogPlay::play() fetched
rda->airplayConf()->segueLength() but never assigned the result to
segue_length, so a manual Start on a log line always cut in
immediately instead of fading over the RDAdmin-configured duration.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Fixed Manual/Forced Segue: RDLogPlay::play() fetched
-
lindon 6.0.0~rc1-1 Stable
released this
2026-09-09 16:03:48 +02:00 | 20 commits to main since this releaselindon 6.0.0~rc1-1
First release under the new package name. If you're upgrading an
existingrivolutioninstall, read the "Renamed" section below before
installing — the short version is: useapt install, not
lindon-install.sh, and back up your database first regardless.Renamed: rivolution → lindon
The package itself is now
lindon(wasrivolution). Internal paths
went the other way —/usr/share/rivolution/, our own systemd units
— reverted to plainrivendellnaming. Also dropped the+lindonN
version suffix entirely; it's redundant now that the package name
itself sayslindon, and it was quietly breaking our own build
script's revision auto-bump. Versioning going forward is a plain
Debian revision count (6.0.0~rc1-1,-2, …) against the upstream
Rivolution version.Upgrading from
rivolution:mysqldump --all-databases > backup.sql # do this regardless sudo apt install lindon_*.deb lindon-*.debConflicts:/Replaces:handles removing the oldrivolution-*
packages in the same transaction — reviewapt's summary before
confirming.Two things worth knowing after an upgrade, neither of them
automatic:- If you have existing PyPAD instances, check their script path —
PYPAD_INSTANCES.SCRIPT_PATHis a string frozen in the database at
creation time and won't follow the rename on its own. New instances
created after upgrading pick up the correct path automatically. rivolution.confunder/etc/systemd/system/rivendell.service.d/
isn't a dpkg-tracked conffile, so it's left sitting there alongside
the newrivendell.confrather than being removed. Harmless as
long as the two don't diverge, but worth cleaning up by hand:
rm /etc/systemd/system/rivendell.service.d/rivolution.conf.
Also fixed:
postinst's fresh-install-vs-upgrade check relied only on
dpkg's$OLD_VERSION, which dpkg leaves empty for aReplaces:-
triggered rename even with a fully working install already in place —
the very firstrivolution→lindoninstall would otherwise have hit
the fresh-install branch and dropped the production database. Now
also checks for a pre-existing/etc/rivendell.d/rd-default.conf
before deciding.New: "Make Next & Wait max"
A fourth option in "Action If Previous Event Still Playing" (rdairplay
Edit Event, rdlogedit, and rdlogmanager's clock/event editor), alongside
Start Immediately / Make Next / Wait up to.Reserves the "next" slot immediately like Make Next — so on a busy or
segue-chained clock, a hard-timed element (news, a legally-timed ID)
joins the current segue chain instead of the log falling through to
whatever else happens to be scheduled next. But it still enforces a
bounded timeout like Wait up to, so an overrunning predecessor can't
push it past its deadline either.Encoded as
GRACE_TIME <= -2(timeout_ms = -GRACE_TIME - 2) — no
database schema change, existing0/-1/>0values unaffected.Fixed
- A side effect in
RDLogPlay::transTimerData():makeNext()calls
SetTransTimer()internally, which can silently reassign the
play_trans_linemember to the next upcoming hard-time line. The
new branch now uses the function's own pre-captured local
(trans_line) consistently instead, matching the defensive pattern
already used elsewhere in the function. Symptom before the fix: the
wrong log line could get force-started after the grace timeout. - Two independent display bugs that made a correctly-saved value look
wrong:EventWidget::load()(rdlogmanager) always showed "Start
Immediately" on reopen regardless of what was actually saved;
RDEventLine::propertiesText()rendered the new negative
GRACE_TIMErange as a bogus wrapped-around time (e.g. "57:59" for
a 2:00 timeout) in the RDLogManager event list.
Notes
- Includes
lindon:-taggedLOG_DEBUGdiagnostics around the new
grace-timer branch, for diagnosing scheduling edge cases. - GitHub renames "~" to "." in uploaded asset filenames — use
lindon_6.0.0.rc1-1_amd64.debin install commands, not the real
Debian version string above.
EOF
Ausgabe
lindon 6.0.0~rc1-1
First release under the new package name. If you're upgrading an
existingrivolutioninstall, read the "Renamed" section below before
installing — the short version is: useapt install, not
lindon-install.sh, and back up your database first regardless.Renamed: rivolution → lindon
The package itself is now
lindon(wasrivolution). Internal paths
went the other way —/usr/share/rivolution/, our own systemd units
— reverted to plainrivendellnaming. Also dropped the+lindonN
version suffix entirely; it's redundant now that the package name
itself sayslindon, and it was quietly breaking our own build
script's revision auto-bump. Versioning going forward is a plain
Debian revision count (6.0.0~rc1-1,-2, …) against the upstream
Rivolution version.Upgrading from
rivolution:mysqldump --all-databases > backup.sql # do this regardless sudo apt install lindon_*.deb lindon-*.debConflicts:/Replaces:handles removing the oldrivolution-*
packages in the same transaction — reviewapt's summary before
confirming.Two things worth knowing after an upgrade, neither of them
automatic:- If you have existing PyPAD instances, check their script path —
PYPAD_INSTANCES.SCRIPT_PATHis a string frozen in the database at
creation time and won't follow the rename on its own. New instances
created after upgrading pick up the correct path automatically. rivolution.confunder/etc/systemd/system/rivendell.service.d/
isn't a dpkg-tracked conffile, so it's left sitting there alongside
the newrivendell.confrather than being removed. Harmless as
long as the two don't diverge, but worth cleaning up by hand:
rm /etc/systemd/system/rivendell.service.d/rivolution.conf.
Also fixed:
postinst's fresh-install-vs-upgrade check relied only on
dpkg's$OLD_VERSION, which dpkg leaves empty for aReplaces:-
triggered rename even with a fully working install already in place —
the very firstrivolution→lindoninstall would otherwise have hit
the fresh-install branch and dropped the production database. Now
also checks for a pre-existing/etc/rivendell.d/rd-default.conf
before deciding.New: "Make Next & Wait max"
A fourth option in "Action If Previous Event Still Playing" (rdairplay
Edit Event, rdlogedit, and rdlogmanager's clock/event editor), alongside
Start Immediately / Make Next / Wait up to.Reserves the "next" slot immediately like Make Next — so on a busy or
segue-chained clock, a hard-timed element (news, a legally-timed ID)
joins the current segue chain instead of the log falling through to
whatever else happens to be scheduled next. But it still enforces a
bounded timeout like Wait up to, so an overrunning predecessor can't
push it past its deadline either.Encoded as
GRACE_TIME <= -2(timeout_ms = -GRACE_TIME - 2) — no
database schema change, existing0/-1/>0values unaffected.Fixed
- A side effect in
RDLogPlay::transTimerData():makeNext()calls
SetTransTimer()internally, which can silently reassign the
play_trans_linemember to the next upcoming hard-time line. The
new branch now uses the function's own pre-captured local
(trans_line) consistently instead, matching the defensive pattern
already used elsewhere in the function. Symptom before the fix: the
wrong log line could get force-started after the grace timeout. - Two independent display bugs that made a correctly-saved value look
wrong:EventWidget::load()(rdlogmanager) always showed "Start
Immediately" on reopen regardless of what was actually saved;
RDEventLine::propertiesText()rendered the new negative
GRACE_TIMErange as a bogus wrapped-around time (e.g. "57:59" for
a 2:00 timeout) in the RDLogManager event list.
Notes
- Includes
lindon:-taggedLOG_DEBUGdiagnostics around the new
grace-timer branch, for diagnosing scheduling edge cases. - GitHub renames "~" to "." in uploaded asset filenames — use
lindon_6.0.0.rc1-1_amd64.debin install commands, not the real
Debian version string above.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- If you have existing PyPAD instances, check their script path —
-
lindon 6.0.0~rc1-6+lindon5 Stable
released this
2026-09-08 08:06:22 +02:00 | 22 commits to main since this releaserivolution (6.0.0~rc1-6+lindon5) unstable; urgency=medium
- New: fourth "Action If Previous Event Still Playing" mode across
rdairplay, rdlogedit and rdlogmanager: "Make Next & Wait max".
Combines immediate makeNext() (like "Make Next") with a bounded
safety timeout (like "Wait up to"), avoiding both the too-short
interstitial problem of plain "Wait up to" on segue-chained clocks
and the unbounded wait of plain "Make Next". - Encoding: GRACE_TIME <= -2 now means "Make Next & Wait max",
timeout_ms = -GRACE_TIME - 2. No database schema change. - Fixed a latent side-effect bug in RDLogPlay::transTimerData():
makeNext() internally calls SetTransTimer(), which can silently
overwrite the play_trans_line member. The new branch now uses the
pre-captured local trans_line consistently, matching the existing
defensive pattern already used elsewhere in the function. - Fixed grace-time display bugs: EventWidget::load() (rdlogmanager)
lost the assignment from event_event->graceTime() during a
refactor, always showing "Start Immediately" regardless of the
saved value; RDEventLine::propertiesText() (lib/rdevent_line.cpp)
didn't know about the new GRACE_TIME <= -2 encoding and rendered
it as a bogus wrapped-around QTime (e.g. "57:59" for a 2:00
timeout) in the RDLogManager event list. - Added lindon: debug logging (LOG_DEBUG) around the new grace-timer
branch for diagnosing scheduling edge cases.
-- RudiOnTheAir newsletter@schwoon.info Mon, 08 Sep 2026 08:00:00 +0200
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- New: fourth "Action If Previous Event Still Playing" mode across
-
lindon 6.0.0~rc1-6+lindon4
StableSome checks are pendingBuild x64 .deb packages / build ( Built on Ubuntu 24.04 as a temporary accommodation for cloud providers that don't yet offer 26.04 images. Ubuntu 26.04 remains the primary supported target -- use the build above unless your host genuinely can't offer it yet., ## x64 build (Ub… (push) Waiting to runreleased this
2026-09-04 20:43:08 +02:00 | 24 commits to main since this releaselindon 6.0.0~rc1-6+lindon4
A private, trimmed fork of Rivolution — see README.md
for the full rationale.Changes from upstream Rivolution
-
rivapi(web dashboard) removed entirely — not built, no
associated systemd/sudoers hooks. -
PipeWire switched to user-scope —
rivendell.servicenow binds
to the operator's own session instead of a separate system-scope
instance. -
icecast2,stereo-tool.service, andtailscaleddropped from
the packaged stack — none of the three are installed or managed by
this build. -
Segue back-timing (upstream spec 0002) fully reverted, including
its follow-on "second bug" fix. Upstream's own spec explicitly
reasoned that voice tracking wouldn't interact with this feature —
that reasoning turned out to be wrong on two separate counts:- Voice-tracked transitions save
SEGUE_GAIN=0as their normal,
incidental value (full volume, no duck) — the same field the
back-timing feature gates on — so every voice-tracked segue
triggered it regardless of operator intent, playing out to the
element's natural end with no audible transition instead of
blending. - The follow-on fix for a related regression (
Finished()/
FinishEvent()skipping the next element's start whenever
anything else was still running, on the assumption it would be
re-triggered later) turned out to silently stall the log
whenever the next line was a marker or an empty voice-track slot
with no audio of its own to generate that re-trigger — the log
would just sit there indefinitely, indistinguishable from a
Stop.
Both reverted; confirmed via diff that the affected functions are
now byte-identical to vanilla Rivendell 4.5.0. Reported upstream
weeks ago, unresolved as of this release. - Voice-tracked transitions save
-
libmad0/libtwolame0added as explicit dependencies — both
aredlopen()'d at runtime, so their absence wasn't visible via
lddand previously broke MP3/MPEG import silently. -
lindon-install.shadded — a setup script for the operator
account, desktop autologin, PipeWire sample rate, and
standalone/server/client NFS + database configuration.
Installation
Download the
.debfiles below pluslindon-install.sh, put them in
the same directory, then:sudo ./lindon-install.shDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
-
v6.0.0-rc1-5
StableSome checks are pendingBuild x64 .deb packages / build ( Built on Ubuntu 24.04 as a temporary accommodation for cloud providers that don't yet offer 26.04 images. Ubuntu 26.04 remains the primary supported target -- use the build above unless your host genuinely can't offer it yet., ## x64 build (Ub… (push) Waiting to runBuild x64 .deb packages / build (, ## x64 build, ubuntu-26.04, ) (push) Waiting to runreleased this
2026-07-22 03:16:23 +02:00 | 78 commits to main since this releaseFix: dead air after "Make Next & Wait max"
If a song segued into a "Make Next & Wait max" event with a very short
segue (under about a second), the event could be started twice. Both
instances stopped immediately and nothing played until the next
hard-time event. The grace timer is now cancelled as soon as the event
has actually started.Affects all hard-time events using "Make Next & Wait max"
(GRACE_TIME <= -2). Upgrade recommended.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)