bviguier/php-rtmidi

通过 RtMidi 和 FFI 实现实时 MIDI 输入/输出。

v0.0.1 2022-01-19 13:37 UTC

This package is auto-updated.

Last update: 2024-09-15 10:29:14 UTC


README

Php 实时 MIDI 输入/输出库,利用 RtMidiFFI 实现。

要求

  • Php >=7.4 (支持 FFI
  • RtMidi 版本 6 库需要在您的系统上编译。

安装

composer require bviguier/php-rtmidi

在 MacOS 上,您可以通过 brew 全局安装 RtMidi

brew install rtmidi

⚠️ 在 Linux 上,软件包注册表通常提供 librtmidi.so.4,这是版本 3!要手动编译

特性

  • 发送 MIDI 消息(包括系统专用消息)
  • 接收 MIDI 消息(包括系统专用消息)
  • 创建虚拟输入或输出

用法

如果 RtMidi 在您的系统上不可用,您需要提供其路径。默认情况下,PhpRtMidi 尝试通过其 标准 名称加载库,但名称可能取决于您的操作系统或构建。您还可以使用 LIB_RTMIDI_PATH 环境变量提供库的路径。

此库不完全匹配原始的 RtMidi 接口,但试图提供一个简单的开发者体验。

$browser = new \bviguier\RtMidi\MidiBrowser();

$input = $browser->openInput('My Input');
$output = $browser->openOutput('My Output');

echo "Midi thru enabled, use Ctr-C to exit…\n";
while (true) {
    if ($msg = $input->pullMessage()) {
        $output->send($msg);
    }
    usleep(100);
}

查看 examples 目录 以更好地了解其用法。