Skip to content

Commit e53861f

Browse files
author
Tory Hoke
committed
Fixed hilarious bug with default overlap being zero (less than updateInterval!)
Signed-off-by: Tory Hoke <tory@sub-q.com>
1 parent b9987f8 commit e53861f

File tree

4 files changed

+60
-43
lines changed

4 files changed

+60
-43
lines changed

sqTwineSound_demo.html

Lines changed: 10 additions & 10 deletions
Large diffs are not rendered by default.

sqTwineSound_demo.tws

Lines changed: 27 additions & 27 deletions
Large diffs are not rendered by default.

sqTwineSound_sugarcane_jonah.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,15 @@ GNU General Public License for more details.
233233
//Use easing to prevent sound popping in or out
234234
//
235235
var desiredVolume = easeInOutSine(currentIteration, startVolume, deltaVolume, totalIterations);
236-
audioObj.volume = desiredVolume;
236+
237+
//alert("Well desiredVol is " + desiredVolume + " cos currIter " + currentIteration + " startVol " + startVolume + " delta vol " + deltaVolume + " total iter " + totalIterations);
238+
//This should never happen, but if it does, skip the fade
239+
if (isNaN(desiredVolume)) {
240+
audioObj.volume = startVolume + deltaVolume;
241+
console.log("There was a problem with the fade. Possibly overlap " + this.overlap + " is shorter than updateInterval " + updateInterval + "? ");
242+
} else {
243+
audioObj.volume = desiredVolume;
244+
}
237245
currentIteration += 1;
238246

239247
if (audioObj.volume === (startVolume + deltaVolume)) {

sqTwineSound_sugarcube.js

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ GNU General Public License for more details.
7777

7878
var globalVolume = 1.0;
7979
var updateInterval = 10; //Update sound volume, etc. once every 10 ms
80+
var defaultOverlap = 1000; //Default track overlap is 1000 ms
8081
var minVolume = 0.01; // Minimum possible volume -- 0 is mute, so we want somethings slightly above that
8182
var soundInterval = 0.1; // Creates an interval of 1/10 creates ten stages of loudness. Used by quieter/louder. Feel free to tweak
8283
var fileExtensions = ["ogg", "mp3", "wav", "webm"]; // Acceptable file extensions for audio
@@ -154,7 +155,7 @@ GNU General Public License for more details.
154155

155156
// Defaults
156157
this.volumeProportion = 1.0; // By default, full volume
157-
this.overlap = 1000; // By default, 1000 ms (1 second)
158+
this.overlap = defaultOverlap; // By default, 1000 ms (1 second)
158159
this.isPlayable = false; // Assume audio is not playable
159160
this.looping = false; // Assume audio not looping
160161
this.alternate = false;
@@ -219,7 +220,15 @@ GNU General Public License for more details.
219220
//Use easing to prevent sound popping in or out
220221
//
221222
var desiredVolume = easeInOutSine(currentIteration, startVolume, deltaVolume, totalIterations);
222-
audioObj.volume = desiredVolume;
223+
224+
//alert("Well desiredVol is " + desiredVolume + " cos currIter " + currentIteration + " startVol " + startVolume + " delta vol " + deltaVolume + " total iter " + totalIterations);
225+
//This should never happen, but if it does, skip the fade
226+
if (isNaN(desiredVolume)) {
227+
audioObj.volume = startVolume + deltaVolume;
228+
console.log("There was a problem with the fade. Possibly overlap " + this.overlap + " is shorter than updateInterval " + updateInterval + "? ");
229+
} else {
230+
audioObj.volume = desiredVolume;
231+
}
223232
currentIteration += 1;
224233

225234
if (audioObj.volume === (startVolume + deltaVolume)) {
@@ -592,7 +601,7 @@ GNU General Public License for more details.
592601

593602
var soundtrack = getSoundTrack(this.args[0]);
594603
var volumeProportion = args[1] !== undefined ? args[1] : soundtrack.volumeProportion;
595-
soundtrack.overlap = args[2] !== undefined ? args[2] : 0;
604+
soundtrack.overlap = args[2] !== undefined ? args[2] : defaultOverlap;
596605
var loop = args[3] !== undefined ? args[3] : false;
597606
soundtrack.setVolumeProportion(volumeProportion);
598607
soundtrack.updateVolume();
@@ -628,7 +637,7 @@ GNU General Public License for more details.
628637
for (var index = 0; index < clipNames.length; index++) {
629638
var soundtrack = getSoundTrack(cleanClipName(clipNames[index]));
630639
var volumeProportion = args[1] !== undefined ? args[1] : soundtrack.volumeProportion;
631-
soundtrack.overlap = args[2] !== undefined ? args[2] : 0;
640+
soundtrack.overlap = args[2] !== undefined ? args[2] : defaultOverlap;
632641
var loop = args[3] !== undefined ? args[3] : false;
633642
soundtrack.setVolumeProportion(volumeProportion);
634643
soundtrack.updateVolume();
@@ -728,7 +737,7 @@ GNU General Public License for more details.
728737
var args = manageCommonArgs(this, [clipNameLabel]);
729738
var soundtrack = getSoundTrack(this.args[0]);
730739
var volumeProportion = args[1] !== undefined ? args[1] : soundtrack.volumeProportion;
731-
soundtrack.overlap = args[2] !== undefined ? args[2] : 0;
740+
soundtrack.overlap = args[2] !== undefined ? args[2] : defaultOverlap;
732741
soundtrack.setVolumeProportion(volumeProportion);
733742
soundtrack.updateVolume();
734743
soundtrack.loop();

0 commit comments

Comments
 (0)