summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--thesis/thesis.tex348
1 files changed, 348 insertions, 0 deletions
diff --git a/thesis/thesis.tex b/thesis/thesis.tex
index 1d509fc..1f150b2 100644
--- a/thesis/thesis.tex
+++ b/thesis/thesis.tex
@@ -33,6 +33,7 @@
% glossary
\usepackage[acronym,nonumberlist,toc]{glossaries}
+\newacronym{asdf}{ASDF}{Audio Scene Description Format}
\newacronym{bs}{BS}{Binaural Synthesis}
\newacronym{brs}{BRS}{Binaural Room Synthesis}
\newacronym{gpl}{GPL}{GNU General Public License}
@@ -345,6 +346,22 @@
\label{sec:results}
\subsection{Open Sound Control interface}
\label{subsec:osc-interface}
+ \begin{table}[!htb]
+ \centering
+ \begin{tabular}{ c | c }
+ \textbf{Atomic data type} & \textbf{Acronym} \\
+ int & i \\
+ float & f \\
+ true & T \\
+ false & F \\
+ string & s \\
+ char & c \\
+ \end{tabular}
+ \caption{Acronyms for atomic data types, used in \gls{osc} messages.
+ }
+ \label{tab:ssr-osc-data-type-acronyms}
+ \end{table}
+
\subsubsection{liblo}
\label{subsubsec:liblo}
Liblo \citep{website:liblo2017} is an implementation of the \gls{osc}
@@ -477,6 +494,337 @@
\label{subsubsec:layered_clients}
\subsubsection{Message interface}
\label{subsubsec:message_interface}
+ \begin{table}[!htb]
+ \scriptsize
+ \centering
+ \caption*{(Data types and their acronyms are listed in
+ Table~\ref{tab:ssr-osc-data-type-acronyms}.)
+ }
+ \begin{tabular}{ p{2cm} | p{1cm} | p{3.5cm} | p{3cm} }
+ \textbf{Path} & \textbf{Types} & \textbf{Description} &
+ \textbf{Example}\\
+ \hline
+ \texttt{/message\_level} & i & Set message level of sender &
+ \texttt{[/message\_level, 1]} \\
+ \noalign{\smallskip}
+ \texttt{/message\_level} & ssi & Set message level of a specific
+ client & \texttt{[/message\_level, “127.0.0.1”,
+ “50002”, 1]} \\
+ \noalign{\smallskip}
+ \texttt{/subscribe} & F & Unsubscribe sender & \texttt{[/subscribe,
+ false]} \\
+ \noalign{\smallskip}
+ \texttt{/subscribe} & Fss & Unsubscribe specific client &
+ \texttt{[/subscribe, false, “127.0.0.1”, “50002”]}\\
+ \noalign{\smallskip}
+ \texttt{/subscribe} & T & Subscribe sender & \texttt{[/subscribe,
+ true]} \\
+ \noalign{\smallskip}
+ \texttt{/subscribe} & Ti & Subscribe sender with specific message
+ level & \texttt{[/subscribe, true, 1]} \\
+ \noalign{\smallskip}
+ \texttt{/subscribe} & Tssi & Subscribe specific client with
+ specific message level & \texttt{[/subscribe, true, “127.0.0.1”,
+ “50002”, 1]} \\
+ \end{tabular}
+ \caption{\gls{osc} messages relevant for subscribing and setting of
+ message levels for clients.\\
+ Understood by server.
+ }
+ \label{tab:ssr-osc-subscribe}
+ \end{table}
+ \begin{table}[!htb]
+ \scriptsize
+ \centering
+ \caption*{(Data types and their acronyms are listed in
+ Table~\ref{tab:ssr-osc-data-type-acronyms}.)
+ }
+ \begin{tabular}{ p{3cm} | p{1.2cm} | p{3.5cm} | p{3cm} }
+ \textbf{Path} & \textbf{Types} & \textbf{Description} &
+ \textbf{Example}\\
+ \hline
+ \texttt{/processing/state} & F & Unset processing state &
+ \texttt{[/processing/state, false]} \\
+ \noalign{\smallskip}
+ \texttt{/processing/state} & T & Set processing state &
+ \texttt{[/processing/state, true]} \\
+ \noalign{\smallskip}
+ \texttt{/tracker/reset} & & Reset tracker &
+ \texttt{[/tracker/reset]} \\
+ \noalign{\smallskip}
+ \texttt{/transport/rewind} & & Rewind the \gls{jack} transport &
+ \texttt{[/transport/rewind]} \\
+ \noalign{\smallskip}
+ \texttt{/transport/seek} & s & Seek to time code in
+ \gls{jack} transport & \texttt{[/transport/seek, “42:00:00”]} \\
+ \noalign{\smallskip}
+ \texttt{/transport/state} & F & Unset \gls{jack} transport
+ state & \texttt{[/transport/state, false]} \\
+ \noalign{\smallskip}
+ \texttt{/transport/state} & T & Set \gls{jack} transport
+ state & \texttt{[/transport/state, true]} \\
+ \end{tabular}
+ \caption{\gls{osc} messages relevant for processing, tracker and
+ (\gls{jack}) transport related settings.\\
+ Understood by server and clients.
+ }
+ \label{tab:ssr-osc-processing-tracker-transport}
+ \end{table}
+ \begin{table}[!htb]
+ \scriptsize
+ \centering
+ \caption*{(Data types and their acronyms are listed in
+ Table~\ref{tab:ssr-osc-data-type-acronyms}.)
+ }
+ \begin{tabular}{ p{4.3cm} | p{1cm} | p{2.5cm} | p{4.3cm} }
+ \textbf{Path} & \textbf{Types} & \textbf{Description} &
+ \textbf{Example}\\
+ \hline
+ \texttt{/reference/orientation} & f & Set azimuth of reference
+ point & \texttt{[/reference/orientation, -90.0]} \\
+ \noalign{\smallskip}
+ \texttt{/reference/position} & ff & Set position of reference &
+ \texttt{[/reference/position, 1.5, 2.0]} \\
+ \noalign{\smallskip}
+ \texttt{/reference\_offset/orientation} & f & Set azimuth of
+ reference offset position &
+ \texttt{[/reference\_offset/orientation, -90.0]} \\
+ \noalign{\smallskip}
+ \texttt{/reference\_offset/position} & ff & Set position of
+ reference offset & \texttt{[/reference\_offset/position, 1.5,
+ 2.0]}\\
+ \end{tabular}
+ \caption{\gls{osc} messages relevant for reference management.\\
+ Understood by server and clients.
+ }
+ \label{tab:ssr-osc-reference}
+ \end{table}
+ \begin{table}[!htb]
+ \scriptsize
+ \centering
+ \caption*{(Data types and their acronyms are listed in
+ Table~\ref{tab:ssr-osc-data-type-acronyms}.)
+ }
+ \begin{tabular}{ p{4.5cm} | p{0.9cm} | p{2.5cm} | p{4.3cm} }
+ \textbf{Path} & \textbf{Types} & \textbf{Description} &
+ \textbf{Example} \\
+ \hline
+ \texttt{/scene/amplitude\_reference
+ \_distance} & f & Set amplitude
+ reference distance. &
+ \texttt{[/scene/amplitude\_reference
+ \_distance, 6.0]}\\
+ \noalign{\smallskip}
+ \texttt{/scene/auto\_rotate\_sources} & F & Disable automatic
+ rotation of sources. & \texttt{[/scene/auto\_rotate\_sources,
+ false]}\\
+ \noalign{\smallskip}
+ \texttt{/scene/auto\_rotate\_sources} & T & Enable automatic
+ rotation of sources. & \texttt{[/scene/auto\_rotate\_sources,
+ true]}\\
+ \noalign{\smallskip}
+ \texttt{/scene/clear} & & Delete all sources &
+ \texttt{[/scene/clear]}\\
+ \noalign{\smallskip}
+ \texttt{/scene/load} & s & Load scene from \gls{asdf} file. &
+ \texttt{[/scene/load, “example.asd”]}\\
+ \noalign{\smallskip}
+ \texttt{/scene/save} & s & Save scene to \gls{asdf} file. &
+ \texttt{[/scene/save, “example.asd”]}\\
+ \noalign{\smallskip}
+ \texttt{/scene/volume} & f & Set scene master volume. &
+ \texttt{[/scene/volume, 0.23]}\\
+ \end{tabular}
+ \caption{\gls{osc} messages relevant for scene management.\\
+ Understood by server and clients.
+ }
+ \label{tab:ssr-osc-scene}
+ \end{table}
+ \begin{table}[!htb]
+ \scriptsize
+ \centering
+ \caption*{(Data types and their acronyms are listed in
+ Table~\ref{tab:ssr-osc-data-type-acronyms}.)
+ }
+ \begin{tabular}{ p{3.5cm} | p{1.5cm} | p{2.5cm} | p{4.3cm} }
+ \textbf{Path} & \textbf{Types} & \textbf{Description} &
+ \textbf{Example} \\
+ \hline
+ \texttt{/source/delete} & i & Delete source with given id &
+ \texttt{[/source/delete, 1]}\\
+ \noalign{\smallskip}
+ \texttt{/source/file\_channel} & ii & Set a source's file channel &
+ \texttt{[/source/file\_channel, 1, 2]}\\
+ \noalign{\smallskip}
+ \texttt{/source/port\_name } & is & Set a source's \gls{jack} input
+ port name & \texttt{[/source/port\_name, 1, “system:capture\_2”]}\\
+ \noalign{\smallskip}
+ \texttt{/source/gain} & if & Set a source's gain &
+ \texttt{[/source/gain, 1, 0.2]}\\
+ \noalign{\smallskip}
+ \texttt{/source/model} & is & Set a source's model &
+ \texttt{[/source/model, 1, “point”]}\\
+ \noalign{\smallskip}
+ \texttt{/source/mute} & iF & Unmute a source &
+ \texttt{[/source/mute, 1, false]}\\
+ \noalign{\smallskip}
+ \texttt{/source/mute} & iT & Mute a source &
+ \texttt{[/source/mute, 1, true]}\\
+ \noalign{\smallskip}
+ \texttt{/source/name} & is & Set a source's name &
+ \texttt{[/source/name, 1, “Daisy”]}\\
+ \noalign{\smallskip}
+ \texttt{/source/new} & i & Create a new source stub using id &
+ \texttt{[/source/new, 1]}\\
+ \noalign{\smallskip}
+ \texttt{/source/new} & sssffffTFF & Create a new source
+ (auto-generated id) with name, model, port number, X-coordinate,
+ Y-coordinate, orientation, gain, movability, orientation movability
+ and mute status & \texttt{[/source/new, “Daisy”, “point”, “1”, 1.0,
+ 2.5, 90.0, 0.2, true, false, false]} \\
+ \noalign{\smallskip}
+ \texttt{/source/new} & sssffffisTFF & Create a new source
+ (auto-generated id) with name, model, port number, X-coordinate,
+ Y-coordinate, orientation, gain, file channel, properties file,
+ movability, orientation movability and mute status &
+ \texttt{[/source/new, “Daisy”, “point”, “1”, 1.0, 2.5, 90.0, 0.2,
+ 2, “properties.xml”, true, false, false]} \\
+ \noalign{\smallskip}
+ \texttt{/source/orientation} & if & Set a source's orientation &
+ \texttt{[/source/orientation, 1, -90.0]}\\
+ \noalign{\smallskip}
+ \texttt{/source/position} & iff & Set a source's position &
+ \texttt{[/source/position, 1, 1.5, 2.0]}\\
+ \noalign{\smallskip}
+ \texttt{/source/position\_fixed} & iF & Set a source movable &
+ \texttt{[/source/position\_fixed, 1, false]}\\
+ \noalign{\smallskip}
+ \texttt{/source/position\_fixed} & iT & Set a source immovable &
+ \texttt{[/source/position\_fixed, 1, true]}\\
+ \noalign{\smallskip}
+ \texttt{/source/properties\_file} & is & Set a source's properties
+ file & \texttt{[/source/properties\_file, 1,
+ “source-properties.xml”]}\\
+ \end{tabular}
+ \caption{\gls{osc} messages relevant for source management.\\
+ Understood by server and clients.
+ }
+ \label{tab:ssr-osc-source}
+ \end{table}
+ \begin{table}[!htb]
+ \scriptsize
+ \centering
+ \caption*{(Data types and their acronyms are listed in
+ Table~\ref{tab:ssr-osc-data-type-acronyms}.)
+ }
+ \begin{tabular}{ p{6.5cm} | p{0.9cm} | p{4.3cm} }
+ \textbf{Path} & \textbf{Types} & \textbf{Description} \\
+ \hline
+ \texttt{/update/cpu\_load} & f & CPU load changes.\\
+ \noalign{\smallskip}
+ \texttt{/update/processing/state} & T & Processing state is set.\\
+ \noalign{\smallskip}
+ \texttt{/update/processing/state} & F & Processing state is
+ unset.\\
+ \noalign{\smallskip}
+ \texttt{/update/reference/orientation} & f & Reference orientation
+ changes.\\
+ \noalign{\smallskip}
+ \texttt{/update/reference/position} & ff & Reference position
+ changes.\\
+ \noalign{\smallskip}
+ \texttt{/update/reference\_offset/orientation} & f & Reference
+ offset orientation changes.\\
+ \noalign{\smallskip}
+ \texttt{/update/reference\_offset/position} & ff & Reference offset
+ position changes.\\
+ \noalign{\smallskip}
+ \texttt{/update/scene/amplitude\_reference\_distance} & f &
+ Amplitude reference distance changes.\\
+ \noalign{\smallskip}
+ \texttt{/update/scene/auto\_rotate\_sources} & T & Auto rotation of
+ sources is set.\\
+ \noalign{\smallskip}
+ \texttt{/update/scene/auto\_rotate\_sources} & F & Auto rotation of
+ sources is unset.\\
+ \noalign{\smallskip}
+ \texttt{/update/scene/decay\_exponent} & f & The scene's decay
+ exponent has changed.\\
+ \noalign{\smallskip}
+ \texttt{/update/scene/master\_signal\_level} & f & Master signal
+ level has changed.\\
+ \noalign{\smallskip}
+ \texttt{/update/scene/sample\_rate} & i & Sample rate of the scene
+ changed.\\
+ \noalign{\smallskip}
+ \texttt{/update/scene/volume} & f & Volume of the scene has
+ changed.\\
+ \noalign{\smallskip}
+ \texttt{/update/source/delete} & i & A source with given id was
+ deleted. \\
+ \noalign{\smallskip}
+ \texttt{/update/source/file\_channel} & ii & A source's file
+ channel was set.\\
+ \noalign{\smallskip}
+ \texttt{/update/source/file\_name\_or\_port\_number} & is & A
+ source's file name or port number was set.\\
+ \noalign{\smallskip}
+ \texttt{/update/source/gain} & if & A source's gain was set.\\
+ \noalign{\smallskip}
+ \texttt{/update/source/length} & ii & A source's length was set.\\
+ \noalign{\smallskip}
+ \texttt{/update/source/level} & if & A source's output level has
+ changed.\\
+ \noalign{\smallskip}
+ \texttt{/update/source/model} & is & A source's model was set.\\
+ \noalign{\smallskip}
+ \texttt{/update/source/mute} & iF & A source was unmuted.\\
+ \noalign{\smallskip}
+ \texttt{/update/source/mute} & iT & A source was muted.\\
+ \noalign{\smallskip}
+ \texttt{/update/source/name} & is & A source's name was set.\\
+ \noalign{\smallskip}
+ \texttt{/update/source/orientation} & if & A source's orientation
+ was set. \\
+ \noalign{\smallskip}
+ \texttt{/update/source/new} & i & A new source with given id was
+ created. \\
+ \noalign{\smallskip}
+ \texttt{/update/source/port\_name} & is & A source's \gls{jack}
+ port\_name was set. \\
+ \noalign{\smallskip}
+ \texttt{/update/source/position} & iff & A source's position was
+ set. \\
+ \noalign{\smallskip}
+ \texttt{/update/source/position\_fixed} & iF & A source was set to
+ be movable. \\
+ \noalign{\smallskip}
+ \texttt{/update/source/position\_fixed} & iT & A source was set to
+ be immovable. \\
+ \noalign{\smallskip}
+ \texttt{/update/source/properties\_file} & is & A source's
+ properties\_file was set.\\
+ \noalign{\smallskip}
+ \texttt{/update/transport/seek} & s & \gls{jack} transport seeked
+ to a timecode position.\\
+ \noalign{\smallskip}
+ \texttt{/update/transport/state} & F & \gls{jack} transport was
+ stopped.\\
+ \noalign{\smallskip}
+ \texttt{/update/transport/state} & T & \gls{jack} transport was
+ started.\\
+ \end{tabular}
+ \caption{\gls{osc} messages for updating information on cpu load,
+ processing, reference, scene, source, and transport of clients on a
+ server.\\
+ Understood by server.\\
+ No examples are given, as they are mostly analogous to the ones in
+ 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}
+ \end{table}
+
\cleardoublepage
\section{Discussion}
\label{sec:discussion}