C

Clementine Music Player

C
Clementine Music Player Creative v1.4.4-12

1.4.4-12.dev-gb266e78c2

Stop AirPlay audio at once on pause, and resume from what was heard On pause, an AirPlay receiver played out the audio it had queued, about 1.5 s of the stream's latency and a little of its own, so a Mac kept playing for a couple of seconds after its Now Playing showed it paused. An iPhone flushes the receiver when it pauses. Now pausing flushes the receiver, so it stops at once, and takes the pip…

C
Clementine Music Player Creative v1.4.4-10

1.4.4-10.dev-g4bc075616

Resend missed AirPlay 2 packets on the audio channel A Mac asks for about 35 packets again at the start of a session. They went back as RAOP's retransmit, wrapped on the control channel, and the Mac couldn't decrypt one of them (kAuthenticationErr in its log), so each was lost and the start of a song glitched. Sent again as they were, on the audio channel, as OwnTone sends them to AirPlay 2 receiv…

C
Clementine Music Player Creative v1.4.4-9

1.4.4-9.dev-gb3a9df171

Send AirPlay 2 receivers what's playing as Apple's senders do A Mac showed the title, artist and album that SET_PARAMETER sends, but kept the first song's cover for the whole session and showed the stream as paused, so its clock didn't run (src/airplay/TESTING.md). Apple's AirPlay 2 senders say what's playing another way: MediaRemote's now-playing info in POST /command, an "updateMRNowPlayingInfo"…

C
Clementine Music Player Creative v1.4.4-6

1.4.4-6.dev-gaaa726c21

"Search for artist" and "Search for album" in the playlist's menu show their results in the Search tab again. Audio CDs are named from MusicBrainz reliably, including their track titles.

C
Clementine Music Player Creative v1.4.4-4

1.4.4-4.dev-gc6e51977a

