A multimedia framework using pure Qt with a QIODevice interface. Supports both Qt 4 and 5. It got started when RetroPlayer code started to become a mess and I needed something that didn't require too many external dependecies like gstreamer does.

It consists of a couple of components: sources, sinks, scanner, decoder and player.


Audio sources are QIODevice based so they can be read and written to like any Qt IO source.

Currently implemented are:

  • libsidplayfp for SID files
  • libopenmtp for Tracker modules (Prefered!)
  • (libmodplug for Tracker modules (Optional, deprecated))
  • libasap for SAP files
  • sc68 for Atari and Amiga SC68 and sndh files
  • FLAC
  • OPUS

Basic usage of source goes like this:

  • The source file data is loaded normally into a buffer, say a QByteArray
  • source is opened for writing and the data is written to it
  • source is closed
  • source is opened for reading
  • source is assigned to a sink, for example a QAudioOutput
  • playback!


  • Qt QAudioOutput
  • Linux ALSA
  • Raw data file writer
  • WAV file writer