Caldera Music Release Notes

I’ll track releases in here.

Caldera Music Headless v1.0.44

Fixed

  • The systemd service now works for any user, not just pi, installing on a Pi with a different username no longer fails to start. The unit file uses the running user’s home directory instead of a hardcoded path.
  • A “play” command from a remote (e.g. Plexamp) is no longer created on a different Plex server than the one it asked for. If the requested server can’t be reached, the daemon now refuses instead of falling back to whichever server was selected.
  • Signing into a different Plex account no longer leaves the daemon unable to play (the server rejecting requests with HTTP 401); it now re-fetches the device list and tokens for the new account.
  • A pinned output device set in config is now honored, it no longer reverts to the system default when the set of audio devices changes (e.g. a USB DAC is plugged or unplugged).

Changed

  • --list-devices and setup now explain why a device that appears in aplay -L is missing — it reports per-device reasons (e.g. “Device or resource busy”, “Permission denied”) instead of silently dropping it, and hints to check for another player holding the device or audio-group membership.

Caldera Amp v1.0.44

Fixed

  • On Windows, turning on Exclusive Mode (Settings → Audio) no longer crashes Caldera Amp. Applying exclusive WASAPI output overran an internal list of candidate output formats and smashed the stack, so the app died the instant exclusive mode took effect; the list is now sized correctly.
  • The output device picker now reflects and remembers your choice. It previously always showed the first device in the list — never the actual default, never the device you picked last session — and a manually selected device was forgotten on restart (playback fell back to the system default). The picker now has an explicit “Automatic (system default)” option, shows the currently active device on open, and a pinned device is reopened on the next launch. A saved device that’s since been unplugged now falls back to the system default instead of leaving the app with no audio.
  • The Linux Flatpak now opens the visualizer window (and its drop-down menu) out of the box. The bundle never requested session-bus access, which GTK needs to export the app/window menus, so the visualizer menu and window did nothing until you granted “session bus” manually in Flatseal. The bundle now ships with that access built in.
  • Switching Plex accounts no longer leaves Caldera Amp unable to play, with the server rejecting requests (HTTP 401). After signing out and into a different account, the app kept using the previous account’s saved per-server tokens; it now discards them and re-fetches the server list for the new account.
  • A “play” command from a remote (e.g. Plexamp) is no longer created on — nor your token sent to — a different Plex server than the one it asked for. If the requested server can’t be reached, Caldera Amp now refuses instead of falling back to whichever server was selected.
  • On Linux, the visualizer window can be reopened from the tray after you close it — previously, closing it once meant it would not come back.
  • On Linux, signing out now returns to the sign-in screen instead of quitting the app.
  • On Linux, album art now shows in the desktop’s media controls and notifications (GNOME’s clock/lock-screen widget, KDE’s media applet, etc.). The MPRIS art was published as a bare Plex path no notification daemon could load; the cover is now downloaded, cached locally, and exposed as a file:// image.
  • Album art now loads on networks with DNS-rebinding protection (some routers, Pi-hole, NextDNS), where it previously stayed blank even though music and the rest of the library loaded fine.
  • On Windows, playback no longer stays silent and stuck at 0:00 on audio devices with a multichannel shared-mode format (e.g. RME interfaces, HDMI 5.1/7.1); music now starts normally (stereo plays on the front L/R channels).
  • The disk cache size limit (Settings → Storage) is now actually enforced. It was largely ignored before — the cache could grow to many times the configured size — because the entire upcoming-queue window (up to 30 tracks) was pinned against eviction and trimming ran only about once an hour. Now only the current and next track are pinned, and the cache is trimmed promptly back under the limit.
  • With repeat-all on, pressing Previous on the first track (which wraps to the last track) no longer stops playback — the wrapped-to track now plays as expected, even while it’s still buffering.
  • On Linux, a transient USB-audio glitch no longer leaves Caldera Amp silently “playing” with the position barely advancing. The audio device is now reset after an I/O error (recovering once it’s back), and the position freezes during the dropout instead of creeping forward with no sound.
  • On Linux, the visualizer now scales its resolution and frame rate to the GPU and renders flicker-free, instead of tearing or stuttering on lower-end graphics.
  • macOS: The visualizer window no longer flashes purple/pink the first time it opens — it now stays black until the first frame is drawn.

Changed

  • macOS: Caldera Amp now ships as a universal binary — it runs natively on both Apple Silicon and Intel Macs (previously Apple Silicon only).
  • The Linux Flatpak now builds against the GNOME 50 runtime (was 47), so it shares the newer freedesktop 25.08 GL/Mesa and Intel VAAPI drivers instead of pulling in a second, outdated copy. Users already on current GNOME apps no longer download a duplicate ~1.5 GB of runtime and graphics stacks.

Caldera Music Headless v1.0.45

Fixed

  • The last track of an album no longer repeats forever; playback now stops when it ends.
  • On launch, a paused restored session no longer shows as “playing” to Plex and remotes; it stays paused until you press play.
  • Skipping into a track while it was crossfading in could leave playback silent for a minute or two (with the position still ticking) before sound returned. The skipped-to track now starts immediately.
  • Periodic crackling on devices with a large hardware buffer is gone, and high-sample-rate tracks (176.4 / 192 kHz) glitch less. The mixer now sizes its safety buffer to the device and sample rate instead of repeatedly blanking the output to refill.
  • Remote control and multi-room no longer become unreachable after other players on the network restart. A burst of reconnecting mesh peers could deadlock the control server until the daemon was restarted.

