Initial auCDtect Linux implementation
This commit is contained in:
94
README.md
Normal file
94
README.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user