annotate docs/SMC15/smc2015template.tex @ 712:fef9e8337cfd

Merge and rebuild pdf.
author Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk>
date Fri, 10 Apr 2015 10:20:52 +0100
parents b95d1ede4c91 bbc4dc6963aa
children 55e8ab191227
rev   line source
BrechtDeMan@697 1 % -----------------------------------------------
BrechtDeMan@697 2 % Template for SMC 2012
BrechtDeMan@697 3 % adapted from the template for SMC 2011, which was adapted from that of SMC 2010
BrechtDeMan@697 4 % -----------------------------------------------
BrechtDeMan@697 5
BrechtDeMan@697 6 \documentclass{article}
BrechtDeMan@697 7 \usepackage{smc2015}
BrechtDeMan@697 8 \usepackage{times}
BrechtDeMan@697 9 \usepackage{ifpdf}
BrechtDeMan@697 10 \usepackage[english]{babel}
BrechtDeMan@697 11 \usepackage{cite}
BrechtDeMan@697 12
BrechtDeMan@697 13 %%%%%%%%%%%%%%%%%%%%%%%% Some useful packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BrechtDeMan@697 14 %%%%%%%%%%%%%%%%%%%%%%%% See related documentation %%%%%%%%%%%%%%%%%%%%%%%%%%
BrechtDeMan@697 15 %\usepackage{amsmath} % popular packages from Am. Math. Soc. Please use the
BrechtDeMan@697 16 %\usepackage{amssymb} % related math environments (split, subequation, cases,
BrechtDeMan@697 17 %\usepackage{amsfonts}% multline, etc.)
BrechtDeMan@697 18 %\usepackage{bm} % Bold Math package, defines the command \bf{}
BrechtDeMan@697 19 %\usepackage{paralist}% extended list environments
BrechtDeMan@697 20 %%subfig.sty is the modern replacement for subfigure.sty. However, subfig.sty
BrechtDeMan@697 21 %%requires and automatically loads caption.sty which overrides class handling
BrechtDeMan@697 22 %%of captions. To prevent this problem, preload caption.sty with caption=false
BrechtDeMan@697 23 %\usepackage[caption=false]{caption}
BrechtDeMan@697 24 %\usepackage[font=footnotesize]{subfig}
BrechtDeMan@697 25
BrechtDeMan@697 26
BrechtDeMan@697 27 %user defined variables
BrechtDeMan@702 28 \def\papertitle{APE FOR WEB: A BROWSER-BASED EVALUATION TOOL FOR AUDIO} %?
BrechtDeMan@702 29 \def\firstauthor{Nicholas Jillings}
BrechtDeMan@702 30 \def\secondauthor{Brecht De Man}
BrechtDeMan@697 31 \def\thirdauthor{David Moffat}
BrechtDeMan@697 32 \def\fourthauthor{Joshua D. Reiss}
BrechtDeMan@697 33
BrechtDeMan@697 34 % adds the automatic
BrechtDeMan@697 35 % Saves a lot of ouptut space in PDF... after conversion with the distiller
BrechtDeMan@697 36 % Delete if you cannot get PS fonts working on your system.
BrechtDeMan@697 37
BrechtDeMan@697 38 % pdf-tex settings: detect automatically if run by latex or pdflatex
BrechtDeMan@697 39 \newif\ifpdf
BrechtDeMan@697 40 \ifx\pdfoutput\relax
BrechtDeMan@697 41 \else
BrechtDeMan@697 42 \ifcase\pdfoutput
BrechtDeMan@697 43 \pdffalse
BrechtDeMan@697 44 \else
BrechtDeMan@697 45 \pdftrue
BrechtDeMan@697 46 \fi
BrechtDeMan@697 47
BrechtDeMan@697 48 \ifpdf % compiling with pdflatex
BrechtDeMan@697 49 \usepackage[pdftex,
BrechtDeMan@697 50 pdftitle={\papertitle},
BrechtDeMan@697 51 pdfauthor={\firstauthor, \secondauthor, \thirdauthor},
BrechtDeMan@697 52 bookmarksnumbered, % use section numbers with bookmarks
BrechtDeMan@697 53 pdfstartview=XYZ % start with zoom=100% instead of full screen;
BrechtDeMan@697 54 % especially useful if working with a big screen :-)
BrechtDeMan@697 55 ]{hyperref}
BrechtDeMan@697 56 %\pdfcompresslevel=9
BrechtDeMan@697 57
BrechtDeMan@697 58 \usepackage[pdftex]{graphicx}
BrechtDeMan@697 59 % declare the path(s) where your graphic files are and their extensions so
BrechtDeMan@697 60 %you won't have to specify these with every instance of \includegraphics
BrechtDeMan@697 61 \graphicspath{{./figures/}}
BrechtDeMan@697 62 \DeclareGraphicsExtensions{.pdf,.jpeg,.png}
BrechtDeMan@697 63
BrechtDeMan@697 64 \usepackage[figure,table]{hypcap}
BrechtDeMan@697 65
BrechtDeMan@697 66 \else % compiling with latex
BrechtDeMan@697 67 \usepackage[dvips,
BrechtDeMan@697 68 bookmarksnumbered, % use section numbers with bookmarks
BrechtDeMan@697 69 pdfstartview=XYZ % start with zoom=100% instead of full screen
BrechtDeMan@697 70 ]{hyperref} % hyperrefs are active in the pdf file after conversion
BrechtDeMan@697 71
BrechtDeMan@697 72 \usepackage[dvips]{epsfig,graphicx}
BrechtDeMan@697 73 % declare the path(s) where your graphic files are and their extensions so
BrechtDeMan@697 74 %you won't have to specify these with every instance of \includegraphics
BrechtDeMan@697 75 \graphicspath{{./figures/}}
BrechtDeMan@697 76 \DeclareGraphicsExtensions{.eps}
BrechtDeMan@697 77
BrechtDeMan@697 78 \usepackage[figure,table]{hypcap}
BrechtDeMan@697 79 \fi
BrechtDeMan@697 80
BrechtDeMan@697 81 %setup the hyperref package - make the links black without a surrounding frame
BrechtDeMan@697 82 \hypersetup{
BrechtDeMan@697 83 colorlinks,%
BrechtDeMan@697 84 citecolor=black,%
BrechtDeMan@697 85 filecolor=black,%
BrechtDeMan@697 86 linkcolor=black,%
BrechtDeMan@697 87 urlcolor=black
BrechtDeMan@697 88 }
BrechtDeMan@697 89
BrechtDeMan@697 90
BrechtDeMan@697 91 % Title.
BrechtDeMan@697 92 % ------
BrechtDeMan@697 93 \title{\papertitle}
BrechtDeMan@697 94
BrechtDeMan@697 95 % Authors
BrechtDeMan@697 96 % Please note that submissions are NOT anonymous, therefore
BrechtDeMan@697 97 % authors' names have to be VISIBLE in your manuscript.
BrechtDeMan@697 98 %
BrechtDeMan@697 99 % Single address
BrechtDeMan@697 100 % To use with only one author or several with the same address
BrechtDeMan@697 101 % ---------------
BrechtDeMan@697 102 %\oneauthor
BrechtDeMan@697 103 % {\firstauthor} {Affiliation1 \\ %
BrechtDeMan@697 104 % {\tt \href{mailto:author1@smcnetwork.org}{author1@smcnetwork.org}}}
BrechtDeMan@697 105
BrechtDeMan@697 106 %Two addresses
BrechtDeMan@697 107 %--------------
BrechtDeMan@697 108 % \twoauthors
BrechtDeMan@697 109 % {\firstauthor} {Affiliation1 \\ %
BrechtDeMan@697 110 % {\tt \href{mailto:author1@smcnetwork.org}{author1@smcnetwork.org}}}
BrechtDeMan@697 111 % {\secondauthor} {Affiliation2 \\ %
BrechtDeMan@697 112 % {\tt \href{mailto:author2@smcnetwork.org}{author2@smcnetwork.org}}}
BrechtDeMan@697 113
BrechtDeMan@702 114
BrechtDeMan@702 115
BrechtDeMan@702 116 % FIX!!!
BrechtDeMan@697 117 \fourauthors
BrechtDeMan@697 118 {\firstauthor} {%Affiliation1 \\
BrechtDeMan@702 119 {\tt \href{mailto:b.deman@qmul.ac.uk}{n.g.r.jillings@se14.qmul.ac.uk, }}}
BrechtDeMan@697 120 {\secondauthor} {%Affiliation2\\ %
BrechtDeMan@702 121 {\tt \href{mailto:n.g.r.jillings@se14.qmul.ac.uk}{\{b.deman,}}}
BrechtDeMan@697 122 {\thirdauthor} {%Affiliation3\\ %
BrechtDeMan@702 123 {\tt \href{mailto:d.j.moffat@qmul.ac.uk}{d.j.moffat, }}}
BrechtDeMan@697 124 {\fourthauthor} {%Affiliation4\\ %
BrechtDeMan@702 125 {\tt \href{mailto:joshua.reiss@qmul.ac.uk}{joshua.reiss\}@qmul.ac.uk}}}
BrechtDeMan@697 126
BrechtDeMan@697 127 % ***************************************** the document starts here ***************
BrechtDeMan@697 128 \begin{document}
BrechtDeMan@697 129 %
BrechtDeMan@697 130 \capstartfalse
BrechtDeMan@697 131 \maketitle
BrechtDeMan@697 132 \capstarttrue
BrechtDeMan@697 133 %
BrechtDeMan@697 134 \begin{abstract}
BrechtDeMan@697 135 Place your abstract at the top left column on the first page.
BrechtDeMan@697 136 Please write about 150-200 words that specifically highlight the purpose of your work,
BrechtDeMan@697 137 its context, and provide a brief synopsis of your results.
BrechtDeMan@702 138 Avoid equations in this part.\\
BrechtDeMan@702 139 TOTAL PAPER: Minimum 4 pages, 6 preferred, max. 8 (6 for demos/posters)\\
BrechtDeMan@697 140 \end{abstract}
BrechtDeMan@697 141 %
BrechtDeMan@697 142
BrechtDeMan@697 143 \section{Introduction}\label{sec:introduction}
BrechtDeMan@697 144
BrechtDeMan@702 145 background (types of research where this type of perceptual evaluation of audio is relevant)\\
BrechtDeMan@702 146
BrechtDeMan@702 147 multiple stimulus perceptual evaluation (reference to Bech etc.)\\
BrechtDeMan@702 148
BrechtDeMan@702 149 prior work: \cite{deman2014b} in MATLAB, much less easy to deploy, and often stops working due to version updates \\
BrechtDeMan@702 150
BrechtDeMan@697 151 goal, what are we trying to do? \\
BrechtDeMan@697 152
BrechtDeMan@702 153 [Previously, due to limited functionality of HTML, ..., it was not possible to design this type of interfaces with such high quality audio... ]
BrechtDeMan@697 154
BrechtDeMan@697 155
BrechtDeMan@702 156 \section{Design considerations}\label{sec:designconsiderations}
BrechtDeMan@697 157
BrechtDeMan@702 158 We present a browser-based perceptual evaluation tool for audio that ... \\
BrechtDeMan@697 159
BrechtDeMan@702 160 see \cite{deman2014b}: requirements informed by research on music production (see my work and that of others' in the group), such as randomisation, playback of high quality audio, some degree of flexibility in terms of configuration, ... \\
BrechtDeMan@702 161
BrechtDeMan@702 162
BrechtDeMan@702 163 \section{Implementation}\label{sec:implementation}
n@704 164 %[Nick???]
BrechtDeMan@702 165
n@704 166 %section on overall architecture\\
BrechtDeMan@702 167
n@704 168 %section with overview of the structure of the input and output files, perhaps with graph or table
BrechtDeMan@702 169
n@704 170 The tool runs entirely inside the browser through the new HTML5 Web Audio API. The API is supported by most major web browsers (except Internet Explorer) and allows for constructing a chain of audio processing elements to produce a high quality, real time signal process to manipulate audio streams. The API supports multi-channel processing and has an accurate playback timer for precise scheduled playback control. The web audio API is controlled through the browser JavaScript and is therefore highly controllable. The Web Audio API processing is all controlled in a separate thread to the main JavaScript thread, meaning there is no blocking due to real time processing.
n@704 171
n@704 172 \subsection{Architecture}\label{sec:architecture}
n@704 173
n@704 174 The web tool itself is split into several files to operate:
n@704 175 \begin{itemize}
n@704 176 \item apeTool.html: The main index file to load the scripts, this is the file the browser must request to load
n@704 177 \item core.js: Contains functions and objects to manage the audio control, audio objects for testing and loading of files
n@704 178 \item ape.js: Parses setup files to create the interface as instructed, following the same style chain as the MATLAB APE Tool.
n@704 179 \end{itemize}
n@704 180
n@704 181 The HTML file loads the core.js file with it along with a few other ancillary files (such as the jQuery javascript extensions), the browser JavaScript begins to execute the on page instructions, which gives the URL of the test setup XML document (outlined in the next section). The core.js parses this document and executes the function in ape.js to build the web page with the given audio files. The reason for separating these two files is to allow for further interface designs (such as Mushra or A-B tests) to be used, which would still require the same underlying core functions outlined in core.js
n@704 182
n@710 183 The ape.js file has only two main functions: loadInterface(xmlDoc) and interfaceXMLSave(). The first function is called to build the interface once the setup document has been loaded. This includes creating the slider interface to rate the tracks and creating the comment boxes bellow. The bars in the slider ranking at the top of the page are randomly spaced. It also instructs the audio engine in the core.js to create the audio objects. The audio objects are custom built audio nodes built on the web audio API. They consist of a bufferSourceNode (a node which holds a buffer of audio samples for playback) and a gainNode. These are then connected to the audioEngine (itself a custom web audio node) containing a gainNode (where the various audio Objects connect to) for summation before passing the output to the destination Node, a fixed node created where the browser then passes the audio information to the system sound device.
n@704 184
n@704 185 When an audioObject is created, the URL of the audio sample to load is given to it. This is downloaded into the browser asynchronously using the XMLHttpRequest object. This allows for downloading of any file into the JavaScript environment for further processing. It is particularly useful for the web audio API because it supports downloading of files in their binary form, allowing a perfect copy. Once the asynchronous download is complete, the file is then decoded using the web audio API offline decoder. This uses the browser available decoding schemes to decode the audio files into raw float32 arrays, which are in-turn passed to the relevant audioObject bufferSourceNode for playback.
n@704 186
n@704 187 Browsers support various audio file formats and are not consistent in any format. One sure format that all browsers support is the WAV format. Although not a compact, web friendly format, most transport systems are of a high enough bandwidth this should not be a problem. However one problem is that of sample rate. On loading, the browser uses the sample rate assigned by the system sound device. The browser does not have the ability to request a different sound rate. Therefore the default operation when an audio file is loaded with a different sample rate to that of the system is to convert the sample rate. To provide a check for this, the desired sample rate can be supplied with the setup XML and checked against. If the sample rates do not match, a browser alert window is shown asking for the sample rate to be correctly adjusted. This happens before any loading or decoding of audio files. Only once the sample rates match will the system actually fetch any files, keeping down requests for the larger files until they are actually needed.
n@704 188
n@704 189 During playback, the playback nodes loop indefinitely until playback is stopped. The gain nodes in the audioObjects enable dynamic muting of nodes. When a bar in the sliding ranking is clicked, the audio engine mutes all audioObjects and un-mutes the clicked one. Therefore, if the audio samples are perfectly aligned up and of the same sample length, they will remain perfectly aligned with each other.
n@704 190
n@704 191 \subsection{Setup and Results Formats}\label{sec:setupresultsformats}
n@704 192
n@704 193 Setup and the results both use the common XML document format to outline the various parameters. The setup file contains all the information needed to initialise a test session. Several Nodes can be defined to outline the audio samples to use, questions to be asked and any pre- or post-test questions or instructions. Having one document to modify allows for quick manipulation in a 'human readable' form to create new tests, or adjust current ones, without needing to edit which web files.
n@704 194
n@704 195 The results file is dynamically generated by the interface upon clicking the submit button. There will be checks, depending on the setup file, to ensure that all tracks have been evaluated and their positions in the slider moved. The XML returned contains a node per audioObject and contains its rating in the slider and any comments written in its associated comment box. The rating returned is normalised to be within a integer range of 0 to 100. This normalises the pixel representation of different browser windows. If a window for instance is only 1280 wide, reporting its pixel position is not representative to a display with a width of 1920.
n@704 196
n@710 197 The pre- and post-test options allow for comments or questions to be presented before or after the test. These are automatically generated based upon the given setup XML and allow nearly any form of question and comment to be included in a window on its own. Questions are stored and presented in the response section labelled 'pretest' and 'posttest' along with the question ID and its response. Questions can be made optionally mandatory. Example questions may involve entering mixing experience or listening environment.
n@710 198
n@704 199 The results will also contain information collected by any defined pre/post questions. These are referenced against the setup XML by using the same ID as well as printing in the same question, so readable responses can be obtained. Future development will also evolve to include any session data, such as the browser the tool was used in, how long the test took and any other metrics. Currently the results files are downloaded on the user side of the browser as a .xml file to be manually returned. However the end goal is to allow the XML files to be submitted over the web to a receiving server to store them, allowing for automated collection.
n@704 200
n@704 201 Here is an example of the setup XML and the results XML:
n@704 202 % Should we include an Example of the input and output XML structure??
BrechtDeMan@702 203
BrechtDeMan@702 204 \section{Applications}\label{sec:applications} %?
djmoffat@695 205 discussion of use of this toolbox (possibly based on a quick mock test using my research data, to be repeated with a large number of participants and more data later)\\
BrechtDeMan@702 206
djmoffat@694 207 \subsection{Listening Environment Standardisation}
djmoffat@694 208
djmoffat@695 209 In order to reduce the impact of having a non-standardised listening environment and unobservable participants, a series of pre-test standard questions have been put together to ask every participant. The first part of this is that every participant is asked to carry out the test, wherever possible, with a pair of quality headphones.
djmoffat@694 210
djmoffat@695 211 \begin{itemize}
djmoffat@695 212 \item Name (text box)
djmoffat@695 213 \item I am happy for name to be used in an academic publication (check box)
djmoffat@695 214 \item First Language (text box)
djmoffat@695 215 \item Location eg. country, city (text box)
djmoffat@695 216 \item Playback System (ratio box (Headphones or Speaker))
djmoffat@695 217 \item Make and Model of Playback System (text box)
djmoffat@695 218 \item Please assess how good you believe your hearing to be, where 1 is deaf, 10 is professional critical listener (Dropdown box 1-10)
djmoffat@695 219 \end{itemize}
djmoffat@695 220
djmoffat@695 221
djmoffat@695 222 There are also a series of considerations that have been made towards ensuring there is a standardised listening environment, so it is possible to
djmoffat@695 223 \begin{itemize}
djmoffat@695 224 \item Begin with standardised listening test - to confirm listening experience
djmoffat@695 225 \item Perform loudness equalisation on all tracks
djmoffat@695 226 \\** OR THIS SHOULD BE DONE BEFORE THE EXPERIMENT
djmoffat@695 227 \item Randomise order of tests
djmoffat@695 228 \item Randomise order of tracks in each test
djmoffat@695 229 \item Repeat each experiment a number of times
djmoffat@695 230 \\** TO REMOVE THE FAMILIARISATION WITH EXPERIMENT VARIABLE
djmoffat@695 231 \\** TO ENSURE CONSISTENCY OF USER
djmoffat@695 232 \item Track all user interactions with system
djmoffat@695 233 \end{itemize}
djmoffat@695 234
djmoffat@695 235
djmoffat@695 236
BrechtDeMan@702 237
BrechtDeMan@702 238
BrechtDeMan@702 239 \section{Conclusions and future work}\label{sec:conclusions}
BrechtDeMan@702 240
BrechtDeMan@702 241 In this paper we have presented an approach to creating a browser-based listening test environment that can be used for a variety of types of perceptual evaluation of audio.
BrechtDeMan@702 242 Specifically, we discussed the use of the toolbox in the context of assessment of preference for different production practices, with identical source material.
BrechtDeMan@702 243 The purpose of this paper is to outline the design of this tool, to describe our implementation using basic HTML5 functionality, and to discuss design challenges and limitations of our approach. % or something
BrechtDeMan@702 244
BrechtDeMan@702 245 % future work
BrechtDeMan@702 246 Further work may include the development of other common test designs, such as [...], and [...]. In addition, [...].
BrechtDeMan@702 247
djmoffat@695 248 \begin{itemize}
djmoffat@695 249 \item Options for MUSHRA style experiment with vertical slide per track, APE style experiment where all tracks are on a single horizontal axis, or AB test
djmoffat@695 250 \end{itemize}
djmoffat@695 251
djmoffat@695 252
BrechtDeMan@702 253 ...
BrechtDeMan@702 254
BrechtDeMan@702 255 The source code of this tool can be found on \url{code.soundsoftware.ac.uk/projects/browserevaluationtool}.
BrechtDeMan@702 256
BrechtDeMan@702 257
BrechtDeMan@702 258 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BrechtDeMan@702 259 %bibliography here
BrechtDeMan@702 260 \bibliography{smc2015template}
BrechtDeMan@702 261
BrechtDeMan@702 262
BrechtDeMan@702 263
BrechtDeMan@702 264 \end{document}
BrechtDeMan@702 265
BrechtDeMan@702 266
BrechtDeMan@702 267
BrechtDeMan@702 268 % RUBBISH
BrechtDeMan@697 269
BrechtDeMan@697 270 %\subsection{Equations}
BrechtDeMan@697 271 %Equations of importance,
BrechtDeMan@697 272 %or to which you refer later,
BrechtDeMan@697 273 %should be placed on separated lines and numbered.
BrechtDeMan@697 274 %The number should be on the right side, in parentheses.
BrechtDeMan@697 275 %\begin{equation}
BrechtDeMan@697 276 %E=mc^{2+\delta}.
BrechtDeMan@697 277 %\label{eq:Emc2}
BrechtDeMan@697 278 %\end{equation}
BrechtDeMan@697 279 %Refer to equations like so:
BrechtDeMan@697 280 %As (\ref{eq:Emc2}) shows,
BrechtDeMan@697 281 %I do not completely trust Special Relativity.
BrechtDeMan@697 282 %
BrechtDeMan@697 283 %\subsection{Figures, Tables and Captions}
BrechtDeMan@697 284 %\begin{table}[t]
BrechtDeMan@697 285 % \begin{center}
BrechtDeMan@697 286 % \begin{tabular}{|l|l|}
BrechtDeMan@697 287 % \hline
BrechtDeMan@697 288 % String value & Numeric value \\
BrechtDeMan@697 289 % \hline
BrechtDeMan@697 290 % Hej SMC & 2015 \\
BrechtDeMan@697 291 % \hline
BrechtDeMan@697 292 % \end{tabular}
BrechtDeMan@697 293 %\end{center}
BrechtDeMan@697 294 % \caption{Table captions should be placed below the table, exactly like this,
BrechtDeMan@697 295 % but using words different from these.}
BrechtDeMan@697 296 % \label{tab:example}
BrechtDeMan@697 297 %\end{table}
BrechtDeMan@697 298
BrechtDeMan@697 299 %\begin{figure}[t]
BrechtDeMan@697 300 %\figbox{
BrechtDeMan@697 301 %\subfloat[][]{\includegraphics[width=60mm]{figure}\label{fig:subfigex_a}}\\
BrechtDeMan@697 302 %\subfloat[][]{\includegraphics[width=80mm]{figure}\label{fig:subfigex_b}}
BrechtDeMan@697 303 %}
BrechtDeMan@697 304 %\caption{Here's an example using the subfig package.\label{fig:subfigex} }
BrechtDeMan@697 305 %\end{figure}
BrechtDeMan@697 306
BrechtDeMan@697 307
BrechtDeMan@702 308
BrechtDeMan@697 309
BrechtDeMan@697 310
BrechtDeMan@697 311 %\begin{acknowledgments}
BrechtDeMan@697 312 %You may acknowledge people, projects,
BrechtDeMan@697 313 %funding agencies, etc.
BrechtDeMan@697 314 %which can be included after the second-level heading
BrechtDeMan@697 315 %``Acknowledgments'' (with no numbering).
BrechtDeMan@697 316 %\end{acknowledgments}
BrechtDeMan@697 317