Caldera Amp v1.0.45

New

  • macOS: Exclusive Mode (Settings → Audio): take exclusive ownership of the output device (Core Audio hog mode) so the app’s requested buffer size and sample rate hold without other apps renegotiating the shared device. The device is yielded again when playback is idle and re-claimed on resume.

Fixed

  • macOS: output latency is now measured and reported accurately, sized from the device’s true callback instead of the AudioUnit’s render-slice size.
  • The visualizer no longer gradually loses its audio reactivity after a pause, dropout, or silent gap, and now reacts correctly at high output sample rates (treble bands no longer fall into empty ultrasonic bins).
  • On launch, a restored session no longer briefly plays audio; it now stays paused until you press play.
  • On launch, a restored-but-paused session no longer reports itself as “playing” to Plex and remote controllers; they now show it paused until you press play.
  • Skipping to the next track while it was crossfading in could leave playback silent for up to a couple of minutes (with the position still advancing as if it were playing) before sound returned. The skipped-to track now starts immediately.
  • The last track of an album no longer repeats forever: when the final track drains, playback now stops instead of replaying it indefinitely.
  • macOS: periodic audio crackling/stuttering on output devices with a large hardware buffer (e.g. some “System Default” routes at 96 kHz) no longer occurs. The mixer’s safety buffer now scales to the device’s actual callback size instead of a fixed duration, and a brief dip no longer blanks output to re-prime.
  • Remote control and multi-room no longer become unreachable after other players on the network restart. A burst of mesh peers reconnecting could deadlock the control server until the app was relaunched; reconnect handling no longer blocks on itself.
  • On Linux, the visualizer’s Preset Advance setting (Settings → Visualizer) now works and is remembered. It was stuck on “Timed” no matter what you picked: Per Track and Manual had no effect, and the choice was never written to the preferences file. The setting now applies immediately, persists across restarts, and is honored when the visualizer first opens.
  • On Linux, the Settings window can be reopened after you close it. Closing it once destroyed the window but left the tray menu item pointing at the dead window, so selecting Settings again did nothing; it now hides on close and reopens correctly.

Caldera Music tvOS v1.0.4

New

  • Settings → Now Playing controls what stays on screen when the player goes idle in album-art mode: a toggle each for the signal chain, track titles, and seekprint waveform. Defaults match the previous behaviour.

Fixed

  • MP3 tracks now play on networks/devices that can’t resolve plex.direct hostnames (they previously failed to start).
  • Multi-room and network audio no longer slip into a stuck, glitchy state after roughly 13.5 hours of continuous playback.
  • Audio streamed to this Apple TV from another Caldera node no longer stays silent while it is itself casting to other speakers — it now plays the incoming audio on its own output while continuing to stream to the others.
  • The visualizer no longer stutters or goes flat while playing audio received from another Caldera node.
  • Customizing your home screen (reorder, hide) now sticks across month/year rotations of hubs like “On This Day” and “Most Played in June”, and survives transient empty hub responses that previously wiped your changes.
  • Settings → Home Screen no longer pushes the top tab bar offscreen as you scroll, leaving it stranded out of reach when you back out. The list now scrolls under the tab bar like the rest of Settings.
  • Settings → Home Screen now shows generic labels for hubs whose title rotates over time — e.g. “Most Played in … (month)” rather than “Most Played in June”. The home screen itself is unchanged; this is only in the reorder UI so you’re not chasing a moving target.
  • Skipping to the next track while it was crossfading in could leave playback silent for a couple of minutes with the position still ticking. The skipped-to track now starts immediately.
  • Remote control and multi-room no longer become unreachable after other players on the network restart — a burst of mesh peers reconnecting could deadlock the control server until the app was relaunched.
  • The visualizer no longer gradually loses its audio reactivity after a pause or silent gap, and now reacts correctly at high output sample rates (treble bands no longer fall into empty ultrasonic bins).
  • On launch, a restored-but-paused session no longer reports itself as “playing” to Plex and remote controllers — they now show it paused until you press play.
  • The Play Queue carousel now opens centered on the currently-playing track instead of landing on the last (or near-last) track for any queue shorter than ~31 items.
  • Album art now loads on networks with DNS-rebinding protection (some routers, Pi-hole, NextDNS), where it previously stayed blank even though music loaded fine.
  • Settings → Music Library no longer traps you on a single-library account — the selected row stays focusable so pressing Menu backs you out instead of leaving you stuck.
  • The sort menu on the Library tab’s Playlists view now actually takes effect — the picker was being ignored all the way down to the Plex API call.
  • Switching Plex accounts no longer leaves Caldera Music unable to play (HTTP 401) — saved per-server tokens from the previous account are now discarded on sign-out.
  • A “play” command from a Plex remote (e.g. Plexamp) is no longer created on a different Plex server than the one it asked for. If the requested server can’t be reached, Caldera Music now refuses instead of falling back to whichever server was selected.
  • The disk cache size limit (Settings → Storage) is now actually enforced. It was largely ignored before — the cache could grow to many times the configured size — because the upcoming-queue window was pinned against eviction and trimming ran only about once an hour.
  • With repeat-all on, pressing Previous on the first track (which wraps to the last) no longer stops playback — the wrapped-to track now plays as expected, even while still buffering.