summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Runge <dave@sleepmap.de>2017-07-13 16:49:31 +0200
committerDavid Runge <dave@sleepmap.de>2017-07-13 16:49:31 +0200
commit7582fa73d16de7b05bbd793ecd266d2cb2733d5d (patch)
tree687ff75b11bc7485d560138dd543a9108ef372a6
parent6eeb072c1b3d8157ba784c134ebb02b67e5547f8 (diff)
downloadmaster-thesis-7582fa73d16de7b05bbd793ecd266d2cb2733d5d.tar.gz
master-thesis-7582fa73d16de7b05bbd793ecd266d2cb2733d5d.tar.bz2
master-thesis-7582fa73d16de7b05bbd793ecd266d2cb2733d5d.tar.xz
master-thesis-7582fa73d16de7b05bbd793ecd266d2cb2733d5d.zip
thesis/thesis.tex: Applying updates from external commenter (thx Henrik!) to 1,2,4. Adding /alive message.
-rw-r--r--thesis/thesis.tex76
1 files changed, 45 insertions, 31 deletions
diff --git a/thesis/thesis.tex b/thesis/thesis.tex
index f737290..d8f4bbe 100644
--- a/thesis/thesis.tex
+++ b/thesis/thesis.tex
@@ -216,10 +216,10 @@ parskip=never]{paper}
\label{sec:introduction}
From the early days of stereo audio reproduction onwards, different kinds
of spatial audio reproduction techniques have been developed and
- established, bridging the gap between plain stereophony and massive
- three-dimensional, multi-channel setups.
+ established. Leading from plain stereophony to three-dimensional,
+ multi-channel setups.
Their applications range from research to artistic and conventionally
- commercial fields, such as (home) cinema.\\
+ commercial fields, such as cinema and home entertainment.\\
With the rise of dynamic two and three-dimensional rendering algorithms
(see~\ref{subsec:spatialaudiorenderingalgorithms}), the need for
@@ -254,11 +254,22 @@ parskip=never]{paper}
\cleardoublepage
\section{Free and open-source spatial audio renderers}
\label{sec:freespatialaudiorenderers}
+ \gls{jack} \citep{website:jackaudio2016} is a low-latency audio server,
+ that allows for software using its environment to connect their in- and
+ outputs with any other application using it. It is licensed under the
+ \gls{gpl} and can be built for various \glspl{os} (e.g. Linux, Mac OSX,
+ Windows). As of today, a plethora of applications exist, that extend
+ \gls{jack}'s functionality graphically, or make use of it musically and
+ productively. Due to a large set of audio drivers it can use (i.e.
+ \gls{alsa}, coreaudio, freebob, oss sun and portaudio) and its general
+ availability, the audio server has become the de-facto standard for free
+ and open-source, production ready applications on all major \glspl{os}.\\
To date there exist five (known of) free and open-source spatial audio
- renderers, which are all \gls{jack} \citep{website:jackaudio2016} clients:
+ renderers, which are all \gls{jack} clients:
+
\begin{itemize}
- \item sWONDER \citep{website:swonder2016}, developed at the
- \gls{tu-berlin} , Germany
+ \item sWONDER \citep{baalman2007}, developed at the \gls{tu-berlin},
+ Germany
\item WFSCollider \citep{website:wfscollider}, developed by the Game Of
Life Foundation \citep{website:gameoflife}, The Hague, Netherlands
\item HoaLibrary for \gls{pd} \citep{github:hoalibraryforpd} developed at
@@ -270,6 +281,7 @@ parskip=never]{paper}
Institut für Nachrichtentechnik, Universität Rostock and Division of
Applied Acoustics, Chalmers University of Technology
\end{itemize}
+
Different concepts and contexts apply to all of the renderers, which are
briefly explained in the following sections, prefixed by a section about
spatial audio rendering algorithms and followed by one about free software
@@ -494,24 +506,23 @@ parskip=never]{paper}
\gls{cc}) amongst research groups of institutions all around the world.
In an ideal world, all scientific research would be published under a
free documentation license, such as the \gls{fdl}, allowing access to
- anyone.\\
+ anyone, free of charge.\\
The software used in scientific institutions is unfortunately rarely free
- (e.g. Microsoft Exchange, Microsoft Office, Adobe Photoshop in general
- and Steinberg's Cubase, Cycling '74's Max/MSP, Avid's ProTools or
- Ableton Live in the audio production field) and additionally mostly bound
- to proprietary \glspl{os}, such as Microsoft Windows or Apple's MacOS,
+ (e.g.\ word processing, statistics, mathmatical calculations, realtime
+ audio synthesis and audio production) and additionally mostly bound to
+ proprietary \glspl{os}, such as Microsoft Windows or Apple's Mac OSX,
preventing interoperability, development and an open society.\\
- Free software however enables students and researchers to learn from the
+ However, free software enables students and researchers to learn from the
source code directly (if they can and want to), to modify (and improve)
it and to share their findings. More than with proprietary software, it
is possible to have a community develop around it, that takes care of the
project for a long time.\\
- Free software nonetheless can not be considered a silver bullet. It is
- after all only a way of developing software and not a way to grade its
- efficiency or code quality. Additionally, especially in a scientific
- context it can happen, that software is conceived by an institution, put
- to use, but afterwards not developed any further, as the programmers go
- their way (e.g. \nameref{subsec:swonder}).
+ Free software nonetheless can not be considered superior. It is after all
+ only a way of developing software and not a way to grade its efficiency
+ or code quality. Additionally it has to be noted, that especially in a
+ scientific context it can happen, that software is conceived by an
+ institution, put to use, but later lacks the developers to drive the
+ project onwards (e.g. \nameref{subsec:swonder}).
This way a high responsibility weighs on these institutions, as they
need to ensure further development on systems, not easily accessible to
the public, or not feasible for home use (e.g. \gls{wfs}). This situation
@@ -820,11 +831,11 @@ parskip=never]{paper}
2002 \citep{website:oscv1.0} and the protocol has found widespread
implementations (as libraries) in several programming languages and
through that many use-cases in free and closed audio and video related
- applications (e.g. Ardour \citep{website:ardour}, Cubase
- \citep{website:steinberg}, Max/MSP \citep{website:cycling74},
- \gls{supercollider} \citep{website:supercollider}) since then.\\
- \gls{osc}'s syntax is defined by several parts, which are discussed
- briefly in this section.\\
+ applications (e.g. Ardour \citep{website:ardour}, Max/MSP
+ \citep{website:cycling74}, \gls{supercollider}
+ \citep{website:supercollider}) since then.\\ \gls{osc}'s syntax is
+ defined by several parts, which are discussed briefly in this
+ section.\\
\begin{itemize}
\item Atomic data types, which are also reflected in type tags (see
@@ -1277,6 +1288,8 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
\textbf{Path} & \textbf{Types} & \textbf{Description} &
\textbf{Example}\\
\hline
+ \texttt{/alive} & & Alive notification from client (in response to a /poll) &
+ \texttt{[/alive]} \\
\texttt{/message\_level} & i & Set message level of sender &
\texttt{[/message\_level, 1]} \\
\texttt{/message\_level} & ssi & Set message level of a specific
@@ -1673,10 +1686,11 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
\cleardoublepage
\section{Discussion}
\label{sec:discussion}
- The \gls{osc} based networking extension created for the \gls{ssr} is a
- valuable usability improvement. Its implemented features are discussed
- further in the following section, followed by an outlook on related
- future work.\\
+ The \gls{osc} based networking extension created for the \gls{ssr} can be
+ considered a valuable usability improvement. Its implemented features are
+ discussed further in the following section, followed by an outlook on
+ related future work. The extension is additionally extensively documented
+ in the source code, to ensure the ease of further development.\\
Due to the versatility of how the \gls{ssr} can be used in a networking
context, it is likely, that some of its possibilities are not even
accounted for.
@@ -1734,8 +1748,8 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
This means, that internal (e.g.\ the \gls{pubsub} interface), or external
(e.g.\ the \gls{ip} or \gls{osc} interface) functionality might or might
not work as expected. To test the \gls{osc} interface's logical coherency
- and robustness automatically, a set of tests were written in
- \gls{sclang}.\\
+ and robustness automatically, a set of tests was written in
+ \gls{sclang}.\\
The tests are divided into those probing robustness of the \gls{osc}
interface and others probing its functionality. The robustness tests
further divide into server and client specific tests, where authorized
@@ -1810,12 +1824,12 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
\label{lst:ssr-tests-sclang-controls-client-polled}
\end{listing}\\
- In all tests for robustness, the attempt is made to break the
+ In all tests for robustness, the attempt is made to force errors in the
implementation of the \nameref{subsubsec:message_interface}. This is
achieved by purposely using ranges of data types for messages, that are
not allowed, or not defined in the \gls{ssr}'s internal
implementation.\\
- Two examples for weak spot exploitations are the use of negative
+ Two examples for weak spot exploitations were the use of negative
integers for \glspl{id} in source related messages (only non-zero,
non-negative \glspl{id} are allowed internally) or supplying an empty
string as hostname or port number for subscription messages.\\