summaryrefslogtreecommitdiffstats
path: root/thesis
diff options
context:
space:
mode:
Diffstat (limited to 'thesis')
-rw-r--r--thesis/thesis.tex78
1 files changed, 36 insertions, 42 deletions
diff --git a/thesis/thesis.tex b/thesis/thesis.tex
index b8f7670..e3bc36e 100644
--- a/thesis/thesis.tex
+++ b/thesis/thesis.tex
@@ -374,7 +374,7 @@ parskip=never]{paper}
massive multi-loudspeaker setups.\\
\cleardoublepage
- \section{Free and open-source spatial audio renderers}
+ \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
@@ -409,7 +409,7 @@ parskip=never]{paper}
spatial audio rendering algorithms and followed by one about free software
and its pitfalls.
- \subsection{Spatial audio rendering algorithms}
+ \subsection{Spatial Audio Rendering Algorithms}
\label{subsec:spatialaudiorenderingalgorithms}
In the following subsections several spatial audio rendering
algorithms are introduced briefly.
@@ -442,7 +442,7 @@ parskip=never]{paper}
listener towards it.
\subsubsection{(Higher Order) Ambisonics Amplitude Panning and
- Near-field-compensated Higher Order Ambisonics}
+ Near-Field-Compensated Higher Order Ambisonics}
\label{subsubsec:aapandnfchoa}
\gls{aap} and \gls{hoa} are spatial rendering algorithms, that
reproduce audio on multi-speaker setups. Those are usually circular or
@@ -622,7 +622,7 @@ parskip=never]{paper}
several computers, while these instances serve a subset of the
available loudspeakers.
- \subsection{Why free software matters and what its pitfalls are}
+ \subsection{Why Free Software Matters and What Its Pitfalls Are}
\label{subsec:whyfreesoftwarematters}
Free software is the terminology for software published under a free
license. Licenses, such as the \gls{gpl} are considered free, because
@@ -740,7 +740,7 @@ parskip=never]{paper}
machines running Linux, \gls{jack} and a development version of the
\gls{ssr}.\\
- \subsubsection{Remote controlling a server}
+ \subsubsection{Remote Controlling a Server}
\label{subsubsec:remote_controlling_a_server}
A \gls{ssr} server instance in the notion of a medium to large scale
reproduction setup is supposed to have a set of \textit{n}
@@ -755,7 +755,7 @@ parskip=never]{paper}
as a client would. It should be able to receive messages from its
clients and act upon them (e.g.\ updating \gls{gui} elements).
- \subsubsection{Remote controlling clients}
+ \subsubsection{Remote Controlling Clients}
\label{subsubsec:remote_controlling_a_client}
A \gls{ssr} client can either be local (on the same machine) or
somewhere on the same network, as the server or application controlling
@@ -765,7 +765,7 @@ parskip=never]{paper}
server or the application controlling it, upon receiving a valid
message.
- \subsubsection{Rendering on dedicated speakers}
+ \subsubsection{Rendering on Dedicated Speakers}
\label{subsubsec:rendering_on_dedicated_speakers}
In a medium or large scale setup, \textit{n} clients collectively
render audio on \textit{l} loudspeakers, while all should be using the
@@ -777,7 +777,7 @@ parskip=never]{paper}
client will only render on its specifically assigned subset of size
\textit{c} of the \textit{n} loudspeakers.
- \subsection{Publisher/Subscriber interface}
+ \subsection{Publisher/Subscriber Interface}
\label{subsec:publisher_subscriber_interface}
The \gls{ssr} internally uses a \gls{pubsub}, which is a design pattern
to implement control through and over several parts of its components.\\
@@ -836,7 +836,7 @@ parskip=never]{paper}
utilities \mintinline{c++}{OscReceiver} and
\mintinline{c++}{CommandParser} (respectively).
- \subsection{IP interface}
+ \subsection{IP Interface}
\label{subsec:ip-interface}
The \gls{ssr} from early on incorporated a network interface, that
accepts specially terminated \gls{xml}-formatted strings over a \gls{tcp}
@@ -867,7 +867,7 @@ parskip=never]{paper}
(\textit{SLAXML}\footnote{\href{https://github.com/Phrogz/SLAXML}
{https://github.com/Phrogz/SLAXML}}).
- \subsubsection{Sending and receiving}
+ \subsubsection{Sending and Receiving}
\label{subsubsec:sending_and_receiving}
As mentioned in section~\ref{subsec:publisher_subscriber_interface},
the \mintinline{c++}{NetworkSubscriber} class (part of the \gls{ip}
@@ -882,7 +882,7 @@ parskip=never]{paper}
its \gls{pubsub} interface's set of functions.\\
\cleardoublepage
- \subsection{Open Sound Control interface}
+ \subsection{Open Sound Control Interface}
\label{subsec:osc-interface}
The networking interface conceived in the course of this work was
developed in several branches, using the git version control system
@@ -1048,7 +1048,7 @@ parskip=never]{paper}
non-standard types \textit{True} and \textit{False} alongside the
standard-types.
- \subsubsection{liblo}
+ \subsubsection{Liblo}
\label{subsubsec:liblo}
Liblo \citep{website:liblo2017} is an implementation of the \gls{osc}
protocol for \gls{posix} systems. It was initially developed by Steve
@@ -1099,7 +1099,7 @@ parskip=never]{paper}
\nameref{subsec:publisher_subscriber_interface} can be found in
\textbf{\nameref{subsubsec:message_interface}}.
- \paragraph{Client instance}
+ \paragraph{Client Instance}
\label{para:client-instance}
By default the \gls{ssr} is started as an \gls{osc} client on network
port 50001 and only allows using ephemeral ports (in the range
@@ -1126,7 +1126,7 @@ ssr-binaural -p “50002”
application to control the client instance to the full extent via
\gls{osc}.
- \paragraph{Server instance}
+ \paragraph{Server Instance}
\label{para:server-instance}
With the help of the \textbf{-N} flag, it is possible to start the
\gls{ssr} as an \gls{osc} server. Additionally, the flag can be used
@@ -1195,7 +1195,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
rendering any audio, is discussed in
\textbf{\nameref{subsubsec:non-renderer}}.
- \paragraph{Client-Server, shared rendering}
+ \paragraph{Client-Server, Shared Rendering}
\label{para:client_server_shared_rendering}
In Figure~\ref{fig:ssr-client-server-shared-output}, the setup shows
\textit{1} to \textit{n} client instances, controlled by a server
@@ -1259,7 +1259,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
(acting as another client).
\cleardoublepage
- \paragraph{Client-Server, separate rendering}
+ \paragraph{Client-Server, Separate Rendering}
\label{para:client_server_separate_rendering}
As shown in Figure~\ref{fig:ssr-client-server-separate-output}, it is
possible to have a setup, in which, similar to the one described in
@@ -1316,7 +1316,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
\end{figure}
\cleardoublepage
- \paragraph{Clients only}
+ \paragraph{Clients Only}
\label{para:clients_only}
Using the new \gls{osc} interface, it is also possible to have
client-only setups, in which an \gls{osc} capable application mimics
@@ -1373,7 +1373,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
\end{figure}
\cleardoublepage
- \subsubsection{Message levels}
+ \subsubsection{Message Levels}
\label{subsubsec:message_levels}
To be able to distinguish between types of
clients and servers, several message levels were implemented for the
@@ -1425,7 +1425,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
How the setting up of message levels is achieved, is further elaborated
in the following section.
- \subsubsection{Message interface}
+ \subsubsection{Message Interface}
\label{subsubsec:message_interface}
\gls{osc} offers the possibility of a hierarchical path tree that can
be used to group messages by type (i.e.\ context). In conjunction with
@@ -1815,7 +1815,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
simple workflows using \gls{sclang} and should therefore be \gls{os}
agnostic.\\
- \paragraph{Controlling a server}
+ \paragraph{Controlling a Server}
\label{para:controlling_a_server}
\begin{listing}[!htb]
@@ -1839,7 +1839,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
The server instance will relay valid messages to all of its active
clients.
- \paragraph{Server mimicry}
+ \paragraph{Server Mimicry}
\label{para:server_mimicry}
\begin{listing}[!htb]
@@ -1927,7 +1927,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
further elaborates on the overall functionality and feasibility of the
message interface.
- \subsection{Automated tests}
+ \subsection{Automated Tests}
\label{subsec:automated_tests}
The \gls{ssr} was developed without the help of a test framework, which
is responsible to test its components, after they have been changed.
@@ -2035,7 +2035,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
set of sanity checks were implemented, that only allow for a received
message to be processed, if all of its components fit the requirements.
- \subsubsection{Functionality and operability}
+ \subsubsection{Functionality and Operability}
\label{subsubsec:functionality_and_operability}
\begin{listing}[!htb]
@@ -2190,7 +2190,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
\cleardoublepage
- \subsubsection{Alien loudspeaker}
+ \subsubsection{Alien Loudspeaker}
\label{subsubsec:alien_loudspeaker}
For the examples given in
Figure~\ref{fig:ssr-client-server-shared-output}
@@ -2239,7 +2239,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
rather improvement, as it also requires tests in medium and large scale
setups, to ensure a discrete rendering, as if only using one host.
- \subsubsection{Status messages}
+ \subsubsection{Status Messages}
\label{subsubsec:status_messages}
When reflecting about different use cases for networking setups
involving the \gls{ssr}, it became apparent, that in certain
@@ -2260,7 +2260,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
information. A special case of this feature is described
in~\ref{subsubsec:scene_transfer}.
- \subsubsection{Scene transfer}
+ \subsubsection{Scene Transfer}
\label{subsubsec:scene_transfer}
The \gls{ip} interface of the \gls{ssr} implements a functionality to
transfer all information related to a scene as a \gls{xml} formatted
@@ -2297,7 +2297,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
scenes, using \gls{osc}, would further improve usability, as the
description files only have to be in one place.
- \subsubsection{Assigning in- and outputs on the fly}
+ \subsubsection{Assigning In- and Outputs on the Fly}
\label{subsubsec:assigning_in_and_outputs_on_the_fly}
The \gls{ssr}, being a \gls{jack} client, is able to add inputs for its
sources and outputs for its renderers according to the configuration
@@ -2341,7 +2341,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
see experimental setup in attachment of
\citet{mastersthesis:grigoriev2017}).
- \subsubsection{Interpolation of moving sources}
+ \subsubsection{Interpolation of Moving Sources}
\label{subsubsec:interpolation_of_moving_sources}
Using the \gls{ip} or \gls{osc} interface, it is possible to move
sources in a scene to a new location. Unlike sWONDER
@@ -2370,7 +2370,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
the \gls{ssr}. In~\ref{subsubsec:dynamic_scene} a wider approach to
this problem is discussed.
- \subsubsection{Dynamic scene}
+ \subsubsection{Dynamic Scene}
\label{subsubsec:dynamic_scene}
When using the \gls{ssr} in a more artistic context, such as musical
scores, or in experiment environments dealing with moving sources, this
@@ -2410,7 +2410,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
combined with a \gls{ssr} backend, as it lacks a tool for creation and
controlling of dynamic content.
- \subsubsection{Network enabled head tracking}
+ \subsubsection{Network Enabled Head Tracking}
\label{subsubsec:network_enabled_headtracking}
Due to the higher availability of sensors, microcontrollers and
embedded systems in recent years, it has become very affordable to
@@ -2441,13 +2441,13 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
\cleardoublepage
\begin{appendices}
- \section{PDF version}
+ \section{PDF Version}
\label{appendix:pdf_version}
The PDF version of this work can be found on
the~\nameref{digital_ressource} as the file
\mintinline{shell}{master-thesis/thesis/thesis.pdf}.
- \section{LaTeX sources}
+ \section{LaTeX Sources}
\label{appendix:latex_sources}
The {\LaTeX} sources for this work can be found on the
\nameref{digital_ressource} in the file
@@ -2456,13 +2456,13 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
All graphics used in this work can be found in
\mintinline{shell}{master-thesis/images}.
- \section{Thesis bibliography}
+ \section{Thesis Bibliography}
\label{appendix:thesis_bibliography}
The references used in this work, if not in the form of a website, can be
found on the \nameref{digital_ressource} in the folder
\mintinline{shell}{master-thesis/src}.
- \section{OSC interface source code}
+ \section{OSC Interface Source Code}
\label{appendix:osc_interface_source_code}
All C++ source code written for the \gls{osc} interface can be found on
the~\nameref{digital_ressource} in the folder
@@ -2533,7 +2533,7 @@ git diff master...networking-with-osc
and~\ref{lst:git-diff-branch} can be applied analogous to the other
branches.
- \section{SuperCollider scripts}
+ \section{SuperCollider Scripts}
\label{appendix:supercollider_scripts}
The \gls{supercollider} code written for the tests
(see~\ref{subsec:automated_tests}) and workflows
@@ -2543,7 +2543,7 @@ git diff master...networking-with-osc
For using the scripts, \gls{supercollider} version 3.7, or above is
recommended.
- \section{Reproduction setup changes}
+ \section{Reproduction Setup Changes}
\label{appendix:reproduction_setup_changes}
\begin{listing}[!htb]
\begin{mdframed}
@@ -2574,18 +2574,12 @@ git diff master...networking-with-osc
\printglossaries
\newpage
- \phantomsection
- \addcontentsline{toc}{section}{\listfigurename}
\listoffigures
\newpage
- \phantomsection
- \addcontentsline{toc}{section}{\listlistingname}
\listoflistings
\newpage
- \phantomsection
- \addcontentsline{toc}{section}{\listtablename}
\listoftables
\newpage