Caldera Amp v1.0.46
New
- Linux: Settings has a new Streaming section — cap the streaming quality (the bitrate above which remote playback transcodes to Opus), set the target transcode bitrate, and toggle downmixing to stereo. Brings Linux to parity with macOS and Windows.
- Linux: Settings › Visualizer now has Shuffle Presets and Preset Transitions toggles — turn shuffle off to step through presets in order, or transitions off for instant cuts instead of crossfades.
- Linux: Settings › Audio adds an FFmpeg option to Resampler Quality.
- Linux: Settings › Debug has a Send Debug Logs button that emails the app’s logs to the developer.
- macOS: Settings has a new Streaming section: cap the streaming quality (the bitrate above which remote playback transcodes to Opus to save bandwidth), set the target transcode bitrate, and toggle downmixing to stereo. Music on a local (LAN) server always plays at original quality.
- macOS: Settings › Visualizer now has Shuffle Presets and Preset Transitions toggles — turn shuffle off to step through presets in order, or turn transitions off for instant cuts instead of crossfades between presets.
- Settings has a “Receive beta updates” toggle (macOS and Windows). Turn it on to get pre-release builds early; turn it off to return to stable releases. A beta box always offers the newest build across both channels, so it drops back to a stable release whenever that is newest.
- Windows: the visualizer can now be remote-controlled over HTTP via the Plex Companion server (
/player/visualizer/*) — advance to the next/previous/random preset, jump to a specific preset, and read the current preset and full preset list. Brings Windows to parity with macOS, iOS, and Android. - A now-playing overlay over the visualizer: album art, title/artist/album, and a SoundCloud-style seekprint that fade in on track change. The layout re-flows for the window’s size and aspect (wide/TV, tall, square, tiny), there’s a compact corner-chip mode (press
c), and a show/hide toggle (presso). Works for both local playback and audio received over the mesh. Now available on Windows too (previously macOS/Linux only).
Changed
- Visualizer presets built from custom shapes or waves now use noticeably less CPU, most apparent on the busiest presets.
Fixed
- Linux: many visualizer presets no longer render black — the composite shader failed to link on the OpenGL backend.
- The now-playing waveform (seekprint) now appears for audio received from another Caldera speaker over the mesh, instead of showing a plain bar. It’s fetched from the track’s own Plex server (with a fallback to the sending speaker for streaming-service tracks).
- Fixed a data race that could crash the app while multi-room networking is active, when broadcasting playback state to the other players.
- The volume shown by a Plex remote and by a multi-room (Snapjack) speaker controller now stay in sync. Changing it from one — for example while playing a stream received from another Caldera speaker — no longer left the other reporting a stale, different level.
- The now-playing seekprint waveform now loads reliably; its fetch was being skipped when the play queue was started from a Plex remote, so the waveform never appeared.
- Windows: starting playback from a Plex remote is now reliable — it could previously come up silent (the audio backend failed to initialize on that thread) or never start at all (the request stalled behind other network work). Audio and the visualizer now start as expected.
- Windows: the visualizer preset-name pop-up is no longer tiny and stuck to the left on scaled/HiDPI displays — it now scales with the display and sits centered at the bottom of the window.
- Starting multi-room networking no longer intermittently crashes when its mesh services race the player’s network event loop during startup.
- Windows: with Exclusive Mode on, high-resolution audio (e.g. 24/96) now plays at the source rate again instead of getting stuck resampling to 48 kHz. If the exclusive device open failed once — e.g. the device was still held briefly after an abrupt restart — the app gave up on exclusive mode for the whole session and fell back to shared mode (which is locked to the system rate); it now retries exclusive on the next track/rate change. The reason an exclusive open fails is now written to the log.
- The visualizer no longer flashes pink/magenta for a frame when the window first opens — it now starts on black.
- Visualizer preset transitions no longer show briefly mis-composited garbage during the crossfade; the outgoing and incoming presets now blend cleanly.
- Windows: playback now recovers on its own when the audio device disappears and comes back — an HDMI display going to sleep, USB power management, or unplugging and replugging a USB DAC. Previously the app was left silent and required a full restart; it now rebuilds the audio output when the device returns and resumes from where it stopped.
- After the device moves between networks (e.g. LAN↔WAN, or onto a different Wi-Fi) while off, playback now reconnects to your Plex server on its own instead of failing to start until you sign out and back in.
- Windows: the log file now captures the full startup sequence — app version, output device, and config/cache paths — instead of starting partway through. The logger opened its file too late, so the early startup lines were dropped on this windowed (no-console) app.
- Windows: WASAPI exclusive mode on a 24-bit device is no longer drastically quiet. Output is a full-scale signal again; previously the 24-bit samples were placed in the wrong bits of the device’s 32-bit word, making playback roughly 48 dB too quiet.
- Windows: Caldera Amp now has its own icon in the taskbar, Start menu, shortcuts, and the system tray, instead of showing the generic default program icon everywhere except the installer.
- The now-playing overlay shows the track’s own artist on compilations, features, and DJ mixes, instead of always showing the album artist.
- The visualizer now looks much closer to the original MilkDrop across a large number of presets. Presets with sprites, glassy blends, feedback trails, custom waves, and fine line details now render with the intended shape, brightness, and motion instead of looking smeared, too thin, or missing effects.
- The visualizer now reacts more consistently to real music, including stereo and high-sample-rate tracks. Preset changes no longer get an exaggerated first-frame audio spike, and treble/bass motion stays tied to the audible music instead of drifting into empty ultrasonic ranges.
- Linux: a range of visualizer presets that rendered incorrectly on the Linux backend — soft or low-resolution, collapsed into a flat smear or to black, washed out to white, the wrong hue, or mis-tiled — now render correctly, matching macOS. Several shader-translation bugs specific to the Linux/Vulkan path are fixed.
- Windows: the visualizer (and its now-playing overlay) now render at full resolution on HiDPI displays. The app was DPI-unaware, so on a scaled display (e.g. 200%) the visualizer window was drawn at half resolution and stretched up by Windows — soft and blocky, the overlay text and album art especially. The app is now per-monitor-DPI-aware, so the window renders natively (sharp), at the correct size, and re-adapts when moved between monitors of different scale. The Settings window likewise opens at its intended size on HiDPI displays instead of half-size.
- macOS: “Match Source” sample rate now actually switches the output device’s rate to match each track, instead of leaving the device at its previous rate and resampling underneath. Changing the device rate no longer requires Exclusive Mode.
- A device receiving audio from another Caldera node now resumes that stream on its own after a restart, instead of going silent until you re-select it in the controller.
- Windows: Caldera Amp now exits cleanly when installing an update, instead of getting stuck so you had to end it from Task Manager. The updater’s shutdown step could deadlock — WinSparkle waited for the app to exit so it could launch the installer, while the app waited for WinSparkle to finish cleaning up — so the process never terminated and the update couldn’t proceed. Updater cleanup no longer blocks shutdown.
- Two players on the same machine (e.g. Caldera Amp alongside Plexamp) no longer flicker between each other’s names in a remote’s speaker list.
- Casting to Caldera Amp while paused part-way through a track, then pressing play, now resumes from that spot instead of restarting the track from the beginning.
- Switching the audio channel mode back to “Source” now takes effect immediately; it previously stayed on the fixed layout you had selected (e.g. 5.1) until you first switched to another layout.
- An unavailable track no longer freezes playback (spinning and hammering the server); it is now skipped and the rest of the queue plays through.
- Stopping playback while a track is still opening on a slow or hung connection no longer crashes the app.
- A track in a format Caldera Amp can’t decode itself now plays — Plex transcodes it on the fly — instead of failing to start.
- MP3 tracks now play on networks that can’t resolve plex.direct hostnames (they previously failed to start).
- In multi-room, a speaker on a machine with more than one network interface no longer drops out or gets probed over and over, and a speaker that changes IP address (e.g. after a DHCP renewal) is now followed to its new address. A peer’s known addresses accumulate instead of replacing each other.
- The log file no longer grows without bound over long-running sessions. It previously rotated only at launch, so an always-on menu-bar session could balloon a single log to several gigabytes; it now also rotates once the log passes 5 MB (keeping the last five).
- Stopping and then replaying while sending audio to another speaker could occasionally start silent while showing as “playing”, needing a pause and resume to recover; it now plays reliably on the replay.
- When nothing is playing, a pause command from a remote no longer makes the app report itself as “paused” with no track; it now correctly shows as stopped.
- Fixed playback sometimes resuming far ahead of where you left off after the app was restarted.