Mercurial > hg > webaudioevaluationtool
changeset 439:751fc4749b60 Dev_main
Analysis page clean up. Instructions minor update. Minor fixes.
author | Brecht De Man <b.deman@qmul.ac.uk> |
---|---|
date | Mon, 21 Dec 2015 12:10:17 +0100 |
parents | d9c7263cb871 |
children | 8b46dbef7c47 |
files | analyse.html ape.js docs/Instructions/Instructions.pdf docs/Instructions/Instructions.tex example_eval/project.xml |
diffstat | 5 files changed, 59 insertions(+), 64 deletions(-) [+] |
line wrap: on
line diff
--- a/analyse.html Fri Dec 18 22:37:16 2015 +0000 +++ b/analyse.html Mon Dec 21 12:10:17 2015 +0100 @@ -15,44 +15,18 @@ <script type="text/javascript"> // To aid 'one-page set-up' all scripts and CSS must be included directly in this file! - //google.load("visualization", "1", {packages:["corechart"]}); + google.load("visualization", "1", {packages:["corechart"]}); /************* * SETUP * *************/ // folder where to find the XML files - xmlFileFolder = "analysis_test"; + xmlFileFolder = "saves"; // array of XML files - var xmlFiles = ['McG-A-2013-09.xml', 'McG-A-2014-03.xml', 'McG-A-2014-12.xml', 'McG-B-2013-09.xml', - 'McG-B-2014-03.xml', 'McG-B-2014-12.xml', 'McG-C-2013-09.xml', 'McG-C-2014-03.xml', 'McG-C-2014-12.xml', - 'McG-D-2013-09.xml', 'McG-D-2014-03.xml', 'McG-D-2014-12.xml', 'McG-E-2013-09.xml', 'McG-E-2014-03.xml', - 'McG-E-2014-12.xml', 'McG-F-2013-09.xml', 'McG-F-2014-03.xml', 'McG-F-2014-12.xml', 'McG-G-2014-03.xml', - 'McG-G-2014-12.xml', 'McG-H-2013-09.xml', 'McG-H-2014-03.xml', 'McG-H-2014-12.xml', 'McG-I-2013-09.xml', - 'McG-I-2014-03.xml', 'McG-J-2013-09.xml', 'McG-J-2014-03.xml', 'McG-K-2013-09.xml', 'McG-K-2014-03.xml', - 'McG-L-2013-09.xml', 'McG-L-2014-03.xml', 'McG-M-2013-09.xml', 'McG-M-2014-03.xml', 'McG-N-2013-09.xml', - 'McG-N-2014-03.xml', 'McG-O-2013-09.xml', 'McG-O-2014-03.xml', 'McG-P-2013-09.xml', 'McG-P-2014-03.xml', - 'McG-pro1-2013-09.xml', 'McG-pro1-2014-03.xml', 'McG-pro1-2014-12.xml', 'McG-pro2-2013-09.xml', - 'McG-pro2-2014-03.xml', 'McG-pro2-2014-12.xml', 'McG-Q-2014-12.xml', 'McG-R-2014-12.xml', - 'McG-S-2014-12.xml', 'McG-subA-2013-09.xml', 'McG-subA-2014-03.xml', 'McG-subB-2014-03.xml', - 'McG-subB-2014-12.xml', 'McG-subC-2013-09.xml', 'McG-subC-2014-03.xml', 'McG-subC-2014-12.xml', - 'McG-subD-2013-09.xml', 'McG-subD-2014-12.xml', 'McG-subE-2014-12.xml', 'McG-subG-2014-12.xml', - 'McG-subH-2013-09.xml', 'McG-T-2014-12.xml', 'McG-U-2014-12.xml', 'McG-V-2014-12.xml', - 'McG-W-2014-12.xml', 'McG-X-2014-12.xml', 'MG1-2013-09.xml', 'MG2-2013-09.xml', 'MG3-2013-09.xml', - 'MG4-2013-09.xml', 'MG5-2013-09.xml', 'MG6-2013-09.xml', 'MG7-2013-09.xml', 'MG8-2013-09.xml', - 'MG9-2013-09.xml', 'QM-1-1.xml', 'QM-1-2.xml', 'QM-10-1.xml', 'QM-11-1.xml', 'QM-11-2.xml', 'QM-12-1.xml', 'QM-12-2.xml', - 'QM-13-1.xml', 'QM-14-1.xml', 'QM-15-1.xml', 'QM-16-1.xml', 'QM-17-1.xml', 'QM-18-1.xml', 'QM-18-2.xml', - 'QM-18-3.xml', 'QM-19-1.xml', 'QM-2-1.xml', 'QM-2-2.xml', 'QM-2-3.xml', 'QM-20-1.xml', 'QM-20-2.xml', - 'QM-20-3.xml', 'QM-21-1.xml', 'QM-21-2.xml', 'QM-3-1.xml', 'QM-3-2.xml', 'QM-3-3.xml', 'QM-4-1.xml', 'QM-5-1.xml', - 'QM-5-2.xml', 'QM-6-1.xml', 'QM-6-2.xml', 'QM-7-1.xml', 'QM-7-2.xml', 'QM-8-1.xml', 'QM-9-1.xml', - 'PXL-L1.xml','PXL-L2.xml','PXL-L3.xml','PXL-L4.xml','PXL-L5.xml','PXL-S1.xml','PXL-S2.xml','PXL-S3.xml', - 'PXL-S4.xml','PXL-S5.xml','PXL-S6.xml','PXL-S7.xml','PXL-pro.xml','DU-A1.xml','DU-A2.xml','DU-B1.xml', - 'DU-B2.xml','DU-C1.xml','DU-C2.xml','DU-D1.xml','DU-D2.xml','DU-E1.xml','DU-F1.xml','DU-F2.xml','DU-G1.xml', - 'DU-G2.xml','DU-H1.xml','DU-H2.xml','DU-I2.xml','DU-J2.xml','DU-K1.xml','DU-K2.xml','DU-L1.xml','DU-L2.xml', - 'DU-M1.xml','DU-M2.xml','DU-N1.xml','DU-O1.xml','DU-O2.xml','DU-P1.xml','DU-P2.xml','DU-Q1.xml','DU-Q2.xml', - 'DU-R1.xml','DU-R2.xml','DU-S1.xml','DU-S2.xml','DU-T1.xml','DU-T2.xml','DU-U1.xml','DU-U2.xml','DU-U3.xml']; - //['QM-1-1.xml','QM-2-1.xml','QM-2-2.xml','QM-2-3.xml','QM-3-1.xml','QM-3-2.xml','QM-4-1.xml','QM-5-1.xml','QM-5-2.xml','QM-6-1.xml','QM-6-2.xml','QM-7-1.xml','QM-7-2.xml','QM-8-1.xml','QM-9-1.xml','QM-10-1.xml','QM-11-1.xml','QM-12-1.xml','QM-12-2.xml','QM-13-1.xml','QM-14-1.xml','QM-15-1.xml','QM-16-1.xml','QM-17-1.xml','QM-18-1.xml','QM-18-2.xml','QM-18-3.xml','QM-19-1.xml','QM-20-1.xml','QM-20-2.xml','QM-20-3.xml','QM-21-1.xml','QM-21-2.xml']; - //['McG-A-2014-03.xml','McG-B-2014-03.xml','McG-C-2014-03.xml','McG-D-2014-03.xml','McG-E-2014-03.xml','McG-F-2014-03.xml','McG-G-2014-03.xml','McG-H-2014-03.xml']; + // THIS IS WHERE YOU SPECIFY RESULT XML FILES TO ANALYSE + var xmlFiles = ['test-0.xml','test-1.xml','test-2.xml','test-3.xml']; + //TODO: make retrieval of file names automatic / drag files on here /**************** @@ -103,8 +77,8 @@ var setup = document.createElement('div'); setup.id = 'setupTagDiv'; loadAllFiles(); + makePlots(); printSurveyData() - //makePlots(); // measure time at this point: lastTimeMeasured = new Date().getTime(); // in milliseconds }; @@ -424,11 +398,11 @@ } } - // mix experience + // post-test info if (posttestnode) { posttestcomments = posttestnode.getElementsByTagName('comment'); for (idx=0; idx < posttestcomments.length; idx++){ - commentsToPrint = ['generalExperience', 'interfaceExperience']; + commentsToPrint = ['age', 'location']; // CHANGE WHAT TO PRINT idAttribute = posttestcomments[idx].getAttribute('id'); if (commentsToPrint.indexOf(idAttribute) >= 0) { // if exists? document.getElementById('div_survey_'+xmlFileName).innerHTML += '<br><strong>'+idAttribute+': </strong>'+posttestcomments[idx].textContent;
--- a/ape.js Fri Dec 18 22:37:16 2015 +0000 +++ b/ape.js Mon Dec 21 12:10:17 2015 +0100 @@ -315,7 +315,7 @@ } } - var commentBoxPrefix = "Comment on track"; + var commentBoxPrefix = "Comment on fragment"; var commentShow = audioHolderObject.elementComments; @@ -609,7 +609,7 @@ var obj = []; $(this.trackSliderObjects).each(function(i,trackObj){ var node = document.createElement('value'); - node.setAttribute("inteerface-name",trackObj.getAttribute("interface-name")); + node.setAttribute("interface-name",trackObj.getAttribute("interface-name")); node.textContent = convSliderPosToRate(trackObj); obj.push(node); });
--- a/docs/Instructions/Instructions.tex Fri Dec 18 22:37:16 2015 +0000 +++ b/docs/Instructions/Instructions.tex Mon Dec 21 12:10:17 2015 +0100 @@ -240,12 +240,46 @@ \section{Features} - This section goes over the different features implemented in the Web Audio Evaluation Tool, how to use them, and what to know about them. + This section covers the different features implemented in the Web Audio Evaluation Tool, how to use them, and what to know about them. Unless otherwise specified, \emph{each} feature described here is optional, i.e. it can be enabled or disabled and adjusted to some extent. As the example project showcases (nearly) all of these features, please refer to its configuration XML document for a demonstration of how to enable and adjust them. + \subsection{Interface layout} + The \texttt{interface} node (child of \texttt{audioholder}) contains + + Example: + + \begin{lstlisting} +<interface name="quality"> + <title>Audio Quality</title> + <scale position="10">Poor</scale> + <scale position="90">Excellent</scale> + <commentBoxPrefix>Comment on fragment</commentBoxPrefix> +</interface> + \end{lstlisting} + + \subsubsection{Title} + Specifies the axis title as displayed on the interface. + + If this tag is absent, the title will default to `Axis \emph{[number]}'. Therefore, if no title is desired, just add the title tag (\texttt{<title/>}) without text. + + \subsubsection{Annotation} + Words or numbers can be placed on specific positions of the scale with the \texttt{scale} tag. The \texttt{position} attribute is a value from 0 to 100, corresponding to the percentage of the width/height of the scale where you want the string to be placed. + + \subsubsection{Comment box prefix} + If comment boxes corresponding with the fragments are enabled, this sets the comment box string after which the fragment number is appended. + + The default value is ``Comment on fragment''. So in this case, each comment box would have a header ``Comment on fragment \emph[number]''. + + \subsubsection{Multiple scales} + In the case of multiple rating scales, e.g. when the stimuli are to be rated in terms of attributes `timbre' and `spatial impression', multiple interface nodes will have to be added, each specifying the title and annotations. + + This is where the \texttt{interface}'s \texttt{name} attribute is particularly important: use this to retrieve the rating values, comments and metrics associated with the specified interface. + If none is given, you can still use the automatically given \texttt{interface-id}, which is the interface number starting with 0 and corresponding to the order in which the rating scales appear. + + \subsection{Surveys} Surveys are conducted through an in-page popup window which can collect data using various HTML functions, see Survey elements below for a list. Survey questions are placed into the \texttt{<pretest>} or \texttt{<posttest>} nodes. Appending these nodes to the \texttt{<setup>} node will have the survey options appear before any test pages (if in the \texttt{<pretest>} node) or after all test pages. Placing the survey options in the \texttt{<audioholder>} node will have them appear before or after the test page they are a child of. \subsubsection{Survey elements} @@ -293,7 +327,7 @@ <option name="good">Good</option> <option name="great">Great</option> </radio> - <checkbox id="checkboxtest" mandatory="true"> + <checkbox id="background" mandatory="true"> <statement>Please select with which activities you have any experience (example checkbox question)</statement> <option name="musician">Playing a musical instrument</option> <option name="soundengineer">Recording or mixing audio</option> @@ -303,7 +337,9 @@ \end{lstlisting} + \subsection{Randomisation} + [WORK IN PROGRESS] \subsubsection{Randomisation of configuration XML files} The python server has a special function to automatically cycle through a list of test pages. Instead of directly requesting an XML, simply setting the url item in the browser URL to \texttt{pseudo.xml} will cycle through a list of XMLs. These XMLs must be in the local directory called \texttt{pseudo}. @@ -437,33 +473,19 @@ \subsubsection{Note on the use of multiple rating axes} I.e. what if more than one axis? How to specify which axis the checks relate to? %Nick? to add? - \subsection{Layout options} - \texttt{title}, \texttt{scale}, \texttt{position}, \texttt{commentBoxPrefix} - - \subsection{Multiple sliders} - (APE example) - - \begin{lstlisting} -<interface name="preference"> - <title>Preference</title> - <scale position="0">Min</scale> - <scale position="100">Max</scale> - <scale position="50">Middle</scale> - <commentBoxPrefix>Comment on fragment</commentBoxPrefix> -</interface> -<interface name="depth"> - <title>Depth</title> - <scale position="0">Low</scale> - <scale position="100">High</scale> - <scale position="50">Middle</scale> - <commentBoxPrefix>Comment on fragment</commentBoxPrefix> -</interface> - \end{lstlisting} - where the \texttt{interface} nodes are children of the \texttt{audioholder} node. - \subsection{Platform information} % what does it do, what does it look like % limitations? + For troubleshooting and usage statistics purposes, information about the browser and the operating system is logged in the results XML file. This is especially useful in the case of remote tests, when it is not certain which operating system, browser and/or browser were used. Note that this information is not always available and/or accurate, e.g. when the subject has taken steps to be more anonymous, so it should be treated as a guide only. + + Example: + \begin{lstlisting} +<navigator> + <platform>MacIntel</platform> + <vendor>Google Inc.</vendor> + <uagent>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36</uagent> +</navigator> + \end{lstlisting} \subsection{Show progress} Add \texttt{<option name="page-count"/>} to the \texttt{interface} node (see Section \ref{sec:checks}: Checks) to add the current page number and the total number of pages to the interface. @@ -662,7 +684,7 @@ \item[Subject] The word we use for a participant, user, ... of the test, i.e. not the experimenter who designs the test but the person who evaluates the audio under test as part of an experiment (or the preparation of one). \item[User] The person who uses the tool to configure, run and analyse the test - i.e. the experimenter, most likely a researcher - or at least \item[Page] A screen in a test; corresponds with an \texttt{audioholder} - \item[Fragment] An element or sample in a test; corresponds with an \texttt{audioelement} + \item[Fragment] An element, stimulus or sample in a test; corresponds with an \texttt{audioelement} \item[Test] A complete test which can consist of several pages; corresponds with an entire configuration XML file \item[Configuration XML file] The XML file containing the necessary information on interface, samples, survey questions, configurations, ... which the JavaScript modules read to produce the desired test. \item[Results XML file] The output of a successful test, including ratings, comments, survey responses, timing information, and the complete configuration XML file with which the test was generated in the first place.
--- a/example_eval/project.xml Fri Dec 18 22:37:16 2015 +0000 +++ b/example_eval/project.xml Mon Dec 21 12:10:17 2015 +0100 @@ -54,7 +54,6 @@ <scale position="0">Low</scale> <scale position="100">High</scale> <scale position="50">Middle</scale> - <commentBoxPrefix>Comment on fragment</commentBoxPrefix> </interface> <audioElements url="0.wav" id="0" type="anchor"/> <audioElements url="1.wav" id="1"/>