From a44cfb4d246780240ca61b0e2f58da88176dcf25 Mon Sep 17 00:00:00 2001
From: David Runge <dave@sleepmap.de>
Date: Sun, 11 Jun 2017 22:11:42 +0200
Subject: thesis/thesis.tex: Adding tables about the OSC interface and its
 messages.

---
 thesis/thesis.tex | 348 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 348 insertions(+)

(limited to 'thesis/thesis.tex')

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}
-- 
cgit v1.2.3-54-g00ecf

