Вам нужно будет взглянуть на атрибут MIDIMessageEvent
receivedTime
и сгруппировать события в зависимости от степени детализации, подходящей для вашего приложения, чтобы выяснить, что составляет аккорд.Кроме того, вы получите MIDI-события для выпускаемых клавиш.
Причина, по которой я говорю «какая бы гранулярность не подходила для вашего приложения», заключается в следующем:
Рассмотрим, как игрок клавиатуры нажимаетаккорд;это может выглядеть следующим образом.
time -------------------->
C #-----------------------#
E #---------------------#
G #-------------------------#
В то время как гитарист, играющий аккорд (при условии, что они также ослабляют струны), может выглядеть как
time -------------------->
C #-----------------------#
E #-----------------#
G #-----------#
в том же масштабе времени.