From 7582fa73d16de7b05bbd793ecd266d2cb2733d5d Mon Sep 17 00:00:00 2001 From: David Runge Date: Thu, 13 Jul 2017 16:49:31 +0200 Subject: thesis/thesis.tex: Applying updates from external commenter (thx Henrik!) to 1,2,4. Adding /alive message. --- thesis/thesis.tex | 76 ++++++++++++++++++++++++++++++++----------------------- 1 file 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.\\ -- cgit v1.2.3-54-g00ecf