Caldera Music Release Notes

Caldera v1.2.0-beta.2

This beta is mostly about sound. The audio engine that every Caldera player shares gains a set of new tools, set from the apps or from Plexamp’s settings for the player:

  • A Limiter, on by default, that catches peaks without delaying the audio.
  • Room correction from a REW (or similar) filter and AutoEQ headphone profiles, uploaded straight from Plexamp’s settings. Correction adds no delay, so grouped rooms stay in step.
  • Headphone crossfeed, and dither for 16- and 24-bit DACs.

The latest beta of Plexamp can also now show visualizers for music playing on another Caldera player, in time with what that room hears.

A beta of every Caldera player:

  • Headless v1.2.0-beta.2
  • Amp v1.2.0-beta.2 (macOS, Windows, Linux)
  • Apple TV v1.2.1 (build 45), TestFlight
  • Google TV v1.2.0 (versionCode 21), Play beta

The Apple TV and Google TV builds reach testers once Apple and Google finish reviewing them.

New

  • A Limiter setting, on by default, keeps loud passages from clipping when EQ, crossfeed or room correction push them past full scale, without delaying the audio or touching anything quieter.
  • Loudness Leveling gains a Preamp setting (0 to +6 dB, +4 by default), as in Plexamp.
  • Room correction: a filter from a measurement tool such as REW, loaded from Caldera Amp’s settings or uploaded through Plexamp’s settings for the player (or caldera-music --set-file on a headless player), corrects that room’s speakers with no added delay, so grouped rooms stay in step.
  • AutoEQ headphone profiles: a ParametricEQ.txt imported in Caldera Amp’s settings or uploaded through Plexamp’s becomes an EQ preset and is applied, and saved presets can be chosen from an EQ Preset setting in every app.
  • A Headphone Crossfeed setting (Mild, Medium or Strong) blends a little of each channel into the other ear, so hard-panned stereo stops sounding like it is inside your head.
  • Music played through a 16- or 24-bit DAC is dithered, so quiet passages and fade-outs keep their detail instead of turning gritty; a Dither setting turns it off. (Headless, Amp)
  • The disk cache can be turned Off (cache.diskLimitBytes=off): music streams with nothing written to disk, and Sweet Fades shorten to fit what RAM holds. (Headless)
  • New cache.memoryBufferBytes setting limits how much RAM each playing track may use (default 20 MB). (Headless)
  • New log.toFile setting turns off the log files in the config directory, for players that already log to the system journal. (Headless)
  • Plexamp can show visualizers for music playing on another player, in time with what that room hears.
  • A Release Device When Group Paused setting lets rooms in a group keep the audio device while the group is paused. (Headless, Amp)

Fixed

  • Loudness leveling now matches Plexamp: tracks Plex has analysed play at the same level as in Plexamp instead of about 4 dB quieter, and quiet recordings are no longer turned up.
  • Music played through a 16-bit DAC no longer crackles when EQ pushes a loud passage past full scale, and untouched 16- and 24-bit music reaches a DAC of the same depth unchanged. (Headless, Amp)
  • A player on a computer that also runs Plexamp or another Plex app shows its own track and state to the group, instead of the other app’s.
  • Fixed a rare stall where music went silent partway through a track and stayed silent until skipped.
  • Fixed an occasional crash shortly after changing the audio output device.
  • With a small disk cache limit, a track too big to fit plays without being written to disk, instead of filling the disk past the limit.
  • The disk cache limit holds while music downloads, instead of only being enforced after each track finishes.
  • The disk cache limit takes any size from 32 MB up, such as 64MB or 256000000, instead of resetting sizes not in its list to 512 MB. It is now cache.diskLimitBytes; the old name still works. (Headless)
  • Fixed an occasional crash when the player shuts down. (Headless, Amp)
  • Playing or resuming after handing the audio device to another service takes it back, instead of showing as playing in silence. (Headless)
  • Restarting no longer grabs the audio device for a paused session; it waits until you press play. (Headless)
  • A play that waited on a busy audio device and was paused now asks your integration hook again next time, instead of timing out. (Headless)
  • Music a managed user plays from Plexamp now shows up in their own play history instead of the owner’s.
  • Playback no longer stops dead at a short track (about a minute or less) with the progress stuck at 0:00.
  • Every room in a paused group lets go of the audio device after the idle timeout, like a paused player on its own, so AirPlay or another service on the same device can play, and comes back in step when the group plays again. (Headless)
  • A group’s audio gets priority on Wi-Fi networks that support it, so a busy download on the same network is less likely to make a room stall or slip out of step.
  • Log times on a device without a clock battery, such as a Raspberry Pi, match the real time instead of lagging by however far the clock was off at startup. (Headless, Amp)
  • Plexamp’s settings for a headless player no longer list the device hooks and busy-device wait meant for platform integrators, and setting them on the device with caldera-music --set takes effect while it runs instead of being lost. (Headless)
  • Seeking in a long DSD track is instant, and seeking back no longer plays garbled sound until the next seek.
  • A room that loses its connection for a moment snaps back in step with the group, instead of drifting and echoing against it for up to half a minute.
  • Caldera Amp’s media cache stays within the size shown in Settings, instead of growing without limit until that setting was changed. (Amp)
  • Plexamp’s settings for this player show the values it is actually using, such as its sample rate, and a change made in either Plexamp or the app shows up in the other. (Amp, Apple TV, Google TV)
  • The Library’s Recently Added, and every other sort, picks up new music when you come back to it or to the app, instead of only after a force stop. (Apple TV, Google TV)