diff options
-rw-r--r-- | interfaces.tex | 102 | ||||
-rw-r--r-- | introduction.tex | 15 | ||||
-rw-r--r-- | mmbtools.tex | 3 |
3 files changed, 113 insertions, 7 deletions
diff --git a/interfaces.tex b/interfaces.tex index 80fbd87..d71a2a9 100644 --- a/interfaces.tex +++ b/interfaces.tex @@ -1,4 +1,106 @@ \section{Interfacing the Tools} \subsection{Files and Pipes} +The first versions of these tools used files and pipes to exchange data. For +offline generation of a multiplex or a modulated I/Q, it is possible to +generate all files separately, one after the other. + +Here is an example to generate a two-minute ETI file for a multiplex containing two programmes: +\begin{itemize} + \item one DAB programme at 128kbps, encoded with toolame-dab + \item one \dabplus{} programme at 88kbps, encoded with fdk-aac-dabplus +\end{itemize} + +We assume that the audio data for the two programmes is located in uncompressed +48kHz WAV in the files \filename{prog1.wav} and \filename{prog2.wav}. The first step +is to encode the audio. The DAB programme is encoded to \filename{prog1.mp2} using: +\begin{lstlisting} +toolame -b 128 prog1.wav prog1.mp2 +\end{lstlisting} + +The DAB+ programme is encoded to \filename{prog2.dabp}. The extension +\filename{.dabp} is arbitrary, but since the framing is not the same as for +other AAC encoded audio, it makes sense to use a special extension. The command +is: +\begin{lstlisting} +dabplus-enc -i prog2.wav -b 88 -a o prog2.dabp +\end{lstlisting} + +These resulting files can then be used with ODR-DabMux to create an ETI file. +ODR-DabMux supports many options, which makes it much more practical to set +the configuration using a file than using very long command lines. Here is a short +file that can be used for the example, which will be saved as \filename{2programmes.mux}: +\begin{lstlisting} +general { + dabmode 1 + nbframes 5000 +} +remotecontrol { telnetport 0 } +ensemble { + id 0x4fff + ecc 0xec ; Extended Country Code + + local-time-offset auto + international-table 1 + label "mmbtools" + shortlabel "mmbtools" +} +services { + srv-p1 { label "Prog1" } + srv-p2 { label "Prog2" } +} +subchannels { + sub-p1 { + type audio ; MPEG + inputfile "prog1.mp2" + bitrate 128 + id 10 + protection 5 + } + sub-p2 { + type dabplus + inputfile "prog2.dabp" + bitrate 88 + id 1 + protection 1 + } +} +components { + comp-p1 { + label Prog1 + service srv-p1 + subchannel sub-p1 + } + comp-p2 { + label Prog2 + service srv-p2 + subchannel sub-p2 + } +} +outputs { output1 "file://myfirst.eti?type=raw" } +\end{lstlisting} + +This file defines two components, that each link one service and one +subchannel. The IDs and different protection settings are also defined. + +The bitrates defined in the subchannels must correspond to the bitrate set at the encoder. + +The duration of the ETI file is limited by the \lstinline{nbframes 5000} setting. Each frame +corresponds to $24$\ms, and therefore $120 / 0.024 = 5000$ frames are needed +for $120$ seconds. + +The output is written to the file \filename{myfirst.eti} in the ETI(NI) format. Please +see Appendix~\ref{etiformat} for more options. + +To run the multiplexer, run: +\begin{lstlisting} +odr-dabmux -e 2programmes.mux +\end{lstlisting} + +This will generate the file \filename{myfirst.eti}, which will be $5000 * 6144 +\approx 30$\si{MB} in size. + +Congratulations! You have just created your first DAB multiplex! With the configuration file, +adding more programmes is easy. More information is available in the \filename{doc/example.mux} + \subsection{Over the Network} \subsubsection{Authentication Support} diff --git a/introduction.tex b/introduction.tex index 849849d..e7eb35a 100644 --- a/introduction.tex +++ b/introduction.tex @@ -33,14 +33,14 @@ composing a \mmbtools transmission chain, and how to set one up. \subsection{Origins} In 2002, Communications Research Centre Canada\footnoteurl{http://crc.ca} started developing a DAB multiplexer. This effort evolved through the years, and -was published later\sidenote{when?} as \mbox{CRC-DabMux} under the GPL +was published in September 2009 as \mbox{CRC-DabMux} under the GPL open-source licence. CRC also developed a DAB modulator, called \mbox{CRC-DABMOD}, which could create baseband I/Q samples from an ETI file. This I/Q data could then be set to a hardware device using another tool. For the Ettus USRPs, a ``wave player'' script was necessary to interface to GNURadio. Only DAB Transmission Mode 2 was -supported. \mbox{CRC-DABMOD} was also released under the GPL\sidenote{when?}. +supported. \mbox{CRC-DABMOD} was also released under the GPL in early 2010. As encoders, toolame could be used for DAB, and CRC developed a closed-source \mbox{CRC-DABPLUS} \dabplus encoder. @@ -52,7 +52,7 @@ part of the \mbox{CRC-mmbTools}. These tools made it possible to set up the first DAB transmission experiments. In 2012, these tools received experimental support for single-frequency -networks, a functionality that has been developed by Matthias P. Braendli during +networks, a functionality that has been developed by Matthias P. Brändli during his Master's thesis\footnote{The corresponding report is available at \url{http://mpb.li/report.pdf}}. Because SFNs only make sense in TM 1, CRC subsequently released a patch to @@ -62,9 +62,9 @@ At that point, involvement from CRC started to decline. The SFN patch was finally never included in the \mbox{CRC-mmbTools}, and as time passed by, the de-facto fork on \url{http://mpb.li} was receiving more and more features. Having two different programs with the same name made things complicated, and -the tools were officially forked with the approval of CRC in Feb 2014, and given -the new name \mbox{ODR-mmbTools}. They are now developed by the Opendigitalradio -association. +the tools were officially forked with the approval of CRC in February 2014, and +given the new name \mbox{ODR-mmbTools}. They are now developed by the +Opendigitalradio association. In April 2014, the official \mbox{CRC-mmbTools} website went offline, and it has become very difficult, if not impossible to acquire licences for the @@ -110,7 +110,8 @@ graphical analysis (spectrum) is to be done. \subsubsection{toolame-dab} TooLAME is a MPEG-1 Layer II audio encoder that is used to encode audio for the DAB standard. The original project has been unmaintained since 2003, but the -twolame fork that pursues the development removed the DAB framing. +twolame fork that pursues the development removed the DAB framing. Because of +this, twolame is not suitable for DAB. The toolame-dab fork includes the ZeroMQ output and PAD insertion support, but the audio coder is the same as the one in tooLAME. diff --git a/mmbtools.tex b/mmbtools.tex index 7354251..d451a5e 100644 --- a/mmbtools.tex +++ b/mmbtools.tex @@ -68,6 +68,8 @@ \newcommand{\captionwidth}{0.9\textwidth} \newcommand{\mmbtools}{\mbox{ODR-mmbTools}\xspace} +\newcommand{\filename}[1]{\texttt{#1}} + % index stuff \usepackage{tocbibind} % Index in TOC %\usepackage{makeidx} @@ -151,6 +153,7 @@ clock_config_t}, \centering \parbox{2.2in}{\includegraphics[width=16em]{figures/dab-pour-chats.jpg}} \qquad + \caption{Okay, maybe put a real logo here\ldots} \end{figure} \vspace*{1cm} |