Files
auCDtect_linux/README.md

2.3 KiB

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:

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