{"id":42862505,"url":"https://github.com/webmatze/redbookmaster","last_synced_at":"2026-01-30T12:39:30.978Z","repository":{"id":329800656,"uuid":"1118565782","full_name":"webmatze/redbookmaster","owner":"webmatze","description":"A GUI and CLI tool for creating Red Book compatible CD masters with CUE sheet output and CD burning.","archived":false,"fork":false,"pushed_at":"2025-12-21T20:09:05.000Z","size":1203,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-23T07:54:41.708Z","etag":null,"topics":["master","redbook","tool"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webmatze.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-18T00:37:47.000Z","updated_at":"2025-12-21T20:09:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/webmatze/redbookmaster","commit_stats":null,"previous_names":["webmatze/redbookmaster"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/webmatze/redbookmaster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Fredbookmaster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Fredbookmaster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Fredbookmaster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Fredbookmaster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webmatze","download_url":"https://codeload.github.com/webmatze/redbookmaster/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webmatze%2Fredbookmaster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28912914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T12:13:43.263Z","status":"ssl_error","status_checked_at":"2026-01-30T12:13:22.389Z","response_time":66,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["master","redbook","tool"],"created_at":"2026-01-30T12:39:30.721Z","updated_at":"2026-01-30T12:39:30.973Z","avatar_url":"https://github.com/webmatze.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Red Book Master\n\nA professional tool for creating Red Book compatible CD masters with CUE sheet output. Available as both a **GUI application** and a **CLI tool**.\n\n![Red Book Master GUI](screenshots/redbookmaster_main_view.png)\n\n## Features\n\n- **Modern GUI application** - Native desktop app with dark theme, waveform display, and intuitive controls\n- **Interactive CLI wizard** - Guided step-by-step experience for creating CD masters\n- **Red Book compliant** - Enforces CD-DA specifications (16-bit, 44.1kHz stereo)\n- **Automatic format conversion** - Converts non-compliant WAV files (resampling, bit depth, channels)\n- **Waveform visualization** - Zoomable/scrollable waveform display with playhead\n- **Audio preview** - Play tracks with real-time position tracking\n- **Full metadata support** - CD-TEXT, ISRC codes, MCN/UPC catalog numbers\n- **CUE sheet export** - Industry-standard format for CD mastering\n- **TOC file export** - Compatible with cdrdao for disc-at-once burning\n- **CD burning** - Direct burning via cdrdao with progress display and CD-TEXT support\n- **Project files** - Save and load projects in .rbm format\n- **Drag \u0026 drop track reordering** - Easily arrange tracks in the GUI\n\n## GUI Application\n\nThe GUI provides a professional desktop experience for CD mastering:\n\n### Main Features\n\n- **Track List Panel** - View and manage tracks with number, title, duration, pregap, and postgap\n- **Waveform View** - Zoomable waveform display for the selected track with playhead\n- **Metadata Editor** - Edit track and album metadata in real-time\n- **Playback Controls** - Play, pause, stop, previous/next track, volume control\n- **Menu Bar** - Quick access to New, Open, Save, Export, and Burn CD\n\n### CD Burning Dialog\n\nThe burn dialog provides a complete burning experience:\n\n![Burn Options](screenshots/redbookmaster_cd_burn_options_view.png)\n\n- **Drive Selection** - Choose from detected CD/DVD drives\n- **Speed Selection** - Auto, 1x, 2x, 4x, 8x, 16x, 24x, 48x\n- **Options** - Eject disc, Enable CD-TEXT, Simulate only\n- **Real-time Progress** - Progress bar with MB written percentage\n\n![Burn Progress](screenshots/redbookmaster_cd_burn_progress_view.png)\n\n- **Live Log Output** - See cdrdao output in real-time\n- **Cancel Support** - Abort burning if needed (disc may be unusable)\n\n![Burn Error](screenshots/redbookmaster_cd_burn_error_view.png)\n\n- **Error Details** - Full log preserved for debugging when errors occur\n\n### Keyboard Shortcuts\n\n| Shortcut | Action |\n|----------|--------|\n| ⌘+N | New project |\n| ⌘+O | Open project |\n| ⌘+S | Save project |\n| ⌘+Shift+S | Save As |\n| Space | Play/Pause |\n| Escape | Stop playback |\n| ↑/↓ | Select previous/next track |\n| ←/→ | Previous/Next track |\n| Delete | Remove selected track |\n\n## Installation\n\n### Prerequisites\n\n- Rust 1.70 or later\n- Audio output device (for playback features)\n- cdrdao (optional, for CD burning)\n\n### Build from source\n\n```bash\ngit clone https://github.com/webmatze/redbookmaster.git\ncd redbookmaster\ncargo build --release\n```\n\nBinaries will be at:\n- `target/release/redbookmaster` - CLI application\n- `target/release/redbookmaster-gui` - GUI application\n\n### Install via Cargo\n\n```bash\n# Install both CLI and GUI\ncargo install --path crates/redbookmaster-cli\ncargo install --path crates/redbookmaster-gui\n```\n\n### Run the GUI\n\n```bash\n# From the repository\ncargo run -p redbookmaster-gui\n\n# Or after installation\nredbookmaster-gui\n```\n\n### Run the CLI\n\n```bash\n# From the repository\ncargo run -p redbookmaster\n\n# Or after installation\nredbookmaster\n```\n\n## Project Structure\n\nThe repository is organized as a Cargo workspace:\n\n```\nredbookmaster/\n├── crates/\n│   ├── redbookmaster-lib/    # Shared library (core, audio, export, burn)\n│   ├── redbookmaster-cli/    # CLI application\n│   └── redbookmaster-gui/    # GUI application (Slint)\n├── screenshots/              # Application screenshots\n└── README.md\n```\n\n## CLI Usage\n\n### Interactive Mode (Recommended)\n\nLaunch the interactive wizard:\n\n```bash\nredbookmaster\n```\n\nThis opens a guided menu where you can:\n- Create new projects\n- Add and manage tracks\n- Edit metadata (album, track, ISRC, MCN)\n- Configure track gaps\n- Preview audio playback\n- Export master files\n- Burn CDs\n\n### Command Line\n\n```bash\n# Create a new project\nredbookmaster new\n\n# Open an existing project\nredbookmaster open my-album.rbm\n\n# Add tracks to current project\nredbookmaster add track1.wav track2.wav\n\n# List tracks\nredbookmaster list\n\n# Edit track metadata\nredbookmaster edit 1\n\n# Reorder tracks\nredbookmaster reorder\n\n# Configure track gaps\nredbookmaster gaps\n\n# Play album preview\nredbookmaster play\n\n# Play specific track\nredbookmaster play 3\n\n# Play transition between tracks\nredbookmaster transition 2\n\n# Validate Red Book compliance\nredbookmaster validate\n\n# Export CUE/WAV master\nredbookmaster export\n\n# Burn to CD (requires cdrdao)\nredbookmaster burn\n\n# Show project info\nredbookmaster info\n```\n\n## Workflow Example\n\n### GUI Workflow\n\n1. Click **New** to create a project (choose location and name)\n2. Click **Add Tracks** to add WAV files\n3. Non-compliant files are automatically detected and can be transcoded\n4. Edit track/album metadata in the right panel\n5. Drag tracks to reorder them\n6. Use playback controls to preview\n7. Click **Export** to generate master WAV, CUE, and TOC files\n8. Click **Burn CD** to open the burn dialog and write to disc\n\n### CLI Workflow\n\n```\n$ redbookmaster\n\nWelcome to Red Book Master!\n\n? What would you like to do?\n\u003e Create new project\n\n? Album title: My Awesome Album\n? Artist/Performer: The Band\n? Add WAV files now? Yes\n? WAV file path: /path/to/track1.wav\n✓ Added: Track 1 (3:42)\n? WAV file path: /path/to/track2.wav\n⚠ File is not Red Book compliant: Sample rate is 48000Hz (need 44100Hz)\n? What would you like to do?\n\u003e Convert automatically\n⟳ Converting to Red Book format...\n✓ Conversion complete: 48000Hz -\u003e 44100Hz\n✓ Added: Track 2 (4:15)\n\n? Save project as: my-awesome-album.rbm\n✓ Project saved\n```\n\n## Audio Format Conversion\n\nRed Book Master automatically handles non-compliant WAV files:\n\n| Input Format | Conversion |\n|--------------|------------|\n| 48kHz, 96kHz, etc. | Resampled to 44.1kHz (high-quality FFT resampling) |\n| 24-bit, 32-bit | Converted to 16-bit with TPDF dithering |\n| Mono | Duplicated to stereo |\n| 32-bit float | Converted to 16-bit integer |\n\n## Red Book Specifications\n\nThe tool enforces the following CD-DA (Red Book) specifications:\n\n| Specification | Requirement |\n|---------------|-------------|\n| Audio format | 16-bit, 44.1kHz, stereo PCM |\n| Maximum tracks | 99 |\n| Maximum duration | 79:57 |\n| Minimum track duration | 4 seconds |\n| Track 1 pregap | 2 seconds (default) |\n| ISRC format | CC-XXX-YY-NNNNN (country-registrant-year-designation) |\n| MCN format | 13 digits (UPC/EAN with check digit) |\n\n## Project Files\n\nProjects are saved as `.rbm` files (JSON format) in a project directory:\n\n```\nMyAlbum_rbm/\n├── MyAlbum.rbm           # Project file (JSON)\n├── _transcoded/          # Converted files (if any)\n│   └── 01_track.wav\n├── myalbum.wav           # Master WAV (after export)\n├── myalbum.cue           # CUE sheet\n└── myalbum.toc           # TOC file for cdrdao\n```\n\nProject files contain:\n- Album metadata (title, performer, songwriter, catalog number)\n- Track list with individual metadata (title, performer, ISRC)\n- Gap configurations (pregap, postgap per track)\n- CD-TEXT information\n\n## Output Formats\n\n### Single WAV + CUE (Recommended)\n\nConcatenates all tracks into a single WAV file with proper gaps, plus:\n- `.cue` - CUE sheet with CD-TEXT\n- `.toc` - cdrdao TOC file for burning\n\nBest for CD burning and replication.\n\n### Multi-file CUE\n\nGenerates a CUE sheet referencing original WAV files. Useful for software playback but requires all source files to be present.\n\n## External Dependencies\n\n### cdrdao (for CD burning)\n\ncdrdao is required only for the \"Burn CD\" feature.\n\n```bash\n# macOS (Homebrew)\nbrew install cdrdao\n\n# Ubuntu/Debian\nsudo apt install cdrdao\n\n# Fedora\nsudo dnf install cdrdao\n\n# Arch Linux\nsudo pacman -S cdrdao\n```\n\nRed Book Master automatically searches for cdrdao in:\n- System PATH\n- `/opt/homebrew/bin/cdrdao` (Homebrew on Apple Silicon)\n- `/usr/local/bin/cdrdao` (Homebrew on Intel Mac)\n- `/usr/bin/cdrdao` (Linux)\n\n## Rust Dependencies\n\n| Crate | Purpose |\n|-------|---------|\n| slint | GUI framework (GUI only) |\n| clap | Command-line argument parsing (CLI only) |\n| inquire | Interactive prompts and menus (CLI only) |\n| hound | WAV file reading and writing |\n| rodio | Audio playback |\n| rubato | High-quality audio resampling |\n| rfd | Native file dialogs |\n| serde / serde_json | Project file serialization |\n| dirs | User preferences directory |\n| colored | Terminal colors (CLI only) |\n| thiserror | Error handling |\n| chrono | Timestamps |\n| indicatif | Progress bars (CLI only) |\n\n## Tips\n\n1. **Use lower burn speeds** - 4x or 8x is recommended for audio CDs\n2. **Simulate first** - Use the \"Simulate only\" option before actual burning\n3. **Check track gaps** - Default is 2s for track 1, 0 for others\n4. **Preview playback** - Listen to tracks before exporting\n5. **Export before burning** - The burn dialog requires an exported TOC file\n6. **CD-TEXT compatibility** - Some drives don't support CD-TEXT; disable if burning fails\n\n## Troubleshooting\n\n### \"cdrdao is not installed\"\n\nEven if cdrdao is in your PATH, the program searches specific locations. Install via Homebrew on macOS or your system package manager on Linux.\n\n### Audio playback not working\n\nEnsure you have a working audio output device. The program uses the system default audio output.\n\n### Conversion taking too long\n\nLarge files (especially high sample rates) take longer to convert. The FFT-based resampler prioritizes quality over speed.\n\n### CD-TEXT burning fails\n\nSome drives don't support CD-TEXT with the `--driver generic-mmc-raw` option. Disable the \"Enable CD-TEXT\" option in the burn dialog and try again.\n\n### GUI window size not saving\n\nWindow size is saved to `~/Library/Application Support/redbookmaster/preferences.json` on macOS. Delete this file to reset preferences.\n\n## License\n\nThis software is licensed under a **Personal Use License**. You are free to use, modify, and share the software for personal, educational, or internal business purposes at no cost.\n\n**You may NOT** sell, commercially distribute, or bundle this software with paid products.\n\nFor commercial licensing inquiries, contact: mathias.karstaedt@gmail.com\n\nSee the [LICENSE](LICENSE) file for full terms.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit issues and pull requests.\n\n## Acknowledgments\n\n- [Slint](https://slint.dev/) - Modern GUI framework\n- [hound](https://github.com/ruuda/hound) - WAV file handling\n- [rodio](https://github.com/RustAudio/rodio) - Audio playback\n- [rubato](https://github.com/HEnquist/rubato) - High-quality resampling\n- [cdrdao](http://cdrdao.sourceforge.net/) - CD burning\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebmatze%2Fredbookmaster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebmatze%2Fredbookmaster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebmatze%2Fredbookmaster/lists"}