Как человек, самостоятельно разрабатывавший MIDI-клавиатуру вместе с программой считывания клавиш, формированием MIDI и программированием USB-MIDI интерфейса попробую ряд моментов прояснить.
1)Считывание состояния клавиатуры происходит путем циклического опроса всех клавиш. Обычно с частотой не меньше 5кГц ( в моем варианте -50кГц). Т.е. полный цикл опроса всех датчиков (а их в при 88 клавишах - не менее 176 штук) происходит не дольше, чем за 0.2мс (20мкс в моем варианте)
2)Как работает считывание. При нажатии на клавишу сначала замыкается верхний датчик, затем нижний. По времени между замыканиями датчиков и вычисляется скорость клавиши, а значит и velocity. Оба датчика близки друг к другу и расположены обычно в нижней точке траектории клавиши. Так сделано, чтобы было похоже на акустическое ф-но, где молоточек обычно бьет по струне, когда клавиша практически дошла до упора. Чему как раз соответствует замыкание нижнего датчика. Т.е. все как в акустическом инструменте: дошли до нижнего датчика (стукнули по струне), и максимум через один цикл опроса, т.е. через 0.2мс контроллер клавиатуры уже знает, что клавишу нажали и может вычислять velocity и отправлять midi-команду. Вычисление velocity - действие очень простое и происходит за пренебрежимо малое время.
3)Формирование MIDI. Как уже сказали, стандарт скорости передачи 31250 бит/с. Команда note on содержит 3 байта, т.е. 24бит. Т.е. она передается максимум за 0.8мс
Итого задержка от клавиатуры+протокол передачи не превышает 1мс. Далее вся ответственность за задержки ложится уже на принимающий MIDI сообщения софт и программу, генерирующую звук, т.е. DAW+VST.
4)MIDI-USB протокол на самом деле не обязан работать с той же тактовой частотой. Т.е. при правильном проектировании скрость передачи может быть значительно выше 31250 бит/с, и задержка при передаче может стать совсем маленькой. Другое дело, что не все производители клавиатур этим пользуются. Некоторые просто дублируют в USB тоже самое, что передают по MIDI с той же тактировкой. Но в любом случае MIDI-USB не должен давать задержку большую, чем классический MIDI.
5)В случае MIDI-USB есть один нюанс. MIDI-USB реализован на основе bulk-протокола. Это асинхронный помехозащищенный протокол, который формально не обязан передавать данные в реальном времени. По такому же протоколу, скажем, идет общение с флешками и другими Mass Storage девайсами. Т.е. хост сам решает, в какой момент считать очередную поцию данных из буфера USB-девайса. На практике делает это он столь часто, что реальное время между обращениями - порядка 10 микросекунд. Само количество MIDI данных с точки зрения USB - просто ничтожно. Хотя теоретически можно так изловчиться перегрузить компьютер, или как-то понизить приоритет протокола, чтобы задержка стала ощутимой, но на практике я такого не встречал.