Qt-DAB: a DAB decoder



Qt-DAB is - as the name suggests - a decoder for (terrestrial) DAB streams. There are actually two versions of Qt-DAB, labeled the "4" and "5" versions. The functionality of these versions is largely the same, the difference is in the GUI appraoch. In Qt-DAB 5 is chosen for a (relative) simple GUI main widget, supported by some more complex secondary widgets that can be made visible (or hidden). In Qt-DAB 4 the main GUI has quite a number of controls on the main widget, and therefore a smaller configuration widget. In Qt-DAB 5 there is now room to display the slide on the main widget, in Qt-DAB 4 such a slide are displayed on a separate widget or as part of the technical data widget, depending on a setting.


Both versions of Qt-DAB support

  1. DAB (mp2) and DAB+ (HE-AAC v1, HE-AAC v2 and AAC-LC) decoding,

  2. MOT SlideShow (SLS), in Qt-DAB 5 the slides aare shown on the main widget, in Qt-DAB 4 on either a separate widget or as part of the technical data widget;

  3. Dynamic Label (DLS) and the possibility of saving Dynamic Labels - augmented with channel and time info - in a file,

  4. Next to the regular DAB Band (i.e. Band III), decoding data from the L-Band is supported. Furthermore, Qt-DAB allows the user to specify a band by providing a frequency and service labels.

  5. Next to Mode I, the obsolete modes II and IV are supported;

  6. A selection on views on the signal is possible: spectrum view incl. a waterfall and a constellation diagram, a view on the correlation result, a view on a TII (Transmitter Identification Information) spectrum and the development of SNR over time can be made visible;

  7. support for automatic reconfiguration of services;

  8. Detailed information on reception and selected service (SNR, bitrate, frequency, ensemble name, ensemble ID, subchannel ID, used CUs, protection level, CPU usage, program type, language, alternative FM frequency if available, 4 quality bars);

  9. If configured, TII data is mapped upon a transmitter's name, and display of TII (Transmitter Identification Information) data when transmitted;

  10. Possibility of displaying a map with position(s) of received transmitter(s);

  11. Scanning through the band, with as options a scanmode (continuous scan, single scan, scan until data is found), and the possibility of explicitly including or excluding channels;

  12. Presets and history. A service can be marked as preset and the name is included in a preset list for easy selection, regardless of the channel; Furthermore, all servicenames encountered are stored in the history, also for easy switching of programs in different ensembles. A simple mouse click suffices to clear the list.

  13. Dumping of the input data of the DAB channel (Warning: produces large raw files!) into `.sdr` files or `.xml` file formats and playing them again later (see section on xml format);

  14. Saving audio as uncompressed wave files, and Saving aac frames from DAB+ services for processing by e.g. VLC,

  15. Saving the ensemble content description: audio and data streams, including almost all technical data into a text file readable by e.g LibreOfficeCalc

  16. when configured the ip data - if selected - is sent to a specified ip address (default:,

  17. TPEG output: when configured the data is sent to a specified ip address,

  18. EPG detection and building up a time table,

  19. Built-in upport for common devices:

    1. SDR DAB sticks (RTL2838U or similar),

    2. HACKRF One,

    3. Airspy, including Airspy mini,

    4. SDRplay (RSP I, RSP II, RSP Duo and RSP Dx), with separate entries for v2 and v3 library

    5. limeSDR,

    6. Adalm Pluto, with - built in - transmitting the audio of the selected service as stereo fm signal, augmented with the DLL texts as RDS data;

    7. Soapy (experimental, Linux only),

    8. ExtIO (experimental, Windows only),

    9. rtl_tcp servers.

    10. Always supported input from prerecorded dump (`.raw`, `.iq` and `.sdr`), - `.xml` and `.uff` format files.

    11. Clean device interface, easy to add other devices,

    12. possibility of scheduling the start of (channel:service) pairs or operations as frame dump or audio dump, even for days ahead.

    13. background services. Since 4.351 it is possible to run an arbitrary number of DAB+ audioservices (from the current ensemble) as background service with the output sent to a file.

As can be seen, the main widget of Qt-DAB 5 does not have a lot of selectors, these are all moved to the configuration and control widget. The technical data widget gives detailed information on the selected (audio) service.


The configuration and control widget contains a number of checkboxes for settings, the state of which is saved between program invocations.

Note that on start-up of the program, the program tries to use the device that was last used previous program invocation. If the device cannot be connected to, the configuration widget will show automatically, that widget contains a device selector. For the function of the various buttons and checkboxes one should consult the manual or the tooltip of the element.

The configuration widget shows a single progress bar, this bar shows the successrate in decoding the so-called FIC data (Fast Information Channel). FIC data tells the software how the payload is organized, which data belongs to which service and how the service data is encoded. If this bar is less than 100 percent, reception is poor, and most likely decoding service data will not succeed.

Touching the button spectrum shows (or hide) a widget where some details of the signal are made visible.


The picture shows the spectrum and waterfall of the received signal, and - as a cloud of dots - the constellation diagram of the decoded signal. Ideally the signal - and the constellation - looks as in the picture below, a picture derived from a generated ideal signal, reflections - as well as receiving of data from more than a single receiver - cause these disturbance of the signal.


The actual signal strength and the frequency correction applied are listed, as well as the remaining frequency offset. The clock offset tells how many samples in a frame are missing due to a clock error.

Other interesting displays (not shown here) are the correlation display and the tii spectrum display.


The technical data widget shows relevant data about the selected audio service. Data, such as the address of the data for the service in the DAB frames, the length, the bitrate and the protection. The progress bars show the degree of success in the various processing steps of the audio content. The top one tells whether or not the data for the content of the service seems reasonable, the second one tells gives an indication of the succcessrate of the error detection and correction using Reed-Solomon processing of the data, and the third one tells the successrate of the conversion from AAC frames to audio samples.

The technical data widget contains two selectors for dumping the MP2 or MP4 frames, or dumping the audio as a ".wav" file.

Since an ensemble contains more than just the names of the selected service, Qt-DAB offers - touch the content button - a "content" description, an overview of (technical) details of all services will show a widget with a description of the content of the current ensemble.


Scanning the band creates for each ensemble found entries in a document with that kind of information.

Of course DX-ers want some information about the transmitters they see. In DAB most transmitters send some data together with the DAB data with which they can be identified, the TII data. The main widget above shows TII data 01 04, and Qt-DAB has - if configured - access to a database with which TII data can be mapped upon a transmitter description. Such a description gives the name and location of the transmitter. In the picture above of the main widget, the name of the transmitter, the distance from that receiver to the current location, and the azimuth, belonging to the TII code 01 04 is shown

Qt-DAB has built-in a simple http client - started (and stopped) by the http button on the main widget - that will instruct a webbrowser to show a map with the position of the transmitters received (I myself I am not much of a DX-er as the picture shows)


Of course, for showing the map and showing distances, a "home" location should be known. The configuration and control widget has a selector coordinates that allows setting the (decimal) coordinates of the home position.

Qt-DAB offers more features, one of them is a scheduling option. When listening to music I usually forget to switch in time to my favorite news program, the schedule option was developed for that purpose. The idea is simple: one specifies an action to take place on a given time within the next 7 days (obviously with the assumption that on the moment the action should take place, the software is active).

A typical action is to switch to a certain service in a given channel, another action is to dump the audio of the selected service into a file, stopping the dump, to halt the program, to dump the text the the Dynamic Label into a file, to dump the FIC data into a file, or to do nothing.

The actionlist is maintained between program invocations and updated on program start up. Missed actions are deleted. See the manual for details