Позволяет Arduino с возможностями IP/UDP (экран Ethernet, ESP8266, ESP32, ...) участвовать в сеансе AppleMIDI.
Важно: Пожалуйста, прочитайте примечание ниже об увеличении размера буфера стандартной библиотеки Ethernet, чтобы избежать потери MIDI-сообщений!
В диспетчере библиотек Arduino IDE найдите AppleMIDI.
Это также установит MIDI-библиотеку FortySevenEffects.
# 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 );
}
}
Больше вариантов использования в папке примеров и в вики.
Имена сеансов на Mac могут быть очень длинными (например, «Macbook Pro Иоганна Гамболпутти .. фон Хауткопфта из Ульма») и будут сокращены до MaxSessionNameLen
Затраты памяти библиотеки можно значительно уменьшить, читайте вики
Настоятельно рекомендуется изменить библиотеку Ethernet или использовать библиотеку Ethernet3, чтобы избежать переполнения буфера — подробнее
Используйте проводной Ethernet для уменьшения задержки, Wi-Fi увеличивает задержку, а задержка варьируется. Еще из вики
Я хотел бы включить ваши улучшения или исправления ошибок! Вместо формального руководства по стилю позаботьтесь о сохранении существующего стиля кодирования. Пожалуйста, проверьте свой код перед отправкой запроса на включение. Было бы очень полезно, если бы вы включили подробное объяснение ваших изменений в запрос на включение.