changeset 1126:41ef099fbb6a

MUSHRA operating on new core / specification
author Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk>
date Wed, 06 Jan 2016 12:56:29 +0000
parents 3f65e594154d
children 27c1558fba27
files core.js example_eval/mushra_example.xml example_eval/project-new.xml example_eval/project.xml mushra.js
diffstat 5 files changed, 262 insertions(+), 342 deletions(-) [+]
line wrap: on
line diff
--- a/core.js	Wed Jan 06 12:28:22 2016 +0000
+++ b/core.js	Wed Jan 06 12:56:29 2016 +0000
@@ -515,7 +515,7 @@
 			}
 		} else if (node.specification.type == 'checkbox') {
 			// Must extract checkbox data
-			console.log("Checkbox: "+ node.statement);
+			console.log("Checkbox: "+ node.specification.statement);
 			var inputs = this.popupResponse.getElementsByTagName('input');
 			node.response = [];
 			for (var i=0; i<node.specification.options.length; i++) {
@@ -524,6 +524,7 @@
 					text: node.specification.options[i].text,
 					checked: inputs[i].checked
 				});
+				console.log(node.specification.options[i].name+": "+ inputs[i].checked);
 			}
 		} else if (node.specification.type == "radio") {
 			var optHold = this.popupResponse;
@@ -2859,10 +2860,9 @@
 				for (var i=0; i<node.response.length; i++)
 				{
 					var checkNode = this.parent.document.createElement('response');
-					child.setAttribute('name',node.response.name);
-					child.setAttribute('checked',node.response.checked);
-					child.textContent = node.response.text;
-					surveyresult.appendChild(child);
+					checkNode.setAttribute('name',node.response.name);
+					checkNode.setAttribute('checked',node.response.checked);
+					surveyresult.appendChild(checkNode);
 				}
 				break;
 			}
--- a/example_eval/mushra_example.xml	Wed Jan 06 12:28:22 2016 +0000
+++ b/example_eval/mushra_example.xml	Wed Jan 06 12:56:29 2016 +0000
@@ -1,97 +1,127 @@
 <?xml version="1.0" encoding="utf-8"?>
-<BrowserEvalProjectDocument>
-	<setup interface="MUSHRA" projectReturn="save.php" randomiseOrder='true' collectMetrics='true' testPages="2" loudness="-23">
-		<PreTest>
-			<question id="sessionId" mandatory="true">Please enter your name.</question>
-			<statement>This is an example of a 'MUSHRA'-style test, with two pages, using the test stimuli in 'example_eval/'.</statement>
-		</PreTest>
-		<PostTest>
-			<question id="location" mandatory="true" boxsize="large">Please enter your location. (example mandatory text question)</question>
-			<number id="age" min="0">Please enter your age (example non-mandatory number question)</number>
-			<radio id="rating">
+<waet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="test-schema.xsd">
+	<setup interface="MUSHRA" projectReturn="save.php" randomiseOrder='true' testPages="2" loudness="-23" sampleRate="44100">
+		<survey location="before">
+			<surveyentry type="question" id="sessionId" mandatory="true">
+				<statement>Please enter your name.</statement>
+			</surveyentry>
+			<surveyentry type="checkbox" id="checkboxtest" 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>
+				<option name="developer">Developing audio software</option>
+				<option name="hwdesigner">Designing or building audio hardware</option>
+				<option name="researcher">Research in the field of audio</option>
+			</surveyentry>
+			<surveyentry type="statement">
+				<statement>This is an example of an 'APE'-style test, with two pages, using the test stimuli in 'example_eval/'.</statement>
+			</surveyentry>
+		</survey>
+		<survey location="after">
+			<surveyentry type="question" id="location" mandatory="true" boxsize="large">
+				<statement>Please enter your location. (example mandatory text question)</statement>
+			</surveyentry>
+			<surveyentry type="number" id="age" min="0">
+				<statement>Please enter your age (example non-mandatory number question)</statement>
+			</surveyentry>
+			<surveyentry type="radio" id="rating">
 				<statement>Please rate this interface (example radio button question)</statement>
 				<option name="bad">Bad</option>
 				<option name="poor">Poor</option>
 				<option name="good">Good</option>
 				<option name="great">Great</option>
