Mercurial > hg > webaudioevaluationtool
changeset 440:8b46dbef7c47 Dev_main
Merge
author | Brecht De Man <b.deman@qmul.ac.uk> |
---|---|
date | Mon, 21 Dec 2015 15:02:43 +0100 |
parents | 751fc4749b60 (current diff) dbd3e7f52766 (diff) |
children | 4866152611e6 |
files | ape.js |
diffstat | 6 files changed, 74 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/ape.js Mon Dec 21 12:10:17 2015 +0100 +++ b/ape.js Mon Dec 21 15:02:43 2015 +0100 @@ -283,6 +283,12 @@ feedbackHolder.innerHTML = null; sliderHolder.innerHTML = null; + // Delete outside reference + var outsideReferenceHolder = document.getElementById('outside-reference'); + if (outsideReferenceHolder != null) { + document.getElementById('interface-buttons').removeChild(outsideReferenceHolder); + } + var interfaceObj = audioHolderObject.interfaces; for (var k=0; k<interfaceObj.length; k++) { // Create the div box to center align
--- a/core.js Mon Dec 21 12:10:17 2015 +0100 +++ b/core.js Mon Dec 21 15:02:43 2015 +0100 @@ -2858,7 +2858,7 @@ var failed = []; for (var i in audioEngineContext.audioObjects) { - if(audioEngineContext.audioObjects[i].metric.wasMoved == false) + if(audioEngineContext.audioObjects[i].metric.wasMoved == false && audioEngineContext.audioObjects[i].specification.type != 'outsidereference') { failed.push(audioEngineContext.audioObjects[i].id); }
--- a/loudness.js Mon Dec 21 12:10:17 2015 +0100 +++ b/loudness.js Mon Dec 21 15:02:43 2015 +0100 @@ -8,6 +8,10 @@ var interval_cal_loudness_event = null; +if (typeof OfflineAudioContext == "undefined"){ + var OfflineAudioContext = webkitOfflineAudioContext; +} + function calculateLoudness(buffer, timescale, target, offlineContext) { // This function returns the EBU R 128 specification loudness model and sets the linear gain required to match -23 LUFS @@ -50,8 +54,11 @@ KFilter.connect(HPFilter); HPFilter.connect(offlineContext.destination); processSource.start(); - offlineContext.startRendering().then(function(renderedBuffer) { + offlineContext.oncomplete = function(renderedBuffer) { // Have the renderedBuffer information, now continue processing + if (typeof renderedBuffer.renderedBuffer == 'object') { + renderedBuffer = renderedBuffer.renderedBuffer; + } switch(timescale) { case "I": @@ -95,10 +102,8 @@ var overallRelLoudness = calculateOverallLoudnessFromChannelBlocks(relgateEnergy); buffer.lufs = overallRelLoudness; } - }).catch(function(err) { - console.log(err); - buffer.lufs = 1; - }); + }; + offlineContext.startRendering(); } function calculateProcessedLoudness(buffer, winDur, overlap)
--- a/mushra.css Mon Dec 21 12:10:17 2015 +0100 +++ b/mushra.css Mon Dec 21 15:02:43 2015 +0100 @@ -61,6 +61,15 @@ margin-left: 50px; } +div.outside-reference { + width:120px; + padding-left: 55px; + margin-left: 100px; + height:20px; + margin-bottom:5px; + background-color: rgb(100,200,100); +} + div.track-slider-playing { background-color: #FFDDDD; }
--- a/mushra.js Mon Dec 21 12:10:17 2015 +0100 +++ b/mushra.js Mon Dec 21 15:02:43 2015 +0100 @@ -47,6 +47,7 @@ var playback = document.createElement("button"); playback.innerHTML = 'Stop'; playback.id = 'playback-button'; + playback.style.float = 'left'; // onclick function. Check if it is playing or not, call the correct function in the // audioEngine, change the button text to reflect the next state. playback.onclick = function() { @@ -62,6 +63,7 @@ submit.innerHTML = 'Submit'; submit.onclick = buttonSubmitClick; submit.id = 'submit-button'; + submit.style.float = 'left'; // Append the interface buttons into the interfaceButtons object. interfaceButtons.appendChild(playback); interfaceButtons.appendChild(submit); @@ -116,6 +118,12 @@ document.getElementById("pageTitle").textContent = interfaceObj.title; } + // Delete outside reference + var outsideReferenceHolder = document.getElementById('outside-reference'); + if (outsideReferenceHolder != null) { + document.getElementById('interface-buttons').removeChild(outsideReferenceHolder); + } + var sliderBox = document.getElementById('slider-holder'); feedbackHolder.innerHTML = null; sliderBox.innerHTML = null; @@ -140,8 +148,12 @@ // Find URL of track // In this jQuery loop, variable 'this' holds the current audioElement. - // Now load each audio sample. First create the new track by passing the full URL - var trackURL = audioHolderObject.hostURL + element.url; + // Check if an outside reference + if (index == audioHolderObject.outsideReference) + { + return; + } + var audioObject = audioEngineContext.newTrack(element); var node = interfaceContext.createCommentBox(audioObject); @@ -168,6 +180,32 @@ var totalWidth = (numObj-1)*150+100; var diff = (window.innerWidth - totalWidth)/2; sliderBox.style.marginLeft = diff + 'px'; + + // Construct outside reference; + if (audioHolderObject.outsideReference != null) { + var outsideReferenceHolder = document.createElement('div'); + outsideReferenceHolder.id = 'outside-reference'; + outsideReferenceHolder.className = 'outside-reference'; + outsideReferenceHolderspan = document.createElement('span'); + outsideReferenceHolderspan.textContent = 'Reference'; + outsideReferenceHolder.appendChild(outsideReferenceHolderspan); + + var audioObject = audioEngineContext.newTrack(audioHolderObject.audioElements[audioHolderObject.outsideReference]); + + outsideReferenceHolder.onclick = function(event) + { + audioEngineContext.play(audioEngineContext.audioObjects.length-1); + $('.track-slider').removeClass('track-slider-playing'); + $('.comment-div').removeClass('comment-box-playing'); + if (event.currentTarget.nodeName == 'DIV') { + $(event.currentTarget).addClass('track-slider-playing'); + } else { + $(event.currentTarget.parentElement).addClass('track-slider-playing'); + } + }; + + document.getElementById('interface-buttons').appendChild(outsideReferenceHolder); + } } function sliderObject(audioObject) @@ -223,6 +261,10 @@ audioEngineContext.play(id); $(".track-slider").removeClass('track-slider-playing'); $(event.currentTarget.parentElement).addClass('track-slider-playing'); + var outsideReference = document.getElementById('outside-reference'); + if (outsideReference != null) { + $(outsideReference).removeClass('track-slider-playing'); + } }; this.enable = function() {
--- a/pythonServer.py Mon Dec 21 12:10:17 2015 +0100 +++ b/pythonServer.py Mon Dec 21 15:02:43 2015 +0100 @@ -24,9 +24,9 @@ curSaveIndex += 1; curFileName = 'test-'+str(curSaveIndex)+'.xml' -print "Next save - " + curFileName pseudo_index = curSaveIndex % len(pseudo_files) -print "Next test in pseudo-random queue - " + pseudo_files[pseudo_index] + +print 'URL: http://localhost:8000/index.html' def send404(s): s.send_response(404) @@ -34,6 +34,8 @@ s.end_headers() def processFile(s): + s.path = s.path.rsplit('?') + s.path = s.path[0] s.path = s.path[1:len(s.path)] st = s.path.rsplit(',') lenSt = len(st)