QDDBCONV(1)
๐ธ QDDBCONV(1) ๐ธ
qddbconv โ that's a User Commands manual page, bestie, and we're about to read it together ๐
โจ NAME โจ
qddbconv โ a standalone Qt6 audio converter in DeaDBeeF style, made for KDE Plasma ๐
๐ฆ SYNOPSIS ๐ฆ
qddbconv [FILES | DIRECTORIES | CUE_SHEETS ...]
๐ DESCRIPTION ๐
Okay so qddbconv is a fast, standalone C++17/Qt6 graphical audio converter designed for KDE Plasma, and it literally ate. ๐ฏ It reproduces the two-pane layout, the workflow, the encoder preset architecture, and the Title Formatting syntax of DeaDBeeF's converter plugin โ but it runs as a completely independent desktop application. Main character energy, no cap. ๐
Under the hood (iykyk ๐ฅ), qddbconv uses ffmpeg(1) and ffprobe(1) for universal audio decoding, resampling, sample format conversion, channel mixing, and metadata/cover-art muxing. Then it stacks that 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. Likeโฆ the range? Unmatched. ๐
๐ ARGUMENTS ๐
FILESโ one or more audio, MIDI, or Yamaha SMAF files to load into the conversion queue on startup โจDIRECTORIESโ one or more directories to scan recursively for supported audio files ๐งCUE_SHEETSโ one or more.cuesheet files to parse and split into individual virtual tracks with per-track start/duration offsets and metadata ๐
๐ฅ SUPPORTED FORMATS ๐ฅ
๐ Input Formats
Lossless & Uncompressed Audio
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). Lossless girlies stay winning ๐ซถ
Lossy Audio
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). A whole buffet, honestly ๐ญ
Chiptune, Tracker, MIDI & Mobile Formats
- Yamaha SMAF (
.mmfโ FM/WaveTable MIDI scores, pure PCM/ADPCM streams, and hybrid MIDI + voice sample tracks) ๐ฎ - Standard MIDI (
.mid,.midi,.kar,.rmiviatimidityorfluidsynth) - MOD/XM/IT/S3M (
.mod,.xm,.it,.s3m) - SID, NSF, SPC, VGM/VGZ
The nostalgia is highkey off the charts. ๐พ
Video Containers (Audio Track Extraction)
Matroska (.mkv), WebM (.webm), MP4 (.mp4, .m4v), AVI (.avi), MOV (.mov), FLV (.flv), MPEG-TS (.ts). Yes bestie, we're stealing the audio out of your videos, it's giving resourceful ๐
๐ Output Formats (36 Built-in Presets + User Presets)
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). Thirty-six presets plus yours โ the menu is stacked โญ
๐ง AUTOMATIC ENCODER & DECODER FALLBACK ๐ง
Not every OS and not every FFmpeg build ships with the same external CLI tools and compile-time library wrappers โ and qddbconv is unbothered, because it automatically inspects and adapts to the available tools at runtime. Adaptive queen. ๐
Encoder Fallback Chain (CLI binary โ FFmpeg library encoder โ FFmpeg built-in encoder)
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).
Pro move: hovering over any preset in the Encoder: dropdown shows you exactly how that preset will execute on your current system โ direct CLI binary, FFmpeg library encoder, FFmpeg built-in encoder, or fallback. Transparency! We love to see it ๐
Demoscene & Chiptune Decoder 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). It's giving prepared. ๐ง
MIDI & Yamaha SMAF Synthesis Engines & SoundFont Selection
For Yamaha SMAF (.mmf) files, qddbconv gives you three selectable synthesis engines (plus an Auto mode), configurable in Settings โ Configure qddbconv... ๐ธ
- The Built-in Hybrid Engine (
builtin) โ synthesizes 2-op and 4-op FM voices, customMtsu/Mtsq/EXVOSysEx FM patches, and direct43 02|03 90hardware register notes natively in C++ (that'sYamahaMaFmSynth, with 29 waveforms and embedded 2-op/4-op GM FM preset banks). It also synthesizes MA-3/MA-5 WaveTable tracks viafluidsynthortimidity, and mixes embedded 4-bit Yamaha ADPCM / PCM (Mwa*/Awa*) streams into 44.1 kHz stereo PCM. Show-off behavior, honestly ๐ - MIDI Synth + ADPCM (
midisynth) โ renders all score tracks viafluidsynthortimidityand mixes embedded 4-bit Yamaha ADPCM / PCM (Mwa*/Awa*) streams on top. - An optional Native 32-bit DLL Loader (
dll,qddbconv-smaf32) โ loads 32-bitM5_EmuSmw5.dllandM5_EmuHw.dlldirectly into a 32-bit helper process (natively on Linux x86_64 without Wine, and on 64-bit Windows) whenever a directory containing those DLLs is configured. Niche and thriving. ๐ง
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. Fully customizable, as you deserve. โจ
๐ TITLE FORMATTING ๐
The Output file name field supports DeaDBeeF-compatible Title Formatting placeholders and conditional brackets. This is where you get to be creative, bestie ๐
%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%) ๐ช
โจ๏ธ KEYBOARD SHORTCUTS โจ๏ธ
- Ctrl+O โ add audio files ๐
- Ctrl+Shift+O โ add folder recursively
- Ctrl+U โ add CUE sheet (
.cue) - Ctrl+E / Double-click โ open the Track Metadata & Properties dialog (tags, technical info, cover art preview/override) ๐ผ๏ธ
- F2 โ edit a cell inline in the track table (Track#, Title, Artist, Album, Year)
- Delete / Backspace โ remove selected tracks from the queue ๐๏ธ
- Ctrl+Shift+Delete โ clear the entire track queue (careful, bestie ๐ญ)
- Ctrl+P โ open the Encoder Presets manager
- Ctrl+M โ toggle the top menubar on/off (it collapses into a Dolphin-style hamburger menu button
~on the toolbar) ๐ - Ctrl+Return / Ctrl+Enter โ start conversion ๐
- Escape โ cancel active conversion
- Ctrl+, โ open the Preferences dialog
- Ctrl+Q โ quit the application ๐
๐พ FILES ๐พ
๐ Configuration & Preset Files ๐
~/.config/qddbconv/qddbconv.confโ the main character of config files, bestie ๐ . It's the app's big config file, in standard INI format (handled through QtQSettings). This is where all the receipts live: your output directory paths, your Title Formatting pattern, which encoder preset is currently active, the DSP resampling and bit-depth settings, how many worker threads you want, your overwrite policy, cover art embedding and resizing preferences, the default CUE sheet fallback encoding, a custom temporary directory path, any extra FFmpeg arguments, your toolbar button style, whether the menubar is visible, and the window geometry. Basically everything except your astrological sign โจ$XDG_DATA_HOME/qddbconv/presets/*.txtand~/.local/share/qddbconv/presets/*.txtโ your encoder preset files, both the ones you made and the ones you customized ๐ซถ. They're stored in plain-text key-value format and are 100% compatible with DeaDBeeF's converter preset files over in~/.config/deadbeef/presets/encoders/*.txtโ yes, fr fr, cross-compatible, we love to see it. On Windows the default directory is%LOCALAPPDATA%\qddbconv\presets(or a portablepresetssubfolder inside the qddbconv application folder). You can also point it at a custom preset directory inSettings โ Configure qddbconv.... The 28 built-in presets are compiled straight into theqddbconvbinary as read-only defaults, so if you edit or copy one of them, it writes a brand-new.txtfile into your user presets directory โ no built-ins were harmed in the making of your custom preset ๐ธ
๐ง Temporary & Service Files Created at Runtime ๐ง
So here's the tea: every temporary file gets created in /tmp (or in your custom Temporary WAV Directory, set under Settings โ Preferences...), and they all get auto-deleted the literal second each track finishes processing โจ Nothing hanging around, no clutter, iconic behavior honestly.
/tmp/qddbconv_XXXXXX.wavโ the intermediate decoded PCM WAV file, generated byffmpeg(with CUE track slicing, resampling, bit-depth conversion, and channel mixing all applied) or synthesized from.mid/.mmfinputs. This is the file that gets fed to the external CLI encoders, and it's deleted immediately after encoding completes ๐ gone. poof./tmp/qddbconv_smaf_XXXXXX.midโ a temporary Standard MIDI file pulled out of a Yamaha SMAF (.mmf) score track, sotimiditycan render the instrumental backing track before qddbconv mixes in the embedded Mwa/Awa ADPCM/PCM voice samples ๐น. Deleted immediately after rendering, obviously./tmp/qddbconv_cover_XXXXXX.jpgโ a temporary JPEG cover art image, because the art deserves its moment ๐. It comes from source tags, from album folder files likecover.jpg/folder.jpg/front.png, or from your own manual selection, with optional downscaling applied. It gets passed toffmpegwhen muxing cover art into MP3, FLAC, M4A/MP4, or WMA. Deleted immediately after tag muxing./tmp/qddbconv_meta_XXXXXX.txtโ a temporaryffmetadatafile containing a base64-encoded RFC 7845METADATA_BLOCK_PICTUREstructure, used when embedding cover art into Ogg Vorbis (.ogg) and Opus (.opus) containers. Why, you ask? To dodge OS command-line length limits on large images, that's why ๐ญ. Deleted immediately after muxing.<output_file>.tagged.<ext>โ the temporary atomic remux file, created right alongside the destination file whileffmpegwrites out output metadata tags and cover art. When it's done it gets atomically renamed over<output_file>, so an interrupted operation can never leave you with a corrupted file ๐ซถ no cap, that's the whole point.
๐ฅ SEE ALSO ๐ฅ
ffmpeg(1), ffprobe(1), timidity(1), lame(1), flac(1), opusenc(1), oggenc(1)
๐ AUTHORS ๐
goberghen & Arena.ai Agent.
โญ COPYRIGHT โญ
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.
and that's the whole page, bestie ๐ sourceqddbconv, version dateOctober 2026, manual pageQDDBCONV(1)โ go forth and convert some audio, you absolute icon ๐ฆโจ๐
๐ฆ where this page comes from
- arch rolling: qddbconv 1.3.1-1 ยท GPL-2.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms