---
name: "qddbconv"
section: "1"
platform: "linux"
package: "qddbconv"
version: "1.3.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/qddbconv"
---

# qddbconv(1)

standalone Qt6 audio converter in DeaDBeeF style for KDE Plasma

## NAME

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

## SYNOPSIS

**qddbconv** \[*FILES* \| *DIRECTORIES* \| *CUE\_SHEETS* ...\]

## DESCRIPTION

**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)](/ffmpeg/1.md) and [**ffprobe**(1)](/ffprobe/1.md) 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).

## 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 **.cue** sheet 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**).

- **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**).

- **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**, **.rmi** via **timidity** or **fluidsynth**), MOD/XM/IT/S3M (**.mod**, **.xm**, **.it**, **.s3m**), SID, NSF, SPC, VGM/VGZ.

- **Video Containers (Audio Track Extraction)**

  Matroska (**.mkv**), WebM (**.webm**), MP4 (**.mp4**, **.m4v**), AVI (**.avi**), MOV (**.mov**), FLV (**.flv**), MPEG-TS (**.ts**).

### 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**).

## AUTOMATIC ENCODER & DECODER FALLBACK

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:

- **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**). 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).

- **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**).

- **MIDI & Yamaha SMAF Synthesis Engines & SoundFont Selection**

  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).

## TITLE FORMATTING

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%**).

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

- **Ctrl+P**

  Open the Encoder Presets manager.

- **Ctrl+M**

  Toggle the top menubar on/off (collapses into a Dolphin-style hamburger menu button **~** on the toolbar).

- **Ctrl+Return / Ctrl+Enter**

  Start conversion.

- **Escape**

  Cancel active conversion.

- **Ctrl+,**

  Open Preferences dialog.

- **Ctrl+Q**

  Quit application.

## FILES

### Configuration & Preset Files

- *~/.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.

### Temporary & Service Files Created at Runtime

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.

## SEE ALSO

[**ffmpeg**(1)](/ffmpeg/1.md), [**ffprobe**(1)](/ffprobe/1.md), [**timidity**(1)](/timidity/1.md), [**lame**(1)](/lame/1.md), [**flac**(1)](/flac/1.md), [**opusenc**(1)](/opusenc/1.md), [**oggenc**(1)](/oggenc/1.md)

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