我正在开发一个小型的免费软件项目,它基本上是一个音乐键盘和评分表编辑器。
我在这个项目中的第一步是自己演奏音符和/或构思音符。我使用了音色,这是一些有记载的http://mohayonao.github.io/timbre.js。我的第一个功能是在正弦函数的音频声音中转换例如“C4”(do4enfrançais)。
但我现在不能做的是播放和停止音符。播放工作开始正弦波但是当我播放第二个音符时,第一个音符不会消失所以我得到2个正弦然后3个
我的剧本 https://gitlab.com/mdahmen/Laterreestron.de/blob/master/pagesandapps/partgenie/js/lecture.js
http://mohayonao.github.io/timbre.js
测试页:http://laterreestron.de/pagesandapps/partgenie/index.php
答案 0 :(得分:1)
我能够使用synth.noteOnWithFreq()
播放笔记,然后使用synth.noteOff()
结束笔记。代码基于Synthesizer项目页面上的timbre.js示例。请确保包含keyboard.js库,如下所示。
运行代码段,点击输入框,然后输入一些字母
var synth = T("OscGen", {
wave: "saw",
mul: 0.25
}).play();
var keydict = T("ndict.key");
var midicps = T("midicps");
T("keyboard").on("keydown", function(e) {
var midi = keydict.at(e.keyCode);
if (midi) {
var freq = midicps.at(midi);
synth.noteOnWithFreq(freq, 100);
window.key.innerHTML = midi;
window.freq.innerHTML = freq.toFixed(2);
}
}).on("keyup", function(e) {
var midi = keydict.at(e.keyCode);
if (midi) {
synth.noteOff(midi, 100);
}
}).start();
<script src="http://mohayonao.github.io/timbre.js/timbre.js"></script>
<script src="http://mohayonao.github.io/timbre.js/src/extras/keyboard.js"></script>
<div>KeyCode: <span id="key"></span>, Freq: <span id="freq"></span></div>
<input id="keyboard" placeholder="Type some letters here">