Здравствуйте , подскажите пожалуйста если кто сталкивался с данной библиотекой, что и как возвращает функция MIDI.read() . http://arduinomidilib.sourceforge.net/files.html Отправлять с дуни MIDI гораздо проще
Судя по всему, там может быть два варианта развития событий: Тупой: в главном цикле делаем что-то вида Код (Text): int myMidiChannel = 1; if (MIDI.read(myMidiChannel)) { switch(MIDI.getType()){ case NoteOn: analogWrite(13, MIDI.getData2()); break; case NoteOff: digitalWrite(13, LOW); break; } } Этот код я не проверял) По идее, он должен зажигать светодиод 13 с яркостью, пропорциональной силе нажатия на клавишу миди-клавиатуры. Всё это происходит на канале 1. Номер клавиши - по барабану, но он ловится MIDI.getData1(). Второй способ - умный. В нём мы для каждого типа миди сообщений определяем функцию, которая будет вызываться, когда это сообщение приходит. Колбэки короче. Проверить всё это дело пока не могу (страшно признаваться - я сходу не врубился как скачать эту библиотеку))). Да и городить нормальный миди-приёмник на оптопаре дома что-то лень), если на неделе свободное время выпадет, попробую поиграться.
спасибо за быстрый ответ , обязательно попробую пример. вроде разобрался без библиотек, нашёл такой обработчик миди , оказалось то что нужно. хочу простого робота барабанщика попробовать сделать
Можно и так. Обратите внимание, некоторые миди клавы вместо note Off могут присылать note On с velocity=0. Могут случится знатные грабли
да слышал про это , сейчас меня это не коснётся т.к. посылаю midi партию ударных из REAPER через Serial MIDI Converter и midi yoke. Сейчас со скоростью буду шаманить , пока только на 9600 завелось..