首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Javascript播放音乐笔记

用Javascript播放音乐笔记
EN

Stack Overflow用户
提问于 2016-03-13 12:08:46
回答 1查看 4K关注 0票数 4

我正在开发一个小的自由软件项目,这基本上是一个音乐,键盘和乐谱编辑器。

我在这个项目的第一步是演奏音符,或者构思音符本身。我使用的是音色,这是一些文档化的http://mohayonao.github.io/timbre.js。我的第一个功能是从正弦函数转换音频中的"C4“(do4 en Fran Ais)。

但我现在不能做的是演奏和停止音符。Play用于开始正弦波,但是当我播放第二个音符时,第一个音符不会消失,所以我得到了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

EN

回答 1

Stack Overflow用户

发布于 2016-03-13 14:58:25

我能够使用synth.noteOnWithFreq()播放笔记,然后使用synth.noteOff()结束它们,代码基于timbre.js项目页面上的合成器示例。请确保包括如下所示的keyboard.js库。

运行代码片段,单击输入框,并键入一些字母

代码语言:javascript
运行
复制
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();
代码语言:javascript
运行
复制
<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">

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35970023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档