# HG changeset patch # User Nicholas Jillings # Date 1450274411 0 # Node ID a75a4e0af44fec4302a1c0f3a2ec9d1e3bc40604 # Parent b56d693cdfb7e27010b3ef29e295465ad890d854 Specification document handles optional loudness control. diff -r b56d693cdfb7 -r a75a4e0af44f 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 b56d693cdfb7 -r a75a4e0af44f 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);