4210e5aa8b41625a29aa11172815a40290d5c3f6
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
aucdtectusing 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:
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
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:
cmake --install build --prefix /tmp/aucdtect-linux
The install target includes the GUI binary, CLI binary, desktop launcher, and app icons.
Feature dump:
build/aucdtect --dump-features /path/to/file.wav
Dataset evaluation:
tools/eval_dataset.sh samples dataset_eval.csv
Arch Linux package
The repository includes a VCS PKGBUILD:
makepkg -si
Recommended sample layout:
samples/
cdda/
album1-track01.flac
album1-track02.flac
mp3_to_flac/
aac_to_flac/
uncertain/
Direct Qt5 build
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
Description
Languages
C++
93.1%
Shell
4.8%
CMake
2.1%