Permite que um Arduino com capacidades IP/UDP (Ethernet Shield, ESP8266, ESP32, ...) participe de uma sessão AppleMIDI.
Importante: Por favor, leia a nota abaixo sobre como aumentar o tamanho do buffer da biblioteca Ethernet padrão para evitar a perda de mensagens MIDI!
No Arduino IDE Library Manager, procure por AppleMIDI
Isso também instalará a biblioteca 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 );
}
}
Mais usos na pasta de exemplos e no wiki
Os nomes das sessões podem ficar muito longos em Macs (por exemplo, 'Macbook Pro de Johann Gambolputty .. von Hautkopft de Ulm') e serão truncados para MaxSessionNameLen
O consumo de memória da biblioteca pode ser reduzido significativamente, leia o wiki
É altamente recomendável modificar a biblioteca Ethernet ou usar a biblioteca Ethernet3 para evitar sobrecargas de buffer - saiba mais
Use Ethernet com fio para reduzir a latência, o Wi-Fi aumenta a latência e a latência varia. Mais do wiki
Eu adoraria incluir suas melhorias ou correções de bugs! Em vez de um guia de estilo formal, tome cuidado para manter o estilo de codificação existente. Teste seu código antes de enviar uma solicitação pull. Seria muito útil se você incluísse uma explicação detalhada de suas alterações na solicitação pull.