跳到主要内容
版本:3.0 Beta 🧪

MIDI API

概述

Matrix OS 的 MIDI 系统复杂且强大。它允许你向不同的已注册 MIDI 端口或同时向多个 MIDI 端口发送和接收 MIDI 消息,包括系统独占(SysEx)消息。

你甚至可以在线程上创建虚拟端口来与你的应用程序通信。

有关 MIDI 数据包和端口结构的更多信息,请参阅 MIDI 数据包MIDI 端口 文档。

此 API 的头文件是 os/MatrixOS.h 的一部分,实现位于 os/system/MIDI.cpp


MatrixOS::MIDI::Get

bool Get(MidiPacket* midiPacketDest, uint16_t timeout_ms = 0);

检索下一个可用的 MIDI 数据包。如果没有数据包可用,函数将等待指定的超时时间。

MIDI 数据包的源在数据包的 port 字段中。

参数:

  • midiPacketDest (MidiPacket*):用于存储检索到的 MIDI 数据包的指针。
  • timeout_ms (uint16_t,可选):等待 MIDI 数据包的最大时间(以毫秒为单位)。默认值为 0

返回值:

  • bool:如果成功检索到 MIDI 数据包则返回 true,否则返回 false

MatrixOS::MIDI::Send

bool Send(MidiPacket midiPacket, uint16_t timeout_ms = 0);

发送 MIDI 数据包。数据包将被发送到数据包中指定的端口。

参数:

  • midiPacket (MidiPacket):要发送的 MIDI 数据包。
  • timeout_ms (uint16_t,可选):发送操作的最大等待时间(以毫秒为单位)。默认值为 0

返回值:

  • bool:如果 MIDI 数据包发送成功则返回 true,否则返回 false

MatrixOS::MIDI::SendSysEx

bool SendSysEx(uint16_t port, uint16_t length, uint8_t* data, bool includeMeta = true);

发送系统独占(SysEx)MIDI 消息缓冲区。可选择性地包含正确的 SysEx 头和结尾。

参数:

  • port (uint16_t):用于发送 SysEx 消息的 MIDI 端口。
  • length (uint16_t):SysEx 数据的长度。
  • data (uint8_t*):指向要发送的 SysEx 数据的指针。
  • includeMeta (bool,可选):是否包含默认的 SysEx 头和结尾。默认值为 true。如果为 false,数据必须包含 SysEx 头和结尾。

返回值:

  • bool:如果 SysEx 消息发送成功则返回 true,否则返回 false

Comments