From 7d35caca6999d00328adc1fc313edf703f1d33d5 Mon Sep 17 00:00:00 2001
From: David Runge <dave@sleepmap.de>
Date: Wed, 14 Jun 2017 16:04:00 +0200
Subject: thesis/thesis.tex: Fixing TOC with tocloft package. Adding more
 acronyms. Adding more colors for publisher-subscriber figure. Adding
 publisher-subscriber figure. Renaming Methods to Implementation. Revising
 Preliminaries. Revising Outline (a little).

---
 thesis/thesis.tex | 107 +++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 82 insertions(+), 25 deletions(-)

(limited to 'thesis/thesis.tex')

diff --git a/thesis/thesis.tex b/thesis/thesis.tex
index 4afc5d3..3af48f2 100644
--- a/thesis/thesis.tex
+++ b/thesis/thesis.tex
@@ -25,6 +25,8 @@
 \definecolor{osc-in}{RGB}{0,0,255}
 \definecolor{audio-in}{RGB}{255,0,0}
 \definecolor{audio-out}{RGB}{0,206,0}
+\definecolor{pubsub-in}{RGB}{128,0,0}
+\definecolor{controller-in}{RGB}{0,128,0}
 
 \usepackage{hyperref}
 \hypersetup{hidelinks, colorlinks = false}
@@ -33,16 +35,22 @@
 
 % glossary
 \usepackage[acronym,nonumberlist,toc]{glossaries}
+\newacronym{adat}{ADAT}{Alesis Digital Audio Tape}
+\newacronym{alsa}{ALSA}{Advanced Linux Sound Architecture}
+\newacronym{api}{API}{Application programming interface}
 \newacronym{asdf}{ASDF}{Audio Scene Description Format}
 \newacronym{bs}{BS}{Binaural Synthesis}
 \newacronym{brs}{BRS}{Binaural Room Synthesis}
 \newacronym{cnmat}{CNMAT}{Center for New Music and Audio Technologies}
 \newacronym{gpl}{GPL}{GNU General Public License}
 \newacronym{lgpl}{LGPL}{GNU Lesser General Public License}
+\newacronym{lts}{LTS}{Long Term Support}
 \newacronym{hoa}{HOA}{Higher Order Ambisonics}
 \newacronym{ip}{IP}{Internet Protocol}
 \newacronym{jack}{JACK}{JACK Audio Connection Kit}
+\newacronym{madi}{MADI}{Multichannel Audio Digital Interface}
 \newacronym{oop}{OOP}{Object-oriented Programming}
+\newacronym{os}{OS}{Operating System}
 \newacronym{osc}{OSC}{Open Sound Control}
 \newacronym{posix}{POSIX}{Portable Operating System Interface}
 \newacronym{pubsub}{PubSub}{Publish-subscribe message pattern}
@@ -57,7 +65,8 @@
 \makeindex
 \makeglossaries
 
