diff options
-rw-r--r-- | thesis/thesis.tex | 73 |
1 files changed, 64 insertions, 9 deletions
diff --git a/thesis/thesis.tex b/thesis/thesis.tex index 4614530..7b02882 100644 --- a/thesis/thesis.tex +++ b/thesis/thesis.tex @@ -117,14 +117,19 @@ parskip=never]{paper} description={Version 4 (legacy) of the cross-platform application framework for creating desktop applications.} } +\newglossaryentry{qt5}{ + name={Qt5}, + description={Version 5 of the cross-platform application framework for + creating desktop applications.} +} \makeglossaries \graphicspath{{../images//}} -\AtBeginDocument{\hypersetup{pdftitle = {A Networking Extension for the SoundScape Renderer}, - pdfauthor = {David Runge} +\AtBeginDocument{\hypersetup{pdftitle = {A Networking Extension for the + SoundScape Renderer}, pdfauthor = {David Runge} } } @@ -268,7 +273,7 @@ parskip=never]{paper} \end{itemize} Different concepts and contexts apply to all of the renderers, which are about to be explained briefly in the following sections, prefixed by a - section about spatial audio renderer appliances and followed by one about + section about spatial audio rendering algorithms and followed by one about free software and its pitfalls. \subsection{Spatial audio rendering algorithms} @@ -714,7 +719,9 @@ parskip=never]{paper} has to offer. Every time a function of the \gls{ssr}'s \mintinline{c++}{Controller} instance, that was inherited from \mintinline{c++}{Publisher}, is called, it will issue the call on all - of its subscribers, too.\\ + of its subscribers, too. Every message, available to the + \gls{ssr}'s~\ref{subsec:ip-interface} is therefore directly bound to + its \gls{pubsub} interface's set of functions.\\ \cleardoublepage \subsection{Open Sound Control interface} @@ -1011,7 +1018,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002” elaborated upon in \textbf{\nameref{subsubsec:message_interface}}.\\ A special networked setup, in which the server instance is not rendering any audio, is discussed in - \textbf{\nameref{subsubsec:implementing_a_nullrenderer}}. + \textbf{\nameref{subsubsec:non-renderer}}. \paragraph{Client-Server, shared rendering} \label{para:client_server_shared_rendering} @@ -1491,7 +1498,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002” } \label{tab:ssr-osc-source} \end{table} - + \noindent A client instance (see~\ref{para:client-instance}) will only respond to the \textit{direct} messages listed in Table~\ref{tab:ssr-osc-client-poll-message-level} @@ -1583,7 +1590,7 @@ ssr-aap -N “server” -C “127.0.0.1:50002” \label{tab:ssr-osc-update} \end{table} - \cleardoublepage + \cleardoublepage \subsubsection{Workflow Examples} \label{subsubsec:workflow_examples} @@ -1786,12 +1793,40 @@ 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.\\ + Due to the versatility of how the \gls{ssr} can be used in a networking + context, its likely, that some of its possibilities are not even accounted + for. + \subsection{Implemented Features} \label{subsec:implemented_features} + \subsection{Future Work} \label{subsec:future_work} - \subsubsection{Implementing a NullRenderer} - \label{subsubsec:implementing_a_nullrenderer} + Several features, interesting for different use-cases, could not be + implemented in the time frame set for this work. They are however + complementary to the \gls{osc} networking extension, or can be + implemented on top of it.\\ + + \subsubsection{Non-renderer} + \label{subsubsec:non-renderer} + The \gls{ssr} features a \gls{gui}, that was in the process of being + upgraded for \gls{qt5} at the time of writing. Future versions of the + software could be used to also display setups of networking + instances, instead of only displaying the locally running.\\ + The implementation could be desirable for massive multi-channel setups + and simply switching between several (local or network-attached) + \gls{ssr} instances alike.\\ + The functionalities of the \gls{ssr}'s \gls{gui}, its several spatial + audio renderers and \gls{osc} interface (amongst other parts) are + determined by its \gls{pubsub}. For the \gls{gui} part of the software + to display information about a networked setup, or even switch between + several of them, it is therefore not needed or even desirable for that + instance to render audio at all.\\ + \begin{figure}[!htb] \centering \includegraphics[scale=1.0, trim = 20mm 204mm 10mm 10mm, clip] @@ -1808,6 +1843,17 @@ ssr-aap -N “server” -C “127.0.0.1:50002” } \label{fig:ssr-client-server-clients-only-shared-output} \end{figure} + + Figure~\ref{fig:ssr-client-server-clients-only-shared-output} + illustrates a scenario, in which a server instance is used to control a + set of \textit{n} clients, that collectively render audio (e.g.\ on a + large scale \gls{wfs} or \gls{nfc-hoa} system). In contrast to the + client instances, the server does not render any audio (i.e.\ has no + outputs) and might not even need any audio input.\\ + The server in this example could also be a client, subscribed to a + server instance in a cluster similar to the one in + Figure~\ref{fig:ssr-external-client-server-shared-output}. + \begin{figure}[!htb] \centering \includegraphics[scale=1.0, trim = 20mm 204mm 10mm 10mm, clip] @@ -1824,7 +1870,16 @@ ssr-aap -N “server” -C “127.0.0.1:50002” } \label{fig:ssr-client-server-clients-only-separate-output} \end{figure} + + The example shown in + Figure~\ref{fig:ssr-client-server-clients-only-separate-output} is + similar to the aforementioned, with the difference, that its \textit{n} + clients render audio on separate systems.\\ + This could be a set of + + \cleardoublepage + \subsubsection{Implementing AlienLoudspeaker} \label{subsubsec:implementing_alienloudspeaker} |