发出一声嘟嘟声(beep.js)

mga*_*mga 5 javascript coffeescript

我正在尝试根据我的一些地图数据使用beep.js创建一个"生成分数" .我new Beep.Voice用作与特定数据类型相关的注释的占位符(总共7个声音).显示数据时,应播放语音.到目前为止,我正在做一些非常"蛮力"的事情,我希望它更清洁:

// in the data processing function
voice = voices[datavoice]
voice.play()
setTimeout(function(){killVoice(voice)}, 20)

// and the killvoice:
function killVoice(voice) {
    voice.pause()
}
Run Code Online (Sandbox Code Playgroud)

我想只是"播放"这个声音,假设它的持续时间为20毫秒(基本上只是在数据上发出哔哔声).我看到了duration声音的属性但却无法使它们发挥作用.

代码在这里(使用grunt/node/coffeescript):

https://github.com/mgiraldo/inspectorviz/blob/master/app/scripts/main.coffee

到目前为止它是这样的:

https://vimeo.com/126519613

ste*_*dio 2

忘记我说过的一切;)

\n\n

受到您的询问的启发\xe2\x80\x94and Sam\xe2\x80\x99s 旧拉取请求\xe2\x80\x94I\xe2\x80\x99ve 刚刚完成了一次大型 ADSR 推送,其中包括对持续Voice时间的支持。因此,现在使用最新的Beep.js可以像这样获得快速 \xe2\x80\x9cchiptune-y\xe2\x80\x9d chirp:

\n\n
var voice = new Beep.Voice( \'4D\xe2\x99\xad\' )\n    .setOscillatorType( \'square\' )\n    .setAttackDuration( 0 )\n    .setDecayDuration( 0 )\n    .setSustainDuration( 0.002 )\n    .setReleaseDuration( 0 )\n    .play()\n
Run Code Online (Sandbox Code Playgroud)\n\n

I\xe2\x80\x99ve 甚至在新文件中包含了ADSR ASCII-art 图表Beep.Voice.js以方便参考。我希望这有帮助!

\n