什么是 emu?
emu 是一个轻量级的 JavaScript 库,它提供了一种简单的方法来处理 Web Midi API 中的合成器和控制器消息。我们可以很容易地使用它来创建和修改 MIDI 消息,播放 MIDI 数据,以及添加 MIDI 控制和音符等等。
安装和使用 emu
emu 可以通过 npm 来安装,我们可以在终端中输入以下命令进行安装:
npm install emu
安装完成后,我们就可以直接在代码中进行使用,以下是一个简单的示例代码:
-- -------------------- ---- ------- ----- --- - --------------- ----- ------- - ------------------- -- ---- ----- -------- - ------ --------- -- - --------------------- --------------- ---------------------- ---------- -- ----- ------ - ----------------------------- ------- -------------------- -- - ----------------- ----- - -------- ----- ----------------- - - ---- --------------------------------- ------------------- ----- -- - --------------------- -------------- -- ------------ ----- ----- ---
上例代码中,我们首先引入 emu 库和 Web Midi API 库,然后使用 emu.init() 方法将 MIDI 输出设备传递给 emu,接着点击设备监听 MIDIMessage 事件,最后使用 emu.noteNumber() 方法创建一个 C4 音符实例,每 500ms 播放一次。
emu API
以下是 emu API 的详细介绍。
emu.init(device)
用于初始化 emu,需要传入 WebMidi 输出设备实例作为参数。
emu.noteOn(note, velocity)
用于播放按键按下的音符。note 是音符的名字,如 "C4",velocity 是音符力度,范围为 0-127。
emu.noteOff(note, velocity)
用于播放按键松开时的音符。note 是音符的名字,如 "C4",velocity 是音符力度,范围为 0-127。
emu.allNotesOff()
用于停止所有正在播放的音符。
emu.controlChange(controllerNumber, value)
用于修改控制器的值。controllerNumber 是控制器的编号,value 是控制器的值,范围为 0-127。
emu.pitchBend(value)
用于修改音高。value 是音高的值,范围为 -8192-8191,中间值为 0。
emu.allSoundOff()
用于停止所有正在播放的声音,并重置所有控制器的值。
结语
emu 是一个非常好用的 JavaScript 库,它简化了处理 MIDI 消息的过程,有助于提高 Web Midi 应用的开发效率。希望这篇教程能对大家学习和使用 emu 有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/62265