# HG changeset patch # User Nicholas Jillings # Date 1450274411 0 # Node ID 6be81817d1420c9f21e15b73e8642434552376eb # Parent 8f88db0c38b548109651e40321a87cd21447ccdf Specification document handles optional loudness control. diff -r 8f88db0c38b5 -r 6be81817d142 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 8f88db0c38b5 -r 6be81817d142 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);