Я реализовал алгоритм FFT, чтобы найти ноты с гитары в режиме реального времени. Но теперь я хочу увидеть продолжительность заметки. Поэтому в темпе, таком как 60 ударов в минуту (= 1 удар в секунду, 4/4 такта), я хочу выяснить, сыграл ли я четвертную ноту, или 2 восьмые ноты, или 4 шестнадцатые ноты.
Допустим, я не могу играть быстрее шестнадцатых нот, поэтому мое окно FFT будет на 250 мс.
Теперь, если я нажму ноту С (четвертная нота), я получу C C C C
, если я нажму 4 раза ноту С (шестнадцатую ноту), я также получу C C C C
,
Как я могу выяснить, если это одна четверть или четыре шестнадцатые ноты?
Я пробовал с громкостью на каждом окне, но не повезло. Есть идеи?
Вы можете искать «звуковую» часть звука, являющуюся амплитудой пика.
Измеряя время между этими пиками, вы можете определить длительность ноты. Это не может обнаружить слайды и изгибы, но это может привести к ударам или ударам пальцев.
Других решений пока нет …