WorldDMB GA 2010 Open DAB demonstration
From Opendigitalradio
A short demonstration of the creation of a live DAB transmission using a presentation laptop has been performed during the presentation on local DAB broadcasting. It has been done using a average Dell laptop and was consisting of the transmission of multiplex of:
- Live sound from the laptop microphone
- Live retransmission of Maxxima webradio
- Live retransmission of France Inter
- Live retransmission of SWR3
Here are the setup and scripts used
Contents |
Hardware
- Dell Latitude E6400 laptop (Centrino 2 CPU)
- USRP1 Universal Software Radio Peripheral with WBX RF daugtherboard (50MHz-2.2GHz)
- Mini-circuits bandpass filter
Software
- Ubuntu Linux 10.04
- Gnuradio 3.3
- Jack open Audio connection kit
- arecord (from ALSA utils)
- Toolame open MPEG Layer II encoder
- CRC MMBtools open source DAB multiplexer: CRC-DabMux
- Non blocking buffer: bfr
- CRC MMBtools open source DAM modulator: CRC-DabMod
- Baseband USRP1 VHF player
Scripts
2 scripts were used in parallel, one for the multiplexer/modulator and the other for getting the sound stream and encode them
Script for stream and encode:
#!/bin/sh arecord -t raw -f S16_LE -c 2 -r 48000 -D jackplug1 |toolame -s 48 -D 4 -b 128 /dev/stdin ./1.ff & arecord -t raw -f S16_LE -c 2 -r 48000 -D jackplug2 |toolame -s 48 -D 4 -b 128 /dev/stdin ./2.ff & arecord -t raw -f S16_LE -c 2 -r 48000 -D jackplug3 |toolame -s 48 -D 4 -b 128 /dev/stdin ./3.ff & arecord -t raw -f S16_LE -c 2 -r 48000 -D jackplug4 |toolame -s 48 -D 4 -b 128 /dev/stdin ./4.ff &
- .ff are FIFO files (names pipes) that were created using "mkfifo" command
- "jackplug" are mapping of jack source to ALSA (or look at http://www.alsa-project.org/main/index.php/Asoundrc#JACK_plugin), defined in .asoundrc file in home directory
Script for multiplexing, encoding, playout:
#!/bin/sh CRC-DabMux -L "MyMux" -A 1.ff -b 128 -i 1 -S -L "LiveMic" -C \ -A 2.ff -b 128 -i 2 -S -L "Maxxima" -C \ -A 3.ff -b 128 -i 3 -S -L "France Inter" -C \ -A 4.ff -b 128 -i 4 -S -L "SWR3" -C \ -O fifo:///dev/stdout |\ CRC-DabMod -f -g1 -r3200000 |\ bfr -p -b 32m -m 8m |\ coinwap_full3.py
(bfr is the buffer, coinwap_full3.py is the baseband player)
Startup procedure
- Start jack audio server using Jack Control (you need to have install jack audio server and tools)
- Launch the 2 scripts.
- By default (depending on .asoundrc file) all source will be connected to the laptop microphone
- Play the streams of Maxxima, France Inter and SWR3 using any player compatible with jack. In our case we used mplayer. See below:
mplayer -ao jack http://maxxima.mine.nu:8000 mplayer -ao jack http://mp3.live.tv-radio.com/franceinter/all/franceinterhautdebit.mp3 mplayer -ao jack http://mp3-live.swr3.de/swr3_m.m3u
- Connect the outputs of the different mplayer to the input of the multiplexer using "connectionS" in JACK control