WorldDMB GA 2010 Open DAB demonstration

From Opendigitalradio
Revision as of 17:20, 28 October 2010 by Coinchon (Talk | contribs)

Jump to: navigation, search

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 were consisting of the transmission 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, 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
Personal tools