在现代开发中,使用 npm 包管理器已经是一种标配了。而今天,我们将讨论的是一款叫做 rtpmidi 的 npm 包,它是一个面向前端的实时 MIDI 信息传输工具。本篇文章将详细介绍 rtpmidi 的安装和使用,包括如何设置和初始化,如何建立连接以及相关的示例代码。
安装
在我们开始之前,首先需要使用 npm 的两个步骤来安装 rtpmidi。
$ npm install --save rtpmidi
这将在项目中安装 rtpmidi 的最新版本,并在你的 node_modules
文件夹中创建一个包含所有必要文件的子目录。
基本配置
调用 rtpmidi 之前,需要创建一个 rtpmidi 的实例,然后添加观察者来检测「即时事件」。下面是如何执行这些步骤的:
-- -------------------- ---- ------- ----- ------- - ------------------- -- --- ------- -- -- ----- ---- - --- ---------- -- -------- ---- -- -- ------------------ ----------- -------- -- - ----------------------- - - --------- - -- -------- - - ------- -- ---
首先需要引入 rtpmidi,并初始化 RtpMidi
类。然后添加一个观察者来接收 MIDI 数据。此处观察者借用了 Observable 类型。
建立连接
在转换 MIDI 数据之前,必须建立一个 MIDI 设备之间的网络连接。可以使用几种不同的方法,具体取决于网络配置和传输偏好。然而在此处,我们应该使用的是 RtpMidi.createSession()
。
const session = RtpMidi.createSession({ localName: 'MIDI HERE', bonjourName: 'My MIDI Session', port: 5006, address: '192.168.1.123' }); session.connect({ address: '192.168.1.456', port: 5006 });
createSession()
方法生成一个 rtpmidi 会话,该会话封装了 rtpmidi 的一些重要设置,如本地名称、bonjour 名称和端口,等等。而 connect
方法则用于建立与 MIDI 设备的网络连接。其参数是一个对象,用于指定网络地址和端口号。
发送消息
正如我们之前所述,RtpMidi
类已经被用于建立并连接到网络 MIDI 设备。那么,下面就是一些有关如何发送 MIDI 消息的示例代码。
/* 发送 Note On 信息 */ midi.send([0x90, 0x45, 0x7f]); /* 发送 Note Off 信息 */ midi.send([0x80, 0x45, 0x40]); /* 发送 Pitch Bend 信息 */ midi.send([0xE0, 0x00, 0x40]);
这些示例展示了如何通过 send
方法向 MIDI 设备发送消息。其中,每个数组都代表了不同类型的 MIDI 信息。
FAQ
如何理解 DeltaTime?
DeltaTime 是(在 MIDI 数据流中)前一条 MIDI 信息与当前 MIDI 信息之间的时间系统(或 Delta)。其中的值是以多个 Midi 时钟单位计算的 。
如何理解 Midi 信息?
MIDI 数据流中传输的信息通常有三个组成部分:状态字节、数据字节1和数据字节2。请参考相关的 MIDI 规范,以了解其详尽内容。
结论
npm 包 rtpmidi 是一个面向前端开发者的实时 MIDI 信息传输工具,它通过网络连接来区分 MIDI 设备之间的信息传输。本文详细介绍了 rtpmidi 的安装和使用,其中包括如何初始化、建立连接以及发送消息等算法。希望可以为你实现 MIDI 数据传输功能提供帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60067355890c4f7277583adf