gpt4 book ai didi

javascript - MIDI Javascript : how to generate a single MIDI note in javascript without libraries?

转载 作者:行者123 更新时间:2023-12-03 11:21:37 26 4
gpt4 key购买 nike

我一直在阅读有关 Web Midi API 的文档,并尝试查看有关该主题的不同网站。有没有一种方法可以在不使用花哨的库和东西的情况下播放 midi 声音?假设我只想生成一个音符:如何访问本地机器上的 midi 模块?任何人都可以编写一小段代码来播放单个音符并且我可以简单地将其嵌入到元素中吗?

最佳答案

Web Audio API 不直接与 MIDI 设备交互,包括您计算机上的软件 MIDI 合成器。为此,您需要使用(不是很好支持)Web MIDI API .

但是,如果您只想根据单个 MIDI 音符的参数播放一个简单的单音符,您可以将这些参数转换为与 Oscillator 一起使用来源:

audio = new (window.AudioContext || window.webkitAudioContext)()

function playNote(frequency, volume, duration)
{
var halfPeriod = 1/frequency/2
if(duration > halfPeriod) duration -= duration % halfPeriod
else duration = halfPeriod

var g = audio.createGain()
var o = audio.createOscillator()
o.connect(g)
g.connect(audio.destination) // so you actually hear the output

o.frequency.value = frequency
g.gain.value = volume
o.start(0)
o.stop(audio.currentTime + duration)
}

该函数的前三行用于调整持续时间,以避免在波形不为零时切断振荡器,因为这会导致令人不快的爆裂声。

更新了最新的(2015 年 12 月草案)WebAudio 规范

关于javascript - MIDI Javascript : how to generate a single MIDI note in javascript without libraries?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28778163/

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