gpt4 book ai didi

javascript - 如何使用 javascript 播放任意 MIDI 音符?

转载 作者:可可西里 更新时间:2023-11-01 01:50:36 29 4
gpt4 key购买 nike

澄清一下:我不想生成 MIDI 文件,也不想播放 MIDI 文件,我希望即时播放 MIDI 音符。

我尝试使用 https://github.com/mudcube/MIDI.js作为 MIDI 库,它有点工作。

我可以通过调用 MIDI.noteOn(0,midiNumber,100); 来演奏音符。但是,即使我从不调用 MIDI.noteOff,这也会播放几秒钟的音符然后逐渐减弱。

我不认为这就是 MIDI 的工作方式。我希望能够调用 noteOn 并播放并维持音符直到调用 noteOff。

目标浏览器:现代 firefox/chrome。

最佳答案

这是你的 MIDI.js 版本的错误:

var playChannel = function (id) {
var note = notes[id];
if (!note) return;
var nid = (channel_nid + 1) % channels.length;
var time = (new Date()).getTime();
var audio = channels[nid];
channel_map[note.id] = audio;
audio.src = MIDI.Soundfont[note.id];
audio.volume = volume;
audio.play();
channel_nid = nid;
};

如您所见,playChannel 将加载给定的音符并播放它。由于没有 autoloop 属性,它不会重复,所以 noteOff 的调用不是必需的。如果将 audio 元素设置为自动循环,则可以自行解决此问题。

关于javascript - 如何使用 javascript 播放任意 MIDI 音符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14301785/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com