Files
auCDtect_linux/README.md

95 lines
2.3 KiB
Markdown

# aucdtect_linux
Starter project for a Linux clone of `auCDtect` and `auCDtect Task Manager`, implemented in C++ with Qt Widgets plus a shared analysis core.
## Current scope
- Queue-based desktop UI for adding lossless audio files
- Built-in WAV analyzer with multi-feature CDDA/MPEG heuristic classification
- Optional external decoder for formats that must be converted to WAV first
- Parallel worker queue, detailed task view, live log, and report export
- Separate CLI executable `aucdtect` using the same engine as the GUI
## Command templates
The UI accepts an optional decoder command with placeholders:
- `{input}`: source audio file
- `{decoded}`: temporary WAV path
- `{report}`: report output path
Recommended setup:
```text
Decoder command: ffmpeg -loglevel error -y -i {input} -map 0:a:0 -vn -sn -dn -ar 44100 -ac 2 -c:a pcm_s16le {decoded}
```
If the input file is already WAV, the built-in analyzer runs directly and the decoder is skipped.
## Build
### CMake
```bash
cmake -S . -B build
cmake --build build
```
GUI binary: `build/aucdtect_linux`
CLI binary: `build/aucdtect <input.wav> [more.wav ...]`
Install into a staging prefix:
```bash
cmake --install build --prefix /tmp/aucdtect-linux
```
The install target includes the GUI binary, CLI binary, desktop launcher, and app icons.
Feature dump:
```bash
build/aucdtect --dump-features /path/to/file.wav
```
Dataset evaluation:
```bash
tools/eval_dataset.sh samples dataset_eval.csv
```
### Arch Linux package
The repository includes a VCS `PKGBUILD`:
```bash
makepkg -si
```
Recommended sample layout:
```text
samples/
cdda/
album1-track01.flac
album1-track02.flac
mp3_to_flac/
aac_to_flac/
uncertain/
```
### Direct Qt5 build
```bash
g++ -std=c++20 -fPIC src/main.cpp src/MainWindow.cpp src/AudioAnalyzer.cpp -o aucdtect_linux $(pkg-config --cflags --libs Qt5Widgets Qt5Concurrent)
g++ -std=c++20 -fPIC src/cli_main.cpp src/AudioAnalyzer.cpp -o aucdtect $(pkg-config --cflags --libs Qt5Core)
```
## Next steps
- Calibrate the spectral model against known genuine-CDDA and transcode samples
- Replicate the original Windows layout and task detail panes even more faithfully
- Replace the temporary decoder bridge with native format readers
- Add cancelation that can terminate active decoder subprocesses immediately