npm 包 midi-grabber 使用教程

阅读时长 4 分钟读完

在前端开发中,有许多涉及音频的应用场景,比如钢琴键盘、音乐游戏、音频播放器等,而 midi 文件作为一种简单且跨平台的音频格式,可以被广泛应用。本篇文章介绍如何使用 npm 包 midi-grabber 来获取 midi 文件信息,并解析为可读取的数据。

1. 什么是 midi-grabber

midi-grabber 是一个用于在浏览器中获取 midi 文件信息的 Node.js 库。它提供了读取 midi 文件的方法,并将 midi 数据解析为可读取的数据。使用 midi-grabber 可以使得我们更好地在前端应用中使用 midi 数据。

2. 安装 midi-grabber

如果我们想在项目中使用 midi-grabber,首先需要在项目中安装该包。打开命令行终端,进入到项目根目录下,执行以下命令即可:

3. 使用 midi-grabber

安装完 midi-grabber 后,即可开始使用。midi-grabber 提供了一个 readMidiFile 方法,用于读取 midi 文件并解析数据。下面通过一个简单的实例来演示如何使用:

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

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

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

上述代码先引入了 midi-grabber,在调用其 readMidiFile 方法时指定了 midi 文件的 URL,并使用 promise 来捕获异步操作的结果。接下来,我们需要了解一下 midi-grabber 返回的数据格式。

4. midi-grabber 数据格式

midi-grabber 返回的数据格式如下:

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

上述格式中,format 是 midi 文件的格式标识符,tracks 是一个数组,其中每个元素代表一条轨道,events 是该轨道中的事件数组。每个事件对象包含 delta 属性和 message 属性,分别表示该事件与上一个事件的时间间隔和事件的具体数据。message 是一个数组,包含了事件的类型和参数等信息。

5. 示例解析

通过上面的示例代码,我们得到了 midi 数据的读取结果,并通过 console.log 输出了该结果,现在解析一下这个结果。

以下为示例输出的 midi 数据:

这个 midi 文件包括 3 条轨道,每条轨道的数据都存储在 tracks 数组的一个元素中。每个轨道又由多个事件组成,存储在 events 数组中。

以下是每条轨道的具体事件列表:

以上为第一条轨道的事件列表,每个事件对象包括了 delta 和 message 两个属性。

通过 deltas 属性可以得到每个事件与上一个事件之间的时间差,通过 message 属性,我们可以看到该事件的具体数据。例如,事件 [144, 57, 74] 表示将弹奏 57 键,并用 74 作为音量。而事件 [128, 57, 64] 则表示停止弹奏 57 键。

总结

在本篇文章中,我们介绍了 npm 包 midi-grabber 的使用方法,并解析了返回的 midi 数据格式。掌握这些内容,可以让我们更好地在前端项目中使用 midi 数据,并实现更多有趣的功能。

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

纠错
反馈