Bump pyasn1 from 0.6.4 to 0.6.5 in /tools/mac-update Bumps [pyasn1](https://github.com/pyasn1/pyasn1) from 0.6.4 to 0.6.5. - [Release notes](https://github.com/pyasn1/pyasn1/releases) - [Changelog](https://github.com/pyasn1/pyasn1/blob/main/CHANGES.rst) - [Commits](pyasn1/pyasn1@v0.6.4...v0.6.5) --- updated-dependencies: - dependency-name: pyasn1 dependency-version: 0.6.5 dependency-type: indirect…

C
Clementine Music Player Creative v1.4.4-3

1.4.4-3.dev-gc4063045a

Run the release notes tests with uv, as the tools' are dist/pyproject.toml makes release_notes.py and its tests a uv project, with pytest, ruff and ty pinned as in tools/, and the same ruff and ty settings, applied to those two files only. The tests move to pytest, and a "Python (release notes)" job runs the checks and tests from dist, as the tools' jobs do from theirs, in place of the step in Lin…

C
Clementine Music Player Creative v1.4.4

1.4.4

Clementine no longer crashes when playing on a Chromecast that isn't on a network the network remote listens on. Linux software centres now show what's new in each release. The menu for choosing where to play shows whether each device is a speaker, a TV or a speaker group. Fixed a crash when double-clicking a track to play it. The Mac and Windows versions print their log when run from a terminal,…

C
Clementine Music Player Creative v1.4.3-66

1.4.3-66.dev-g50ac1f637

Play with AirPlay 1 to AirPlay 2 receivers that refuse NTP timing shairport-sync's AirPlay 2 builds only take an AirPlay 2 session with PTP timing. They answer the session's SETUP, which asks for NTP, with 501 ("ntp stream handling is not implemented"), so nothing played to them. They also advertise _raop._tcp, whose AirPlay 1 plays fine. So the renderer registry now gives an AirPlay 2 receiver's…

C
Clementine Music Player Creative v1.4.3-64

1.4.3-64.dev-g9ca549cd4

Show what's playing on AirPlay receivers behind --airplay The receiver now shows the song's title, artist and album, its cover and its progress, as iTunes and OwnTone send them, with AirPlay 1 and 2 alike: each is a SET_PARAMETER on the RTSP connection, with RTP-Info saying the timestamp it applies from. The title, artist and album go as a DMAP listing item, with a persistent id for each song, and…

C
Clementine Music Player Creative v1.4.3-63

1.4.3-63.dev-g70a824478

Play to AirPlay 1 receivers behind --airplay Receivers are now also looked for as _raop._tcp, which every AirPlay receiver advertises and AirPlay 1 ones only that. Its instance name is the receiver's MAC address and name, which is matched with _airplay._tcp's device id, so an AirPlay 2 receiver is still offered once, and played to with AirPlay 2. AirPlay 1 is RAOP: ANNOUNCE with an SDP of ALAC, SE…

C
Clementine Music Player Creative v1.4.3-62

1.4.3-62.dev-g719147cc7

Ask for AirPlay passwords and PINs, and pair with long-term keys A receiver that wants a password says so in GET /info (status flag 0x200), or refuses pairing with an authentication error, which a Mac also does without the flag. Clementine then asks for the password, keeps it for that receiver, and pairs with it as transient pairing's PIN; a wrong one is asked for again. Receivers that show a PIN…

C
Clementine Music Player Creative v1.4.3-61

1.4.3-61.dev-gaa7f39f88

Play to AirPlay 2 receivers behind --airplay Choosing an AirPlay receiver as the output now plays on it, rather than saying it can't yet. AirPlayEngine is now a GstEngine whose pipelines end in a new GStreamer sink, clementineairplaysink, so the equalizer, ReplayGain and gapless playback work as they do locally. GstEngine gains SetOutput() for an engine that always plays through one sink, whatever…

C
Clementine Music Player Creative v1.4.3-60

1.4.3-60.dev-ga3ae95c3f

Find AirPlay receivers and pair with them behind --airplay With the undocumented --airplay flag, AirPlay receivers found on the network become outputs, alongside Cast devices and UPnP renderers. Choosing one connects to it, pairs and sets up a session, then says Clementine can't play on AirPlay receivers yet, and falls back to this computer: playing comes next. AirPlayDiscovery browses for _airpla…

C
Clementine Music Player Creative v1.4.3-58

1.4.3-58.dev-g6a694bc76

Use C++20 where it makes the code simpler - NewClosure picks between its overloads with requires clauses rather than enable_if_t default template arguments. - C++20 derives != from ==, so the hand-written operator!= are gone, and the operator== that compared every member are defaulted. - std::numbers::pi replaces the POSIX M_PI macro. - qScopeGuard replaces BOOST_SCOPE_EXIT. Co-Authored-By: Claude…

C
Clementine Music Player Creative v1.4.3-52

1.4.3-52.dev-g0e0ec49ea

Build with C++20 Every compiler CI builds with supports C++20's core language and library features such as concepts and std::bit_cast: the oldest is GCC 11.4 on Ubuntu Jammy, then GCC 12.2 on Debian Bookworm, with Apple Clang 17 on macOS and MSYS2's clang64 on Windows. C++20 deprecates capturing `this` implicitly with `[=]`, which GCC warns about and -Werror turns into an error on Linux, so the 16…

C
Clementine Music Player Creative v1.4.3-50

1.4.3-50.dev-g6b4c5f602

Clementine can keep the computer awake during playback, while playing on another device, while a remote downloads or syncs songs, or whenever it's open, with an option for each under "Keep the computer awake".

C
Clementine Music Player Creative v1.4.3-46

1.4.3-46.dev-g98966fdee

Serve sync downloads and tell remotes they can sync With --media-sync, the network remote's HTTP server now serves the /d/ URLs in sync manifests: the original file, to the remote it was offered to, while it's connected. Each download has an ETag of the song's item key and version, so a remote resumes an interrupted download with Range and If-Range only when the file is still the same, and otherwi…