# HG changeset patch # User Nicholas Jillings # Date 1450274411 0 # Node ID 21ed0e7e8b8de942dcc4f5966adbc96d569a594d # Parent 77edd1b2329ba1385ce3b1cf8e0c8c45a79edfd1 Specification document handles optional loudness control. diff -r 77edd1b2329b -r 21ed0e7e8b8d core.js --- a/core.js Wed Dec 16 12:35:52 2015 +0000 +++ b/core.js Wed Dec 16 14:00:11 2015 +0000 @@ -897,6 +897,13 @@ this.audioObjects[audioObjectId].specification = element; this.audioObjects[audioObjectId].url = URL; this.audioObjects[audioObjectId].buffer = buffer; + var targetLUFS = this.audioObjects[audioObjectId].specification.parent.loudness; + if (typeof targetLUFS === "number") + { + buffer.buffer.gain = decibelToLinear(targetLUFS - buffer.buffer.lufs); + } else { + buffer.buffer.gain = 1.0; + } if (buffer.buffer != null) { this.audioObjects[audioObjectId].state = 1; @@ -1451,6 +1458,7 @@ this.testPages = null; this.audioHolders = []; this.metrics = []; + this.loudness = null; this.decode = function(projectXML) { // projectXML - DOM Parsed document @@ -1472,6 +1480,14 @@ this.testPages = Number(this.testPages); if (this.testPages == 0) {this.testPages = null;} } + if (setupNode.getAttribute('loudness') != null) + { + var XMLloudness = setupNode.getAttribute('loudness'); + if (isNaN(Number(XMLloudness)) == false) + { + this.loudness = Number(XMLloudness); + } + } var metricCollection = setupNode.getElementsByTagName('Metric'); var setupPreTestNode = setupNode.getElementsByTagName('PreTest'); @@ -1587,6 +1603,7 @@ setupNode.setAttribute('randomiseOrder',this.randomiseOrder); setupNode.setAttribute('collectMetrics',this.collectMetrics); setupNode.setAttribute('testPages',this.testPages); + if(this.loudness != null) {AHNode.setAttribute("loudness",this.loudness);} var setupPreTest = root.createElement("PreTest"); for (var i=0; i - + Please enter your name. This is an example of an 'APE'-style test, with two pages, using the test stimuli in 'example_eval/'. @@ -33,7 +33,7 @@ - + Preference Min diff -r 77edd1b2329b -r 21ed0e7e8b8d loudness.js --- a/loudness.js Wed Dec 16 12:35:52 2015 +0000 +++ b/loudness.js Wed Dec 16 14:00:11 2015 +0000 @@ -94,8 +94,6 @@ } var overallRelLoudness = calculateOverallLoudnessFromChannelBlocks(relgateEnergy); buffer.lufs = overallRelLoudness; - var diff = -23 -overallRelLoudness; - buffer.gain = decibelToLinear(diff); } }).catch(function(err) { console.log(err);