# 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 [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