Arduino Zero не распознается как MIDI-устройство через собственный USB-порт

В настоящее время я пытаюсь заставить Arduino Zero отображаться как собственное USB-MIDI-устройство в моей DAW (ableton). Независимо от того, что я пытаюсь, я не могу заставить его отображаться как устройство в Ableton. Я ранее использовал arduino для аналогичного проекта, но не могу заставить его работать так же. Есть ли что-то, чего мне не хватает, чтобы Ноль отображался как собственное USB-устройство?

Ниже приведен написанный код. Я предполагал, что библиотека MIDIUSB позаботится о том, чтобы arduino был распознан как USB-устройство.

#include <MIDIUSB.h>

const byte CHANNEL = 1;
const byte OFFSET = 48;

void setup(){}

void loop()
{    
    delay(100);
    sendNoteOn(CHANNEL, 50 + OFFSET, 127);
    delay(100);
    sendNoteOff(CHANNEL, 50 + OFFSET, 0);
}

void sendNoteOn(byte channel, byte pitch, byte velocity) 
{
  midiEventPacket_t noteOn = {0x09, 0x90 | channel, pitch, velocity};
  MidiUSB.sendMIDI(noteOn);
}

void sendNoteOff(byte channel, byte pitch, byte velocity) 
{
  midiEventPacket_t noteOff = {0x08, 0x80 | channel, pitch, velocity};
  MidiUSB.sendMIDI(noteOff);
}

, 👍0

Обсуждение

Какую операционную систему и оборудование вы используете?, @Majenko

ПК с Windows 10. Процессор Intel 6700k., @Danny Herbert

что обнаруживает Windows при подключении вашего устройства?, @jsotola

Удалите все материалы " Adafruit_Trellis` из вашего опубликованного кода. Если это не поможет (а это может быть легко), число людей, которые могут и готовы повторить вашу проблему, резко возрастет., @timemage

Проверьте диспетчер устройств Windows и посмотрите, действительно ли он обнаруживает MIDI-устройство или просто устройство CDC/ACM. Если Windows распознает его как MIDI, то проблема в том, что вашей галке это не нравится. Если Windows не распознает его как MIDI, проблема заключается в вашем коде или библиотеке MIDI., @Majenko

Спасибо всем за комментарии. @jsotola, вот что нашло для меня решение. Диспетчер устройств выглядел жутко, поэтому я отследил драйверы на github и использовал их вместо того, чтобы полагаться на то, что все это работает автоматически., @Danny Herbert

кроме того, @timemage, я удалил весь ненужный код для будущих людей, которые столкнутся с той же проблемой., @Danny Herbert


1 ответ


Лучший ответ:

0

После длительного устранения неполадок и возни с диспетчером устройств выяснилось, что Windows автоматически устанавливала неправильные (или частично неправильные) драйверы, из-за которых собственный порт не был распознан как USB-устройство. Устройство было обнаружено как два разных порта в драйверах USB, на одном из которых было предупреждение об ошибке. Я все еще мог загружать на него через любой из портов USB, просто не мог распознать его как MIDI-устройство.

Решение состояло в том, чтобы:

  1. полностью удалите драйверы из диспетчера устройств
  2. удалите платы SAMD из среды IDE Arduino
  3. вручную загрузите драйверы с github
  4. подключите arduino обратно и установите все снова как обычно, используя эти драйверы

Теперь это работает как заклинание.

,