Skip to content

Releases: aaronsb/cdreader

v0.4.0-rc1 (pre-release)

Pre-release

Choose a tag to compare

@turbospark turbospark released this 29 Jul 04:09
0f38739

Pre-release. Everything here passes 202 unit tests on Python 3.9/3.11/3.13,
but none of it has been run against a real optical drive. The test suite is
deliberately offline and hardware-free, so it cannot tell you whether ripping
still works. Please shake this out before it becomes v0.4.0.

What's new

Multi-disc albums (#12) — every disc lands in one album directory with the disc
number prefixed onto the track number (2-01 - Nicotine.flac), and DISCNUMBER /
DISCTOTAL / DISCSUBTITLE are written to every file. This follows MusicBrainz
Picard's default naming and keeps a release as one album in Plex, Jellyfin and
Navidrome. Single-disc output is byte-for-byte unchanged.

Hand-editable metadata (#13) — every rip now writes metadata.toml beside the
FLACs, pre-filled with whatever was known:

cdripper apply <album-dir>   # re-tag, rename, and relocate from the file
cdripper toml  <album-dir>   # regenerate it from FLACs ripped before this existed

Applying re-tags, renames files whose titles changed, rewrites album_info.txt and
the playlist, and moves the directory when the artist or album changed — so an
unmatched disc goes from Unknown Artist/xK9fL2mQpR7-/01 - Track 01.flac to
The Weather Station/Live at Massey Hall/01 - Robber.flac in one command. Extra
fields for recordings MusicBrainz doesn't carry: performer, engineer,
recorded, venue, genre, notes. Nothing is uploaded anywhere.

Readable multi-drive logs (#11) — short dimmed timestamps, no redundant [srN]
inside a panel already titled srN, hanging indents on wrapped lines, and colour
for failures and completions. At two drives on a 122-column terminal that's 15
entries visible where 11 fit before.

Project tooling — make dev/test/lint/check/once/tag, 202 unit tests, and CI on
Python 3.9/3.11/3.13.

Please test

pipx install --force git+https://github.com/aaronsb/cdreader.git@v0.4.0-rc1
cdripper --version     # 0.4.0rc1
  • an ordinary single-disc album — output should be identical to v0.3.2
  • a multi-disc set — both discs in one folder, 1-NN / 2-NN, one playlist spanning both
  • a disc MusicBrainz doesn't know — edit its metadata.toml, run cdripper apply, check it renames and relocates
  • several drives at once — the log columns are the point of #11

Bare cdripper is unchanged; the new subcommands are optional.


What's Changed

  • fix: handle existing FLAC files when re-ripping an album by @aaronsb in #7
  • feat: inhibit system sleep while ripping by @aaronsb in #8
  • feat: per-drive log panels in TUI by @aaronsb in #9
  • fix: auto-detect drives by default, harden multi-drive resilience by @aaronsb in #10
  • chore: add Makefile, unit tests, and CI by @turbospark in #14
  • docs: add CLAUDE.md, CONTRIBUTING.md, and workflow skills by @turbospark in #15
  • fix: make per-drive log columns readable by @turbospark in #16
  • feat: handle multi-disc albums by @turbospark in #17
  • feat: hand-editable metadata sidecar with apply round trip by @turbospark in #18
  • chore: bump CI actions off deprecated Node 20 by @turbospark in #19

New Contributors

Full Changelog: v0.3.2...v0.4.0-rc1

v0.3.2 - TUI polish

Choose a tag to compare

@aaronsb aaronsb released this 23 Feb 07:43

Fixed

  • Progress bar now fills the full column width (12 chars instead of 10)
  • Album column uses full terminal width instead of truncating at 40 characters

Upgrade

pipx install git+https://github.com/aaronsb/cdreader.git --force

Or re-run the installer:

curl -fsSL https://raw.githubusercontent.com/aaronsb/cdreader/main/setup.sh | bash