Monday, December 19, 2011

Michael Feilen on DRM and Spark

For Christmas, I'm bringing you another DRMNA exclusive! Michael Feilen is the designer of Spark DRM modulator software. If you are a DRM experimenter, I recommend you contact Michael via his site for a demo/trial copy of Spark. It is great fun for testing your DRM receiver setup!

I asked Michael a few questions and in response, Michael lays out not only the history of Spark but great insight into the history of of DRM development. Merry Christmas and enjoy!

Michael, thanks for answering a few questions for us. How did you first get involved in DRM?

In 2005 Prof. Dr. Andreas Steil asked me if I was interested in writing a DRM30 transmitter software for a new DRM project. At this time I was about to finish my engineering degree at the University of Applied Sciences in Kaiserslautern/Germany and I was looking for a nice topic for my thesis. With kind support of Gerd Kilian, a research engineer at the Fraunhofer Institute for Integrated Circuits IIS in Erlangen, I wrote a simple DRM30 modulator and a simple MDI client application in Java. In these days everybody was enthusiastic and DRM30 was seen as a major milestone in the world of broadcasting. At the same time two PhD students at the University in Kaiserslautern, Andreas Dittrich and Torsten Schorr, developed a Matlab-based DRM30 decoder called Diorama. These days also the page was put online with a simple download link for Spark. After finishing my work in Kaiserslautern I applied for an internship position at Radioscape in London and worked on the well-known RS500 multi-standard receiver module. Radioscape had an awesome team of excellent programmers and engineers, those were really great days!

Why do you think DRM implementation has been so slow?

Well, this is difficult to answer as there are multiple viewpoints:
The engineering viewpoint might be that the reception of DRM30 with AAC audio coding turned out to be tougher as first thought. The demands of the system in terms of RF frontend quality and decoding complexity are quite high which made it hard to produce cheap consumer receivers. From the listener's perspective one could claim that even with expensive frontends and software decoders the reception was too unstable in fading situations. Where in AM you could at least guess the station in noisy channel situations, in DRM30 the receiver might have played mumbling audio or completely turned silent for a while. I also think that, in general, the demand for pure broadcast radio has been steadily decreasing and thus is the motivation of the manufacturers to invest in the development of a DRM30 receiver decreased as did the listener's motivation to buy an expensive receiver just for getting stereo quality on AM.
From the marketing point of view I would say that in the early days of DRM Peter Senger did a good job on promoting the system. But at these days, many people forgot that the system could be sold to the customer as more than just an audio transmission system. It enables the possibility to send any data across long distances, e.g. weather maps, emergency warnings, newspapers, advertisements, etc. The early marketing was too focused on promoting DRM30 as a replacement for the audio services on AM. The advertising of DRM30 was also very focused on the feeling of reviving the good old days of AM radio. Nowadays, the urban technocrat might favor investing his money in a decent smartphone with internet radio and video over having a DRM30 receiver with a bulky frontend. Furthermore, since in the cities the demand for mobile internet is rising very quickly, it is foreseeable that the network providers will update their base stations to satisfy the consumers and to improve the mobile media streaming reception.

Tell us a little about Spark. How was it written and what are its strengths?

Spark is a software-defined modulator for digital and analog radio. In an abstract sense it basically takes binary media as an input, applies a certain encoding and modulation and outputs the data in a predefined format over a predefined output device. On the digital side it supports DRM30 and DRM+. On the analog side it can run a complete FM stereo broadcast, including coding and modulation of the Digital Radio Data System (RDS) as well as an AM broadcast with the digital Amplitude Modulation Signaling System (AMSS). While originally designed to generate DRM30 signals, Spark has become a powerful piece of software with many thousand lines of code. Maintaining such a project required the design of a flexible object-oriented software architecture, implemented in portions of Java and C++. I would summarize the strengths of Spark with the terms versatility, stability and user friendliness. Each UI option is carefully designed and I put a lot of effort in making things as easy as possible to use and access for the user. Additionally, I tried to design the architecture to be stable in broadcasting situations, which is why only run-time critical pieces of code are executed in C++ and most of the code runs in a garbage-collected Java sandbox. This also increases the portability of the program as it can run on any of the major operating systems. I think the phrase "Spark is not a toy but fun to play with" summarizes it ?

Can you tell us how most users employ it?

Many receiver developers and universities use Spark for testing and experimentation but hobbyists make probably the highest user proportion. They use Spark to create their own little radio laboratory or to see what is possible with modern digital radio. I think mainly the DRM30 functionalities of Spark are used at the moment although I'm getting more and more requests regarding DRM+ and FM.

Are there any changes up-coming?

I'm in cooperation with Rudolf Ille from who has developed the DRM30 DiRaGen USB modulator for Spark. Hopefully there will be a new hardware coming out in 2012, but it might not be for DRM. Other than that, no major changes are planned.

Can you tell us who is currently using a full version?

The first full version was used by Niels Dreijer in Denmark for the DRM30 station at Kalundborg. It ran on an industrial embedded Linux-PC inside a 19" housing. The modulator hardware and the amplifier were built by Ulf Schneider from Regarding the other full versions, I'm not sure if I can tell names. But what I can say is that the full version of Spark is used by a well-known manufacturer of measurement equipment, by a well-known receiver and IC manufacturer, by different transmitter operators and by several research institutes. The demo is lacking AAC+ encoding. Tell us about the difficulties in using this codec.

Do you see a time when Fraunhofer will release this for use in DRM software?

There are no difficulties in using an AAC+ codec, and in fact it is still one of the best codecs around for high quality audio coding at very low bitrates. But sadly, there exists no freely available AAC+SBR encoder which supports the 960 samples per frame transform length and which could be used for experimentation. I don't expect codec developers like Fraunhofer or Dolby to give their codec away for free because they've put a lot of effort in the development. Fortunately, Dolby offers professional broadcast licenses for their DRM30 AAC+ encoder which is optionally available in the licensed version of Spark.

Have you thought of partnering with a hardware manufacturer to create either an inexpensive DRM exciter or perhaps a USA "Part 15" device for hobbyist use?

I've thought about that. At the moment there is one project targeting into this direction. But to get a real inexpensive setup for the whole transmitter chain (less than 1000 EUR) somebody had to provide an inexpensive AAC+ encoder which I doubt will become reality anytime soon.

Any ideas about what would make the perfect receiver for the general public?

If there is such a thing as a perfect digital radio receiver it is probably not a standalone radio device, unless it is really cheap and small, such as an alarm clock. I'm thinking more of an RF chip that is integrated into a modern smartphone, where the CPU is used for decoding the signal in software. Modern ARM smartphone CPUs are very powerful and can easily be used for software-defined demodulation of digital radio. The difficulty is to get the mobile devices manufacturers convinced to integrate an antenna and an RF chip for the DRM30/DRM+ and DAB frequency bands. Such chips exist but their power consumption had to be reduced for mobile use. The University in Kaiserlautern is working on a low-cost receiver for DRM+ and DAB. The project will be supported by the State Media Authority of Rhineland-Palatinate and could result in an open-source ARM-based software/hardware receiver. Many things have not been decided yet but I will keep you informed about any news on this project.

How can people try out the Spark demo?

Spark can be licensed for broadcast and commercial use. Please complete the form on the first page of the Spark page and I'll answer your license request patiently and as soon as possible.

(If you request a copy of Spark, please tell Michael you read about it on!)

Thanks again for your time and insightful answers Michael!