QDDBCONV(1) User Commands QDDBCONV(1)

qddbconv - standalone Qt6 audio converter in DeaDBeeF style for KDE Plasma

qddbconv [FILES | DIRECTORIES | CUE_SHEETS ...]

qddbconv is a fast, standalone C++17/Qt6 graphical audio converter designed for KDE Plasma. It reproduces the two-pane layout, workflow, encoder preset architecture, and Title Formatting syntax of DeaDBeeF's converter plugin while operating as a completely independent desktop application.

Under the hood, qddbconv uses ffmpeg(1) and ffprobe(1) for universal audio decoding, resampling, sample format conversion, channel mixing, and metadata/cover-art muxing, combined with native C++17 parsers for multi-track .cue sheets, Standard MIDI (.mid/.midi/.kar/.rmi), and Yamaha SMAF (.mmf) mobile ringtones (including hybrid MIDI + 4-bit Yamaha MA ADPCM / PCM voice streams).

One or more audio, MIDI, or Yamaha SMAF files to load into the conversion queue on startup.
One or more directories to scan recursively for supported audio files.
One or more .cue sheet files to parse and split into individual virtual tracks with per-track start/duration offsets and metadata.

FLAC (.flac), Apple Lossless (.m4a, .alac), Monkey's Audio (.ape), WavPack (.wv), TTA (.tta), TAK (.tak), Shorten (.shn), WAV (.wav), AIFF (.aif, .aiff), AU/SND (.au, .snd), Wave64 (.w64), CAF (.caf).
MP3 (.mp3), Ogg Vorbis (.ogg, .oga), Opus (.opus), AAC / M4A (.aac, .m4a, .mp4), Musepack (.mpc, .mp+, .mpp), Windows Media Audio (.wma), AC-3 / E-AC-3 (.ac3, .eac3), DTS (.dts), Speex (.spx), AMR (.amr, .3gp).
Yamaha SMAF (.mmf — FM/WaveTable MIDI scores, pure PCM/ADPCM streams, and hybrid MIDI + voice sample tracks), Standard MIDI (.mid, .midi, .kar, .rmi via timidity or fluidsynth), MOD/XM/IT/S3M (.mod, .xm, .it, .s3m), SID, NSF, SPC, VGM/VGZ.
Matroska (.mkv), WebM (.webm), MP4 (.mp4, .m4v), AVI (.avi), MOV (.mov), FLV (.flv), MPEG-TS (.ts).

MP3 (LAME & FFmpeg libmp3lame CBR 320/256/192/128 kbps, VBR V0, VBR V2), Ogg Vorbis (oggenc / FFmpeg libvorbis), Opus (opusenc 96–320 kbps / FFmpeg libopus), FLAC (flac levels 5 and 8 / FFmpeg), AAC / M4A (FFmpeg native AAC 192/256 kbps, faac, fdkaac), Apple Lossless (ALAC .m4a), WavPack (wavpack / FFmpeg), Musepack (mpcenc), Monkey's Audio (mac), TTA (ttaenc), Uncompressed WAV (16-bit PCM, 32-bit float), AIFF (16-bit big-endian), AC-3, WMA v2, and Standard MIDI (.mid extracted from Yamaha SMAF .mmf).

Different operating systems and FFmpeg builds ship with different sets of external CLI tools and compile-time library wrappers. qddbconv automatically inspects and adapts to the available tools at runtime:

When a preset specifies a standalone CLI encoder binary (lame, oggenc, opusenc, flac, wavpack, faac, fdkaac, neroaacenc, ttaenc, twolame, aften) that is not installed in PATH, qddbconv automatically falls back to ffmpeg with equivalent bitrate/quality parameters. First it prefers an external FFmpeg library encoder (libmp3lame, libvorbis, libopus, libfdk_aac, libtwolame, libwavpack); if the active ffmpeg build lacks that library, it falls back to FFmpeg's built-in native encoder (aac, opus, vorbis, flac, wavpack, tta, mp2, ac3). Hovering over any preset in the Encoder: dropdown displays how that preset will execute on the current system (direct CLI binary, FFmpeg library encoder, FFmpeg built-in encoder, or fallback).
When the active ffmpeg binary was compiled without --enable-libopenmpt or --enable-libgme, qddbconv automatically falls back to openmpt123/xmp for tracker modules (.mod, .xm, .it, .s3m, .mptm, etc.) and to gme2wav for console chiptunes (.spc, .vgm, .vgz, .nsf, .gbs, .hes, .ay, .sap, .kss).
For Yamaha SMAF (.mmf) files, qddbconv provides three selectable synthesis engines (plus Auto mode) configurable in Settings → Configure qddbconv...: (1) the Built-in Hybrid Engine (builtin), which synthesizes 2-op and 4-op FM voices, custom Mtsu/Mtsq/EXVO SysEx FM patches, and direct 43 02|03 90 hardware register notes natively in C++ (YamahaMaFmSynth with 29 waveforms and embedded 2-op/4-op GM FM preset banks), synthesizes MA-3/MA-5 WaveTable tracks via fluidsynth or timidity, and mixes embedded 4-bit Yamaha ADPCM / PCM (Mwa*/Awa*) streams into 44.1 kHz stereo PCM; (2) MIDI Synth + ADPCM (midisynth), which renders all score tracks via fluidsynth or timidity and mixes embedded 4-bit Yamaha ADPCM / PCM (Mwa*/Awa*) streams on top; and (3) an optional Native 32-bit DLL Loader (dll, qddbconv-smaf32), which loads 32-bit M5_EmuSmw5.dll and M5_EmuHw.dll directly into a 32-bit helper process (natively on Linux x86_64 without Wine, and on 64-bit Windows) when a directory containing those DLLs is configured. For Standard MIDI (.mid, .kar, .rmi) and SMAF WaveTable tracks, Auto mode tries fluidsynth first (requiring a valid .sf2/.sf3 SoundFont) and falls back to timidity. You can configure the preferred MIDI synthesizer, custom fluidsynth and timidity binary paths, and an optional custom .sf2 SoundFont file (passed to fluidsynth and loaded into timidity -c with prior bank/drumset mappings cleared).

