npm 包 observ-midi 使用教程

阅读时长 7 分钟读完

前言

observ-midi 是一个基于 JavaScript 的 npm 包,可以帮助在 Web 应用中连接 MIDI 设备,接收和处理 MIDI 事件。在音乐和交互设计领域具有很强的应用价值。本文将从使用场景、安装、基本概念、使用方法和示例代码等方面详细介绍 observ-midi 的使用方法。

场景

observ-midi 适用于那些需要通过 MIDI 设备获取用户输入并处理的 Web 应用场景。例如,音乐创作、互动艺术、游戏开发等,都可以使用 observ-midi 实现与 MIDI 设备的连接和交互。

安装

在使用 observ-midi 之前,需要先安装 Node.js 的运行环境和 npm 包管理工具。在安装完成后,可以通过以下命令在项目中安装 observ-midi:

基本概念

在使用 observ-midi 之前,需要了解以下几个基本概念:

  • MIDI:Musical Instrument Digital Interface 的缩写,音乐器件数字接口。它是一种用于音乐设备之间通讯的标准协议。

  • MIDI 设备:包括 MIDI 键盘、MIDI 编曲软件等硬件和软件设备,可以通过 MIDI 消息与其他设备进行通讯。

  • MIDI 消息:通过 MIDI 设备传递的信息。包括控制器、音符、滑块等消息,以及系统消息。

  • MIDI 输入输出:MIDI 设备发送和接收 MIDI 消息的过程。

使用方法

基本用法

使用 observ-midi 可以轻松地连接和处理 MIDI 设备输入数据。以下是本包的基本用法:

上述代码中,通过 observMidi.requestAccess() 方法请求 MIDI 设备访问权限,再通过 access.inputs 属性获取 MIDI 输入设备。随后,通过 input.on 方法监听 MIDI 数据,并在控制台输出接收到的 MIDI 数据。

MIDI 数据格式

observ-midi 对 MIDI 数据进行了封装,将接收到的 MIDI 数据按照如下规则进行转换:

-- -------------------- ---- -------
-- ---- -------- -------- ------ ------
-- ---------- --- - ----- --------- ----- --- --------- --- -

-
  -- ---- ---
  ------- -------
  -- ---- -- -
  ------ -------
  -- ---- -- -
  ------ -------
  -- ---- --
  ----- -------
  -- ---- --
  ----- -------
  -- ---- --
  --------- -------
  -- ---- -- ---
  --- -------
  -- ---- ----
  ------ -------
  -- ---- ----
  -------- -------
  -- ---- ----
  ---------------- -------
  -- ---- ----
  ------ -------
-
展开代码

高级用法

除了基本用法以外,observ-midi 还提供了更多的 API 和事件,在更复杂的场景下具有更强的扩展性。以下是一些高级用法:

  • 获取输出设备

使用 access.outputs 属性获取 MIDI 输出设备。例如:

  • 发送 MIDI 消息

使用 output.send([status, data1, data2]) 方法发送 MIDI 消息。例如:

  • 关闭设备

使用 access.close() 方法关闭 MIDI 输入输出设备。例如:

更多 API 请参考 observ-midi 的官方文档

示例代码

以下是一个以 observ-midi 为基础的 Web 应用示例。该应用可以通过 MIDI 键盘控制音符播放,实现了一个简单的音乐创作工具。

-- -------------------- ---- -------
--------- -----
------
  ------
    ----- --------------- --
    ------------- ---- ------------
  -------
  ------
    ------- ----------- ----------- ----------------------
    ------- --------------------------
  -------
-------
展开代码
-- -------------------- ---- -------
------ ---------- ---- --------------

----- ------ - ----------------------------------
----- ------- - ------------------------

----- ------ - ----- ---------------------------
----- ----- - -----------------

----- ----- - ---

-------- ------ -
  -------------------- -- ------------- ---------------

  ------------------------------- -- -
    ----- - - ----------- - ---
    ----- - - ---- - ----- - --

    ----------------- - -------
    ------------------- -- --- ----

    ------------------- - -------
    --------------------- -- --- ----
  ---

  ----------------------------
-

-------

---------------- -------- -- -
  ----- - ----- ----- -------- - - --------------------------------

  -- ----- --- --------- -
    ----------- - ---------
  - ---- -- ----- --- ---------- -
    ------ ------------
  -
---

------------------------------------ ----- -- -
  -- -------------- -
    -------
  -

  ----- ---- - -- - ------------- - ---
  ----------- - ----

  ----------------- ----- ------
---

---------------------------------- ----- -- -
  ----- ---- - -- - ------------- - ---

  -- ------------ --- ---------- -
    -------
  -

  ------ ------------

  ----------------- ----- ------
---
展开代码

该示例中,通过监听 MIDI 键盘输入和 Web 页面键盘输入,将 MIDI 消息转换为音符数据,并在 Canvas 上绘制出已经按下的键盘。同时,通过 MIDI 输出设备将音符发送到 MIDI 控制器中,实现实时控制 MIDI 设备的效果。

总结

observ-midi 是一个非常方便的 npm 包,能够帮助我们在 Web 应用中实现与 MIDI 设备的连接和交互。本文详细介绍了 observ-midi 的安装、基本概念和使用方法,并提供了一个简单的应用示例。在使用时,需要注意 MIDI 消息的格式和 API 的使用频度和性能。相信在实际应用中,observ-midi 能够为开发者带来极大的便利,帮助更好地满足用户的需求。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f9c3d1de16d83a66f71

纠错
反馈

纠错反馈