Arduino AppleMIDI Library
v3.2.0
使具有 IP/UDP 功能(以太网扩展板、ESP8266、ESP32...)的 Arduino 能够参与 AppleMIDI 会话。
重要提示:请阅读下面有关扩大标准以太网库缓冲区大小以避免丢失 MIDI 消息的注释!
从 Arduino IDE 库管理器中,搜索 AppleMIDI
这还将安装 FortySevenEffects MIDI 库
# include < Ethernet.h >
# include < AppleMIDI.h >
byte mac[] = { 0xDE , 0xAD , 0xBE , 0xEF , 0xFE , 0xED };
APPLEMIDI_CREATE_DEFAULTSESSION_INSTANCE ();
void setup ()
{
Ethernet. begin (mac);
MIDI. begin (); // listens on channel 1
}
void loop ()
{
// Listen to incoming notes
MIDI. read ();
....
if (something) {
// Send MIDI note 40 on, velocity 55 on channel 1
MIDI. sendNoteOn ( 40 , 55 , 1 );
}
}
更多用法请参见示例文件夹和 wiki
Mac 上的会话名称可能会很长(例如“Johann Gambolputty 的 Macbook Pro .. Ulm 的 von Hautkopft”),并且会被截断为MaxSessionNameLen
库的内存占用可以显着降低,请阅读 wiki
强烈建议修改以太网库或使用Ethernet3库以避免缓冲区溢出 - 了解更多
使用有线以太网可以减少延迟,Wi-Fi 会增加延迟,并且延迟各不相同。更多维基百科
我很乐意包含您的增强功能或错误修复!请注意维护现有的编码风格,而不是正式的样式指南。请在发送拉取请求之前测试您的代码。如果您在拉取请求中包含对更改的详细说明,将会非常有帮助。