The Output file name field supports DeaDBeeF-compatible Title Formatting placeholders and conditional brackets:

%a, %artist%
Track artist.
%t, %title%
Track title.
%b, %album%
Album title.
%B, %band%, %album artist%
Album artist.
%n, %tracknumber%
Zero-padded 2-digit track number (e.g. 01).
%N, %totaltracks%
Total track count.
%y, %year%, %date%
Release year / date.
%g, %genre%
Genre.
%c, %comment%
Comment tag.
%f, %filename%
Original file base name without extension.
[ ... ]
Conditional block: evaluated and included in the output filename only if at least one placeholder inside the brackets resolves to a non-empty string (for example, [%tracknumber%. ]%title%).

Add audio files.
Add folder recursively.
Add CUE sheet (.cue).
Open the Track Metadata & Properties dialog (tags, technical info, cover art preview/override).
Edit cell inline in the track table (Track#, Title, Artist, Album, Year).
Remove selected tracks from the queue.
Clear the entire track queue.
Open the Encoder Presets manager.
Toggle the top menubar on/off (collapses into a Dolphin-style hamburger menu button ~ on the toolbar).
Start conversion.
Cancel active conversion.
Open Preferences dialog.
Quit application.

~/.config/qddbconv/qddbconv.conf
Main application configuration file in standard INI format (managed via Qt QSettings). Stores output directory paths, Title Formatting pattern, active encoder preset, DSP resampling and bit-depth settings, worker thread count, overwrite policy, cover art embedding/resizing preferences, default CUE sheet fallback encoding, custom temporary directory path, extra FFmpeg arguments, toolbar button style, menubar visibility, and window geometry.
$XDG_DATA_HOME/qddbconv/presets/*.txt (~/.local/share/qddbconv/presets/*.txt)
User-created and customized encoder preset files stored in plain-text key-value format (100% compatible with DeaDBeeF's converter preset files in ~/.config/deadbeef/presets/encoders/*.txt). On Windows, the default directory is %LOCALAPPDATA%\qddbconv\presets (or a portable presets subfolder inside the qddbconv application folder). A custom preset directory can also be configured in Settings → Configure qddbconv.... The 28 built-in presets are compiled into the qddbconv binary as read-only defaults; editing or copying a built-in preset writes a new .txt file into the user presets directory.

All temporary files are created in /tmp (or in the custom Temporary WAV Directory configured under Settings → Preferences...) and are automatically deleted as soon as each track finishes processing:

/tmp/qddbconv_XXXXXX.wav
Intermediate decoded PCM WAV file generated by ffmpeg (with CUE track slicing, resampling, bit-depth conversion, and channel mixing applied) or synthesized from .mid/.mmf inputs. Fed to external CLI encoders and deleted immediately after encoding completes.
/tmp/qddbconv_smaf_XXXXXX.mid
Temporary Standard MIDI file extracted from a Yamaha SMAF (.mmf) score track so timidity can render the instrumental backing track before qddbconv mixes in embedded Mwa/Awa ADPCM/PCM voice samples. Deleted immediately after rendering.
/tmp/qddbconv_cover_XXXXXX.jpg
Temporary JPEG cover art image (extracted from source tags, loaded from album folder files such as cover.jpg/folder.jpg/front.png, or selected manually, with optional downscaling applied) passed to ffmpeg when muxing cover art into MP3, FLAC, M4A/MP4, or WMA. Deleted immediately after tag muxing.
/tmp/qddbconv_meta_XXXXXX.txt
Temporary ffmetadata file containing a base64-encoded RFC 7845 METADATA_BLOCK_PICTURE structure used when embedding cover art into Ogg Vorbis (.ogg) and Opus (.opus) containers (avoiding OS command-line length limits on large images). Deleted immediately after muxing.
<output_file>.tagged.<ext>
Temporary atomic remux file created alongside the destination file while ffmpeg writes output metadata tags and cover art. Atomically renamed over <output_file> upon completion so interrupted operations never leave corrupted files.

ffmpeg(1), ffprobe(1), timidity(1), lame(1), flac(1), opusenc(1), oggenc(1)

goberghen & Arena.ai Agent.

Copyright © 2026 goberghen & Arena.ai Agent.
License GPLv2+: GNU GPL version 2 or later https://www.gnu.org/licenses/old-licenses/gpl-2.0.html. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

October 2026 qddbconv