summaryrefslogtreecommitdiff
path: root/threads.js
diff options
context:
space:
mode:
authorGubolin <gubolin@fantasymail.de>2014-08-05 12:01:41 +0200
committerGubolin <gubolin@fantasymail.de>2014-08-05 12:01:41 +0200
commitad400763c1f4cd10675a9e6bc56d1630d8c6cb5d (patch)
tree7dad539d6e3a7dda5b8145be4032fa9f9dd9f1f5 /threads.js
parent5a485b466779e26259323173f453275bece79713 (diff)
downloadsnap-ad400763c1f4cd10675a9e6bc56d1630d8c6cb5d.tar.gz
snap-ad400763c1f4cd10675a9e6bc56d1630d8c6cb5d.zip
mute Notes immediately
Diffstat (limited to 'threads.js')
-rw-r--r--threads.js15
1 files changed, 11 insertions, 4 deletions
diff --git a/threads.js b/threads.js
index 5347110..354d002 100644
--- a/threads.js
+++ b/threads.js
@@ -2716,8 +2716,9 @@ Process.prototype.doPlayNote = function (pitch, beats) {
Process.prototype.doPlayNoteForSecs = function (pitch, secs) {
// interpolated
- var volume = this.homeContext.receiver.volume;
- var muted = this.homeContext.receiver.parentThatIsA(StageMorph).muted;
+ var receiver = this.homeContext.receiver;
+ var volume = receiver.volume;
+ var muted = receiver.parentThatIsA(StageMorph).muted;
if (muted === true) {
volume = 0;
@@ -2725,16 +2726,22 @@ Process.prototype.doPlayNoteForSecs = function (pitch, secs) {
if (!this.context.startTime) {
this.context.startTime = Date.now();
- this.context.activeNote = new Note(pitch);
- this.context.activeNote.play(volume);
+ this.context.activeNote = new Note(pitch, volume);
+ this.context.activeNote.play();
}
+
if ((Date.now() - this.context.startTime) >= (secs * 1000)) {
if (this.context.activeNote) {
this.context.activeNote.stop();
this.context.activeNote = null;
}
return null;
+ } else if (this.context.activeNote) {
+ if (this.context.activeNote.volume !== volume) {
+ this.context.activeNote.setVolume(volume);
+ }
}
+
this.pushContext('doYield');
this.pushContext();
};