From a44cfb4d246780240ca61b0e2f58da88176dcf25 Mon Sep 17 00:00:00 2001 From: David Runge 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(+) 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