-			</radio>
-			<statement>Thank you for taking this listening test. Please click 'submit' and your results will appear in the 'saves/' folder.</statement>
-		</PostTest>
-		<Metric>
-			<metricEnable>testTimer</metricEnable>
-			<metricEnable>elementTimer</metricEnable>
-			<metricEnable>elementInitialPosition</metricEnable>
-			<metricEnable>elementTracker</metricEnable>
-			<metricEnable>elementFlagListenedTo</metricEnable>
-			<metricEnable>elementFlagMoved</metricEnable>
-			<metricEnable>elementListenTracker</metricEnable>
-		</Metric>
+			</surveyentry>
+			<surveyentry type="statement">
+				<statement>Thank you for taking this listening test. Please click 'submit' and your results will appear in the 'saves/' folder.</statement>
+			</surveyentry>
+		</survey>
+		<metric>
+			<metricenable>testTimer</metricenable>
+			<metricenable>elementTimer</metricenable>
+			<metricenable>elementInitialPosition</metricenable>
+			<metricenable>elementTracker</metricenable>
+			<metricenable>elementFlagListenedTo</metricenable>
+			<metricenable>elementFlagMoved</metricenable>
+			<metricenable>elementListenTracker</metricenable>
+		</metric>
 		<interface>
-			<check name="fragmentMoved"/>
-			<option name='playhead'/>
-			<option name="page-count"/>
+			<interfaceoption type="check" name="fragmentMoved"/>
+			<interfaceoption type="check" name="scalerange" min="25" max="75"/>
+			<interfaceoption type="show" name='playhead'/>
+			<interfaceoption type="show" name="page-count"/>
 		</interface>
 	</setup>
-	<audioHolder id='test-0' hostURL="example_eval/" randomiseOrder='true' repeatCount='0' loop='true' elementComments='true' loudness="-12" initial-position='50'>
+	<page id='test-0' hostURL="example_eval/" randomiseOrder='true' repeatCount='0' loop='true' showElementComments='true' loudness="-12">
+		<commentboxprefix>Comment on fragment</commentboxprefix>
 		<interface>
-			<title>Preference</title>
-			<check name='fragmentPlayed'/>
-			<scale position="0">Min</scale>
-			<scale position="100">Max</scale>
-			<scale position="50">Middle</scale>
-			<scale position="20">20</scale>
-			<commentBoxPrefix>Comment on fragment</commentBoxPrefix>
+			<scales>
+				<scalelabel position="0">Min</scalelabel>
+				<scalelabel position="100">Max</scalelabel>
+				<scalelabel position="50">Middle</scalelabel>
+				<scalelabel position="20">20</scalelabel>
+			</scales>
 		</interface>
