Mercurial > hg > webaudioevaluationtool
changeset 145:df5890970aba
Merge in main
author | Nicholas Jillings <nicholas.jillings@eecs.qmul.ac.uk> |
---|---|
date | Sat, 30 May 2015 11:39:53 +0100 |
parents | ea6424dc5f04 (current diff) 4c59838d1225 (diff) |
children | 2d08d2025258 |
files | |
diffstat | 2 files changed, 8 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/ape.js Fri May 29 16:33:50 2015 +0100 +++ b/ape.js Sat May 30 11:39:53 2015 +0100 @@ -110,11 +110,6 @@ // Create APE specific metric functions audioEngineContext.metric.initialiseTest = function() { - var sliders = document.getElementsByClassName('track-slider'); - for (var i=0; i<sliders.length; i++) - { - audioEngineContext.audioObjects[i].metric.initialised(convSliderPosToRate(i)); - } }; audioEngineContext.metric.sliderMoveStart = function(id) @@ -374,7 +369,6 @@ if (this.status == 1) { this.audioObjects[id].outputGain.gain.value = 1.0; this.audioObjects[id].play(audioContext.currentTime+0.01); - this.audioObjects[id].flagAsPlayed(); } }; } @@ -437,9 +431,10 @@ trackSliderObj.className = 'track-slider'; trackSliderObj.id = 'track-slider-'+index; // Distribute it randomnly - var w = window.innerWidth - 100; + var w = window.innerWidth - (offset+8)*2; w = Math.random()*w; - trackSliderObj.style.left = Math.floor(w)+50+'px'; + w = Math.floor(w+(offset+8)); + trackSliderObj.style.left = w+'px'; trackSliderObj.innerHTML = '<span>'+index+'</span>'; trackSliderObj.draggable = true; trackSliderObj.ondragend = dragEnd; @@ -473,6 +468,7 @@ }; canvas.appendChild(trackSliderObj); + audioEngineContext.audioObjects[index].metric.initialised(convSliderPosToRate(index)); });
--- a/core.js Fri May 29 16:33:50 2015 +0100 +++ b/core.js Sat May 30 11:39:53 2015 +0100 @@ -477,7 +477,7 @@ this.checkAllPlayed = function() { arr = []; for (var id=0; id<this.audioObjects.length; id++) { - if (this.audioObjects[id].played == false) { + if (this.audioObjects[id].metric.wasListenedTo == false) { arr.push(this.audioObjects[id].id); } } @@ -513,8 +513,6 @@ this.url = null; // Hold the URL given for the output back to the results. this.metric = new metricTracker(this); - this.played = false; - // Create a buffer and external gain control to allow internal patching of effects and volume leveling. this.bufferNode = undefined; this.outputGain = audioContext.createGain(); @@ -528,15 +526,10 @@ // the audiobuffer is not designed for multi-start playback // When stopeed, the buffer node is deleted and recreated with the stored buffer. this.buffer; - - this.flagAsPlayed = function() { // to be called explicitly when not in loop mode - this.played = true; - } this.loopStart = function() { this.outputGain.gain.value = 1.0; this.metric.startListening(audioEngineContext.timer.getTestTime()); - this.played = true; } this.loopStop = function() { @@ -553,8 +546,9 @@ this.bufferNode.buffer = this.buffer; this.bufferNode.loop = audioEngineContext.loopPlayback; this.bufferNode.onended = function() { - this.owner.metric.stopListening(audioEngineContext.timer.getTestTime()); - }; + // Safari does not like using 'this' to reference the calling object! + event.srcElement.owner.metric.stopListening(audioEngineContext.timer.getTestTime()); + }; if (this.bufferNode.loop == false) { this.metric.startListening(audioEngineContext.timer.getTestTime()); }