-
+\usepackage{tocloft}
+\setcounter{secnumdepth}{4}
 
 \graphicspath{{../images//}}
 
@@ -72,7 +81,8 @@
     {\huge\bfseries A Networking Extension for the SoundScape Renderer\par}
     \vspace{2cm}
     {\Large\itshape David Runge\par}
-    \href{dave@sleepmap.de}{dave@sleepmap.de}
+    {\large (340592)}\\
+    \href{dave@sleepmap.de}{dave@sleepmap.de}\\
     \vfill
     supervised by\par
     Henrik von Coler and Stefan Weinzierl
@@ -109,6 +119,25 @@
     to turn it into a networking application for large scale \gls{wfs} setups.
   \end{abstract}
 
+  \renewcommand{\abstractname}{Zusammenfassung}
+  \begin{abstract}
+    \gls{wfs} as a technological concept has been around for
+    many years now and all over the world several institutions run small and
+    some even large scale setups ranging from single speaker lines to those
+    facilitating a couple of hundred loudspeakers respectively.\\ 
+    The still evolving implementations are driven by several rendering
+    engines, of which two free and open-source ones, namely sWONDER and
+    SoundScape Renderer, have (partially) been developed at TU Berlin.\\
+    The latter due to its current design is not yet able to render for large
+    scale setups, ie.\ those using several computers to render audio on a
+    loudspeaker setup, due to the high amount of channels.\\
+    Its solid codebase however, which additionally offers a framework for many
+    more renderering types, and the ongoing development, deems further work on
+    this application a good future investment.\\ 
+    This work is about the extension of the SoundScape Renderer's functionality
+    to turn it into a networking application for large scale \gls{wfs} setups.
+  \end{abstract}
+
   \tableofcontents
   \cleardoublepage
   \pagestyle{headings}
@@ -221,8 +250,8 @@
       available loudspeakers.
 
   \cleardoublepage
-  \section{Methods}
-    \label{sec:methods}
+  \section{Implementation}
+    \label{sec:implementation}
     The \gls{ssr}, due to its diverse set of rendering engines, which are made
     available through an extensible framework, and its relatively clean
     codebase, is a good candidate for future large scale \gls{wfs} setups. These type
@@ -264,26 +293,43 @@
     needed, be controlled via \gls{osc}.
     \subsection{Prelimenaries}
       \label{subsec:preliminaries}
-      In preparation to the work an implement a side-by-side
-      installation, using Arch Linux on a medium scale setup, facilitating the
-      \gls{wfs} system of the Electronic Studio at TU Berlin. Unfortunately the
-      proprietary Dante driver, that is used in that system is very complex to be
-      built, as well as underdeveloped and thus keeps the system from being
-      easily updated, which is needed for testing purposes (finding a suitable
-      real-time, low-latency Linux kernel), trying out new software features,
-      building new software and keeping a system safe. The driver will most
-      likely require changes to the hardware due to implemention of hardware
-      branding by the vendor and dire testing before usage.\\
-      Although eventually using a proper \gls{wfs} setup for testing will be necessary,
-      it is luckily not needed for implementing the features, as they can already
-      be worked out using two machines running Linux, \gls{jack} and the development
-      version of \gls{ssr}.\\
-      The hardware of the large scale setup at TU Berlin in H0104 is currently
-      about to be updated and therefore a valuable candidate for testing of the
-      sought after \gls{ssr} features.
+      In preparation to this work, an implemention of a side-by-side
+      installation to the \gls{os} currently driving the \gls{wfs} system setup
+      of the Electronic Studio at TU Berlin
+      \citep{website:tu-electronic_studio} was attempted for testing
+      purposes.\\
+      Arch Linux \citep{website:archlinux} was installed and configured to run
+      the medium scale setup. Unfortunately the proprietary Dante
+      \citep{website:audinate} driver for Linux, offered by Four Audio
+      \citep{website:fouraudio}, creates non-trivial circumstances for using it
+      on an up-to-date Linux kernel, due to \gls{alsa} \gls{api} changes not
+      accounted for.\\
+      While the current \gls{os} - an Ubuntu \citep{website:ubuntu} Studio
+      2012 \gls{lts} - still runs well in its own parameters, its support has run
+      out and it is therefore becoming harder, if not impossible, to build
+      newer software on it, using newer versions of free software compilers.\\
+      For research purposes however, it is desirable to be able to try new
+      kernel and software features, finding the most stable and secure setup
+      possible involving realtime enabled kernels and building new versions of
+      (spatialisation) software on a regular basis.\\
+      The hardware of the large scale setup at TU Berlin in room H0104 was
+      being updated and unusable at the time of writing. In the future it will
+      however become a valuable candidate for testing of the sought after
+      \gls{ssr} features, as its setup involves no Dante network, but is
+      instead run by several rendering computers connected to \gls{madi} and
+      \gls{adat} lightpipe enabled speaker systems.\\
+      Although a \gls{wfs} setup for testing purposes was eligible, it
+      generally is not needed for implementing (a subset of) the features
+      described in \nameref{sec:implementation}, as they can be tested using
+      two machines running Linux, \gls{jack} and a development version of
+      the \gls{ssr}.\\
     \subsection{Outline}
       \label{subsec:outline}
-      Initially extending the \gls{ssr}'s features was aimed at 
+      As described in \nameref{sec:implementation}, initially extending the
+      \gls{ssr}'s features was aimed at in the scope of creating a replacement
+      for the aging sWONDER software, enabling it to run networked instances to
+      drive a medium or large scale \gls{wfs} setup.\\
+
       \subsubsection{Remote controlling a server}
         \label{subsubsec:remote_controlling_a_server}
       \subsubsection{Remote controlling clients}
@@ -312,6 +358,17 @@
       This system enables a versatile messaging layout, in which components can
       call the publisher functionality in Controller, which in turn will send
       out messages to all of its subscribers.
+      \begin{figure}[!htb]
+        \centering
+        \includegraphics[scale=0.6, trim = 6mm 91mm 12mm 10mm, clip]
+        {ssr-publisher-with-all-subscribers.pdf}
+        \caption{A diagram depicting a simplified version of the \gls{pubsub}
+          used within the \gls{ssr}.\\
+          {\color{pubsub-in}\textbf{--}} Calls from Publisher to Subscriber
+          {\color{controller-in}\textbf{--}} Calls Subscribers to Controller (Publisher)
+        }
+        \label{fig:ssr-publisher-with-all-subscribers}
+      \end{figure}
 
     \subsection{IP interface}
       \label{subsec:ip-interface}
@@ -360,7 +417,7 @@
       SuperCollider \citep{website:supercollider}) since then.\\
       \gls{osc}'s syntax is defined by several parts, which are discussed
       briefly in this section.\\
-      /begin{itemize}
+      \begin{itemize}
         \item Atomic data types, which are also reflected in type tags (see
           Table~\ref{tab:ssr-osc-data-type-acronyms} for details)
         \item Address patterns (a \gls{osc}-string starting with a “/”)
@@ -372,7 +429,7 @@
         \item Bundles, consisting of a set of Messages.
         \item Packets, the unit of transmission (sent over \gls{udp} or
           \gls{tcp}), consisting of a message or a bundle.
-      /end{itemize}
+      \end{itemize}
       According to the specification, applications sending \gls{osc} packets
       are considered a client and the ones receiving packets a server.
       Applications can therefore be client and server at the same time.
@@ -870,7 +927,7 @@
             Table~\ref{tab:ssr-osc-processing-tracker-transport},
             Table~\ref{tab:ssr-osc-scene} and Table~\ref{tab:ssr-osc-source}.
           }
-          \label{tab:ssr-osc-source}
+          \label{tab:ssr-osc-update}
         \end{table}
 
   \cleardoublepage
-- 
cgit v1.2.3-54-g00ecf