-		<audioElements url="0.wav" id="0" type="anchor"/>
-		<audioElements url="1.wav" id="1"/>
-		<audioElements url="2.wav" id="2"/>
-		<audioElements url="3.wav" id="3"/>
-		<audioElements url="4.wav" id="4"/>
-		<PreTest>
-			<statement>Example of an 'MUSHRA' style interface with hidden anchor 'zero' (which needs to be below 20%), looping of the samples, randomisation of marker labels, mandatory moving of every sample, mandatory listening of every sample and set initialisation to 50% </statement>
-		</PreTest>
-		<PostTest>
-			<question id="genre" mandatory="true">Please enter the genre.</question>
-		</PostTest>
-	</audioHolder>
-    <audioHolder id='test-1' hostURL="example_eval/" randomiseOrder='true' repeatCount='0' loop='false' elementComments='true'>
-        <interface name="preference">
-            <title>Example Test Question</title>
-            <scale position="0">Min</scale>
-            <scale position="100">Max</scale>
-            <scale position="50">Middle</scale>
-            <scale position="75">75</scale>
-            <scalerange min="25" max="75"/>
-            <commentBoxPrefix>Comment on fragment</commentBoxPrefix>
-        </interface>
-        <audioElements url="0.wav" gain="-6" id="0" type="anchor" marker="20"/>
-        <audioElements url="1.wav" gain="0.0" id="1" type="reference" marker="80"/>
-        <audioElements url="2.wav" gain="0.0" id="2"/>
-        <audioElements url="3.wav" gain="0.0" id="3"/>
-        <audioElements url="4.wav" gain="0.0" id="4"/>
-        <audioElements url="5.wav" gain="0.0" id="5"/>
-        <audioElements url="6.wav" gain="0.0" id="6" type="outsidereference"/>
-        <CommentQuestion id='mixingExperience' type="text">What is your general experience with numbers?</CommentQuestion>
-        <CommentQuestion id="preference" type="radio">
-            <statement>Please enter your overall preference</statement>
-            <option name="worst">Very Bad</option>
-            <option name="bad"></option>
-            <option name="OK">OK</option>
-            <option name="Good"></option>
-            <option name="Great">Great</option>
-        </CommentQuestion>
-        <CommentQuestion id="preference" type="checkbox">
-            <statement>Please describe the overall character</statement>
-            <option name="funky">Funky</option>
-            <option name="mellow">Mellow</option>
-            <option name="laidback">Laid back</option>
-            <option name="heavy">Heavy</option>
-        </CommentQuestion>
-        <PreTest>
-        	<statement>Example of an 'MUSHRA' style interface with outside reference 'six', hidden anchor 'zero' (which needs to be below 20%), hidden reference 'one' (which needs to be above 80%), randomisation of marker labels. </statement>
-        </PreTest>
-        <PostTest>
-            <question id="genre" mandatory="true">Please enter the genre.</question>
-        </PostTest>
-    </audioHolder>
-</BrowserEvalProjectDocument>
\ No newline at end of file
+		<audioelement url="0.wav" id="track-0" type="anchor"/>
+		<audioelement url="1.wav" id="track-1"/>
+		<audioelement url="2.wav" id="track-2"/>
+		<audioelement url="3.wav" id="track-3"/>
+		<audioelement url="4.wav" id="track-4"/>
+		<survey location="before">
+			<surveyentry type="statement">
+				<statement>Example of a 'MUSHRA' style interface with hidden anchor 'zero' (which needs to be below 20%), looping of the samples, randomisation of marker labels, mandatory moving of every sample, and a forced scale usage of at least 25%-75%.</statement>
+			</surveyentry>
+		</survey>
+		<survey location="after">
+			<surveyentry type="question" id="genre-0" mandatory="true">
+				<statement>Please enter the genre.</statement>
+			</surveyentry>
+		</survey>
+	</page>
+	<page id='test-1' hostURL="example_eval/" randomiseOrder='true' repeatCount='0' loop='false' showElementComments='true'>
+		<commentboxprefix>Comment on fragment</commentboxprefix>
+		<interface name="preference">
+			<title>Example Test Question</title>
+			<scales>
+				<scalelabel position="0">Min</scalelabel>
+				<scalelabel position="100">Max</scalelabel>
+				<scalelabel position="50">Middle</scalelabel>
+				<scalelabel position="20">20</scalelabel>
+			</scales>
+		</interface>
+		<audioelement url="0.wav" gain="-6" id="track-5" type="anchor" marker="20"/>
+		<audioelement url="1.wav" gain="0.0" id="track-6" type="reference" marker="80"/>
+		<audioelement url="2.wav" gain="0.0" id="track-7"/>
+		<audioelement url="3.wav" gain="0.0" id="track-8"/>
+		<audioelement url="4.wav" gain="0.0" id="track-9"/>
+		<audioelement url="5.wav" gain="0.0" id="track-10"/>
+		<audioelement url="6.wav" gain="0.0" id="track-11" type="outside-reference"/>
+		<commentquestion id='mixingExperience' type="question">
+			<statement>What is your general experience with numbers?</statement>
+		</commentquestion>
+		<commentquestion id="preference" type="radio">
+			<statement>Please enter your overall preference</statement>
+			<option name="worst">Very Bad</option>
+			<option name="bad"></option>
+			<option name="OK">OK</option>
+			<option name="Good"></option>
+			<option name="Great">Great</option>
+		</commentquestion>
+		<commentquestion id="character" type="checkbox">
+			<statement>Please describe the overall character</statement>
+			<option name="funky">Funky</option>
+			<option name="mellow">Mellow</option>
+			<option name="laidback">Laid back</option>
+			<option name="heavy">Heavy</option>
+		</commentquestion>
+		<survey location="before">
+			<surveyentry type="statement">
+				<statement>Example of a 'MUSHRA' style interface with hidden anchor 'zero' (which needs to be below 20%), looping of the samples, randomisation of marker labels, mandatory moving of every sample, and a forced scale usage of at least 25%-75%.</statement>
+			</surveyentry>
+		</survey>
+		<survey location="after">
+			<surveyentry type="question" id="genre-1" mandatory="true">
+				<statement>Please enter the genre.</statement>
+			</surveyentry>
+		</survey>
+	</page>
+</waet>
\ No newline at end of file
--- a/example_eval/project-new.xml	Wed Jan 06 12:28:22 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<waet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="test-schema.xsd">
-	<setup interface="APE" projectReturn="save.php" randomiseOrder='true' testPages="2" loudness="-23" sampleRate="44100">
-		<survey location="before">
-			<surveyentry type="question" id="sessionId" mandatory="true">
-				<statement>Please enter your name.</statement>
-			</surveyentry>
-			<surveyentry type="radio" id="checkboxtest" 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>
-				<option name="developer">Developing audio software</option>
-				<option name="hwdesigner">Designing or building audio hardware</option>
-				<option name="researcher">Research in the field of audio</option>
-			</surveyentry>
-			<surveyentry type="statement">
-				<statement>This is an example of an 'APE'-style test, with two pages, using the test stimuli in 'example_eval/'.</statement>
-			</surveyentry>
-		</survey>
-		<survey location="after">
-			<surveyentry type="question" id="location" mandatory="true" boxsize="large">
-				<statement>Please enter your location. (example mandatory text question)</statement>
-			</surveyentry>
-			<surveyentry type="number" id="age" min="0">
-				<statement>Please enter your age (example non-mandatory number question)</statement>
-			</surveyentry>
-			<surveyentry type="radio" id="rating">
-				<statement>Please rate this interface (example radio button question)</statement>
-				<option name="bad">Bad</option>
-				<option name="poor">Poor</option>
-				<option name="good">Good</option>
-				<option name="great">Great</option>
-			</surveyentry>
-			<surveyentry type="statement">
-				<statement>Thank you for taking this listening test. Please click 'submit' and your results will appear in the 'saves/' folder.</statement>
-			</surveyentry>
-		</survey>
-		<metric>
-			<metricenable>testTimer</metricenable>
-			<metricenable>elementTimer</metricenable>
-			<metricenable>elementInitialPosition</metricenable>
-			<metricenable>elementTracker</metricenable>
-			<metricenable>elementFlagListenedTo</metricenable>
-			<metricenable>elementFlagMoved</metricenable>
-			<metricenable>elementListenTracker</metricenable>
-		</metric>
-		<interface>
-			<interfaceoption type="check" name="fragmentMoved"/>
-			<interfaceoption type="check" name="scalerange" min="25" max="75"/>
-			<interfaceoption type="show" name='playhead'/>
-			<interfaceoption type="show" name="page-count"/>
-		</interface>
-	</setup>
-	<page id='test-0' hostURL="example_eval/" randomiseOrder='true' repeatCount='0' loop='true' showElementComments='true' loudness="-12">
-		<commentboxprefix>Comment on fragment</commentboxprefix>
-		<interface name="preference">
-			<scales>
-				<scalelabel position="0">Min</scalelabel>
-				<scalelabel position="100">Max</scalelabel>
-				<scalelabel position="50">Middle</scalelabel>
-				<scalelabel position="20">20</scalelabel>
-			</scales>
-		</interface>
-		<interface name="depth">
-			<title>Depth</title>
-			<scales>
-				<scalelabel position="0">Low</scalelabel>
-				<scalelabel position="100">High</scalelabel>
-				<scalelabel position="50">Middle</scalelabel>
-				<scalelabel position="50">Middle</scalelabel>
-			</scales>
-		</interface>
-		<audioelement url="0.wav" id="track-0" type="anchor"/>
-		<audioelement url="1.wav" id="track-1"/>
-		<audioelement url="2.wav" id="track-2"/>
-		<audioelement url="3.wav" id="track-3"/>
-		<audioelement url="4.wav" id="track-4"/>
-		<survey location="before">
-			<surveyentry type="statement">
-				<statement>Example of an 'APE' style interface with hidden anchor 'zero' (which needs to be below 20%), looping of the samples, randomisation of marker labels, mandatory moving of every sample, and a forced scale usage of at least 25%-75%.</statement>
-			</surveyentry>
-		</survey>
-		<survey location="after">
-			<surveyentry type="question" id="genre-0" mandatory="true">
-				<statement>Please enter the genre.</statement>
-			</surveyentry>
-		</survey>
-	</page>
-	<page id='test-1' hostURL="example_eval/" randomiseOrder='true' repeatCount='0' loop='false' showElementComments='true'>
-		<commentboxprefix>Comment on fragment</commentboxprefix>
-		<interface name="preference">
-			<title>Example Test Question</title>
-			<scales>
-				<scalelabel position="0">Min</scalelabel>
-				<scalelabel position="100">Max</scalelabel>
-				<scalelabel position="50">Middle</scalelabel>
-				<scalelabel position="20">20</scalelabel>
-			</scales>
-		</interface>
-		<audioelement url="0.wav" gain="-6" id="track-5" type="anchor" marker="20"/>
-		<audioelement url="1.wav" gain="0.0" id="track-6" type="reference" marker="80"/>
-		<audioelement url="2.wav" gain="0.0" id="track-7"/>
-		<audioelement url="3.wav" gain="0.0" id="track-8"/>
-		<audioelement url="4.wav" gain="0.0" id="track-9"/>
-		<audioelement url="5.wav" gain="0.0" id="track-10"/>
-		<audioelement url="6.wav" gain="0.0" id="track-11" type="outside-reference"/>
-		<commentquestion id='mixingExperience' type="question">
-			<statement>What is your general experience with numbers?</statement>
-		</commentquestion>
-		<commentquestion id="preference" type="radio">
-			<statement>Please enter your overall preference</statement>
-			<option name="worst">Very Bad</option>
-			<option name="bad"></option>
-			<option name="OK">OK</option>
-			<option name="Good"></option>
-			<option name="Great">Great</option>
-		</commentquestion>
-		<commentquestion id="character" type="checkbox">
-			<statement>Please describe the overall character</statement>
-			<option name="funky">Funky</option>
-			<option name="mellow">Mellow</option>
-			<option name="laidback">Laid back</option>
-			<option name="heavy">Heavy</option>
-		</commentquestion>
-		<survey location="before">
-			<surveyentry type="statement">
-				<statement>Example of an 'APE' style interface with hidden anchor 'zero' (which needs to be below 20%), looping of the samples, randomisation of marker labels, mandatory moving of every sample, and a forced scale usage of at least 25%-75%.</statement>
-			</surveyentry>
-		</survey>
-		<survey location="after">
-			<surveyentry type="question" id="genre-1" mandatory="true">
-				<statement>Please enter the genre.</statement>
-			</surveyentry>
-		</survey>
-	</page>
-</waet>
\ No newline at end of file
--- a/example_eval/project.xml	Wed Jan 06 12:28:22 2016 +0000
+++ b/example_eval/project.xml	Wed Jan 06 12:56:29 2016 +0000
@@ -1,112 +1,136 @@
-<?xml version="1.0" encoding="utf-8"?>
-<BrowserEvalProjectDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SpecificationSchema.xsd">
-	<setup interface="APE" projectReturn="save.php" randomiseOrder='true' collectMetrics='true' testPages="2" loudness="-23">
-		<PreTest>
-			<question id="sessionId" mandatory="true">Please enter your name.</question>
-			<checkbox id="checkboxtest" 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>
-				<option name="developer">Developing audio software</option>
-				<option name="hwdesigner">Designing or building audio hardware</option>
-				<option name="researcher">Research in the field of audio</option>
-			</checkbox>
-			<statement>This is an example of an 'APE'-style test, with two pages, using the test stimuli in 'example_eval/'.</statement>
-		</PreTest>
-		<PostTest>
-			<question id="location" mandatory="true" boxsize="large">Please enter your location. (example mandatory text question)</question>
-			<number id="age" min="0">Please enter your age (example non-mandatory number question)</number>
-			<radio id="rating">
-				<statement>Please rate this interface (example radio button question)</statement>
-				<option name="bad">Bad</option>
-				<option name="poor">Poor</option>
-				<option name="good">Good</option>
-				<option name="great">Great</option>
-			</radio>
-			<statement>Thank you for taking this listening test. Please click 'submit' and your results will appear in the 'saves/' folder.</statement>
-		</PostTest>
-		<Metric>
-			<metricEnable>testTimer</metricEnable>
-			<metricEnable>elementTimer</metricEnable>
-			<metricEnable>elementInitialPosition</metricEnable>
-			<metricEnable>elementTracker</metricEnable>
-			<metricEnable>elementFlagListenedTo</metricEnable>
-			<metricEnable>elementFlagMoved</metricEnable>
-			<metricEnable>elementListenTracker</metricEnable>
-		</Metric>
-		<interface>
-			<check name="fragmentMoved"/>
-			<check name="scalerange" min="25" max="75"/>
-			<option name='playhead'/>
-			<option name="page-count"/>
-		</interface>
-	</setup>
-	<audioHolder id='test-0' hostURL="example_eval/" randomiseOrder='true' repeatCount='0' loop='true' elementComments='true' loudness="-12">
-		<interface name="preference">
-			<scale position="0">Min</scale>
-			<scale position="100">Max</scale>
-			<scale position="50">Middle</scale>
-			<scale position="20">20</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>
-		</interface>
-		<audioElements url="0.wav" id="track-0" type="anchor"/>
-		<audioElements url="1.wav" id="track-1"/>
-		<audioElements url="2.wav" id="track-2"/>
-		<audioElements url="3.wav" id="track-3"/>
-		<audioElements url="4.wav" id="track-4"/>
-		<PreTest>
-			<statement>Example of an 'APE' style interface with hidden anchor 'zero' (which needs to be below 20%), looping of the samples, randomisation of marker labels, mandatory moving of every sample, and a forced scale usage of at least 25%-75%. </statement>
-		</PreTest>
-		<PostTest>
-			<question id="genre" mandatory="true">Please enter the genre.</question>
-		</PostTest>
-	</audioHolder>
-    <audioHolder id='test-1' hostURL="example_eval/" randomiseOrder='true' repeatCount='0' loop='false' elementComments='true'>
-        <interface name="preference">
-            <title>Example Test Question</title>
-            <scale position="0">Min</scale>
-            <scale position="100">Max</scale>
-            <scale position="50">Middle</scale>
-            <scale position="75">75</scale>
-            <scalerange min="25" max="75"/>
-            <commentBoxPrefix>Comment on fragment</commentBoxPrefix>
-        </interface>
-        <audioElements url="0.wav" gain="-6" id="track-5" type="anchor" marker="20"/>
-        <audioElements url="1.wav" gain="0.0" id="track-6" type="reference" marker="80"/>
-        <audioElements url="2.wav" gain="0.0" id="track-7"/>
-        <audioElements url="3.wav" gain="0.0" id="track-8"/>
-        <audioElements url="4.wav" gain="0.0" id="track-9"/>
-        <audioElements url="5.wav" gain="0.0" id="track-10"/>
-        <audioElements url="6.wav" gain="0.0" id="track-11" type="outsidereference"/>
-        <CommentQuestion id='mixingExperience' type="text">
-          <statement>What is your general experience with numbers?</statement>
-        </CommentQuestion>
-        <CommentQuestion id="preference" type="radio">
-            <statement>Please enter your overall preference</statement>
-            <option name="worst">Very Bad</option>
-            <option name="bad"></option>
-            <option name="OK">OK</option>
-            <option name="Good"></option>
-            <option name="Great">Great</option>
-        </CommentQuestion>
-        <CommentQuestion id="character" type="checkbox">
-            <statement>Please describe the overall character</statement>
-            <option name="funky">Funky</option>
-            <option name="mellow">Mellow</option>
-            <option name="laidback">Laid back</option>
-            <option name="heavy">Heavy</option>
-        </CommentQuestion>
-        <PreTest>
-        	<statement>Example of an 'APE' style interface with outside reference 'six', hidden anchor 'zero' (which needs to be below 20%), hidden reference 'one' (which needs to be above 80%), randomisation of marker labels, and a forced scale usage of at least 25%-75%. </statement>
-        </PreTest>
-        <PostTest>
-            <question id="genre" mandatory="true">Please enter the genre.</question>
-        </PostTest>
-    </audioHolder>
-</BrowserEvalProjectDocument>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<waet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="test-schema.xsd">
+	<setup interface="APE" projectReturn="save.php" randomiseOrder='true' testPages="2" loudness="-23" sampleRate="44100">
+		<survey location="before">
+			<surveyentry type="question" id="sessionId" mandatory="true">
+				<statement>Please enter your name.</statement>
+			</surveyentry>
+			<surveyentry type="checkbox" id="checkboxtest" 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>
+				<option name="developer">Developing audio software</option>
+				<option name="hwdesigner">Designing or building audio hardware</option>
+				<option name="researcher">Research in the field of audio</option>
+			</surveyentry>
+			<surveyentry type="statement">
+				<statement>This is an example of an 'APE'-style test, with two pages, using the test stimuli in 'example_eval/'.</statement>
+			</surveyentry>
+		</survey>
+		<survey location="after">
+			<surveyentry type="question" id="location" mandatory="true" boxsize="large">
+				<statement>Please enter your location. (example mandatory text question)</statement>
+			</surveyentry>
+			<surveyentry type="number" id="age" min="0">
+				<statement>Please enter your age (example non-mandatory number question)</statement>
+			</surveyentry>
+			<surveyentry type="radio" id="rating">
+				<statement>Please rate this interface (example radio button question)</statement>
+				<option name="bad">Bad</option>
+				<option name="poor">Poor</option>
+				<option name="good">Good</option>
+				<option name="great">Great</option>
+			</surveyentry>
+			<surveyentry type="statement">
+				<statement>Thank you for taking this listening test. Please click 'submit' and your results will appear in the 'saves/' folder.</statement>
+			</surveyentry>
+		</survey>
+		<metric>
+			<metricenable>testTimer</metricenable>
+			<metricenable>elementTimer</metricenable>
+			<metricenable>elementInitialPosition</metricenable>
+			<metricenable>elementTracker</metricenable>
+			<metricenable>elementFlagListenedTo</metricenable>
+			<metricenable>elementFlagMoved</metricenable>
+			<metricenable>elementListenTracker</metricenable>
+		</metric>
+		<interface>
+			<interfaceoption type="check" name="fragmentMoved"/>
+			<interfaceoption type="check" name="scalerange" min="25" max="75"/>
+			<interfaceoption type="show" name='playhead'/>
+			<interfaceoption type="show" name="page-count"/>
+		</interface>
+	</setup>
+	<page id='test-0' hostURL="example_eval/" randomiseOrder='true' repeatCount='0' loop='true' showElementComments='true' loudness="-12">
+		<commentboxprefix>Comment on fragment</commentboxprefix>
+		<interface name="preference">
+			<scales>
+				<scalelabel position="0">Min</scalelabel>
+				<scalelabel position="100">Max</scalelabel>
+				<scalelabel position="50">Middle</scalelabel>
+				<scalelabel position="20">20</scalelabel>
+			</scales>
+		</interface>
+		<interface name="depth">
+			<title>Depth</title>
+			<scales>
+				<scalelabel position="0">Low</scalelabel>
+				<scalelabel position="100">High</scalelabel>
+				<scalelabel position="50">Middle</scalelabel>
+				<scalelabel position="50">Middle</scalelabel>
+			</scales>
+		</interface>
+		<audioelement url="0.wav" id="track-0" type="anchor"/>
+		<audioelement url="1.wav" id="track-1"/>
+		<audioelement url="2.wav" id="track-2"/>
+		<audioelement url="3.wav" id="track-3"/>
+		<audioelement url="4.wav" id="track-4"/>
+		<survey location="before">
+			<surveyentry type="statement">
+				<statement>Example of an 'APE' style interface with hidden anchor 'zero' (which needs to be below 20%), looping of the samples, randomisation of marker labels, mandatory moving of every sample, and a forced scale usage of at least 25%-75%.</statement>
+			</surveyentry>
+		</survey>
+		<survey location="after">
+			<surveyentry type="question" id="genre-0" mandatory="true">
+				<statement>Please enter the genre.</statement>
+			</surveyentry>
+		</survey>
+	</page>
+	<page id='test-1' hostURL="example_eval/" randomiseOrder='true' repeatCount='0' loop='false' showElementComments='true'>
+		<commentboxprefix>Comment on fragment</commentboxprefix>
+		<interface name="preference">
+			<title>Example Test Question</title>
+			<scales>
+				<scalelabel position="0">Min</scalelabel>
+				<scalelabel position="100">Max</scalelabel>
+				<scalelabel position="50">Middle</scalelabel>
+				<scalelabel position="20">20</scalelabel>
+			</scales>
+		</interface>
+		<audioelement url="0.wav" gain="-6" id="track-5" type="anchor" marker="20"/>
+		<audioelement url="1.wav" gain="0.0" id="track-6" type="reference" marker="80"/>
+		<audioelement url="2.wav" gain="0.0" id="track-7"/>
+		<audioelement url="3.wav" gain="0.0" id="track-8"/>
+		<audioelement url="4.wav" gain="0.0" id="track-9"/>
+		<audioelement url="5.wav" gain="0.0" id="track-10"/>
+		<audioelement url="6.wav" gain="0.0" id="track-11" type="outside-reference"/>
+		<commentquestion id='mixingExperience' type="question">
+			<statement>What is your general experience with numbers?</statement>
+		</commentquestion>
+		<commentquestion id="preference" type="radio">
+			<statement>Please enter your overall preference</statement>
+			<option name="worst">Very Bad</option>
+			<option name="bad"></option>
+			<option name="OK">OK</option>
+			<option name="Good"></option>
+			<option name="Great">Great</option>
+		</commentquestion>
+		<commentquestion id="character" type="checkbox">
+			<statement>Please describe the overall character</statement>
+			<option name="funky">Funky</option>
+			<option name="mellow">Mellow</option>
+			<option name="laidback">Laid back</option>
+			<option name="heavy">Heavy</option>
+		</commentquestion>
+		<survey location="before">
+			<surveyentry type="statement">
+				<statement>Example of an 'APE' style interface with hidden anchor 'zero' (which needs to be below 20%), looping of the samples, randomisation of marker labels, mandatory moving of every sample, and a forced scale usage of at least 25%-75%.</statement>
+			</surveyentry>
+		</survey>
+		<survey location="after">
+			<surveyentry type="question" id="genre-1" mandatory="true">
+				<statement>Please enter the genre.</statement>
+			</surveyentry>
+		</survey>
+	</page>
+</waet>
\ No newline at end of file
--- a/mushra.js	Wed Jan 06 12:28:22 2016 +0000
+++ b/mushra.js	Wed Jan 06 12:56:29 2016 +0000
@@ -171,7 +171,7 @@
 		}
 		
 		sliderBox.appendChild(audioObject.interfaceDOM.holder);
-		audioObject.metric.initialised(audioObject.interfaceDOM.slider.value);
+		audioObject.metric.initialise(audioObject.interfaceDOM.slider.value);
         
 	});
 	
@@ -322,7 +322,9 @@
 
 function buttonSubmitClick() // TODO: Only when all songs have been played!
 {
-	var checks = testState.currentStateMap[testState.currentIndex].interfaces[0].options;
+	var checks = [];
+	checks = checks.concat(testState.currentStateMap.interfaces[0].options);
+	checks = checks.concat(specification.interfaces.options);
 	var canContinue = true;
 	
 	// Check that the anchor and reference objects are correctly placed
@@ -332,7 +334,7 @@
 	for (var i=0; i<checks.length; i++) {
 		if (checks[i].type == 'check')
 		{
-			switch(checks[i].check) {
+			switch(checks[i].name) {
 			case 'fragmentPlayed':
 				// Check if all fragments have been played
 				var checkState = interfaceContext.checkAllPlayed();