diff --git a/src/blocks/scratch3_sound.js b/src/blocks/scratch3_sound.js index 15b273252..d546408e9 100644 --- a/src/blocks/scratch3_sound.js +++ b/src/blocks/scratch3_sound.js @@ -1,6 +1,5 @@ var MathUtil = require('../util/math-util'); var Cast = require('../util/cast'); -var Promise = require('promise'); var Scratch3SoundBlocks = function (runtime) { /** @@ -21,6 +20,7 @@ Scratch3SoundBlocks.prototype.getPrimitives = function () { sound_stopallsounds: this.stopAllSounds, sound_playnoteforbeats: this.playNoteForBeats, sound_playdrumforbeats: this.playDrumForBeats, + sound_restforbeats: this.restForBeats, sound_setinstrumentto: this.setInstrument, sound_seteffectto: this.setEffect, sound_changeeffectby: this.changeEffect, @@ -30,8 +30,9 @@ Scratch3SoundBlocks.prototype.getPrimitives = function () { sound_effects_menu: this.effectsMenu, sound_setvolumeto: this.setVolume, sound_changevolumeby: this.changeVolume, - sound_sound_settempotobpm: this.setTempo, - sound_changetempoby: this.changeTempo + sound_settempotobpm: this.setTempo, + sound_changetempoby: this.changeTempo, + sound_tempo: this.getTempo }; }; @@ -69,21 +70,15 @@ Scratch3SoundBlocks.prototype.stopAllSounds = function (args, util) { }; Scratch3SoundBlocks.prototype.playNoteForBeats = function (args, util) { - util.target.audioPlayer.playNoteForBeats(args.NOTE, args.BEATS); - return new Promise(function (resolve) { - setTimeout(function () { - resolve(); - }, (1000 * args.BEATS)); - }); -}; + return util.target.audioPlayer.playNoteForBeats(args.NOTE, args.BEATS); + }; Scratch3SoundBlocks.prototype.playDrumForBeats = function (args, util) { - util.target.audioPlayer.playDrumForBeats(args.DRUM, args.BEATS); - return new Promise(function (resolve) { - setTimeout(function () { - resolve(); - }, (1000 * args.BEATS)); - }); + return util.target.audioPlayer.playDrumForBeats(args.DRUM, args.BEATS); +}; + +Scratch3SoundBlocks.prototype.restForBeats = function (args, util) { + return util.target.audioPlayer.waitForBeats(args.BEATS); }; Scratch3SoundBlocks.prototype.setInstrument = function (args, util) { @@ -125,6 +120,10 @@ Scratch3SoundBlocks.prototype.changeTempo = function (args, util) { util.target.audioPlayer.changeTempo(value); }; +Scratch3SoundBlocks.prototype.getTempo = function (args, util) { + return util.target.audioPlayer.currentTempo; +}; + Scratch3SoundBlocks.prototype.soundsMenu = function (args) { return args.SOUND_MENU; };