c # — Продолжительность музыкальной ноты

Я реализовал алгоритм FFT, чтобы найти ноты с гитары в режиме реального времени. Но теперь я хочу увидеть продолжительность заметки. Поэтому в темпе, таком как 60 ударов в минуту (= 1 удар в секунду, 4/4 такта), я хочу выяснить, сыграл ли я четвертную ноту, или 2 восьмые ноты, или 4 шестнадцатые ноты.

Допустим, я не могу играть быстрее шестнадцатых нот, поэтому мое окно FFT будет на 250 мс.

Теперь, если я нажму ноту С (четвертная нота), я получу C C C C, если я нажму 4 раза ноту С (шестнадцатую ноту), я также получу C C C C,

Как я могу выяснить, если это одна четверть или четыре шестнадцатые ноты?

Я пробовал с громкостью на каждом окне, но не повезло. Есть идеи?

2

Решение

Вы можете искать «звуковую» часть звука, являющуюся амплитудой пика.

Измеряя время между этими пиками, вы можете определить длительность ноты. Это не может обнаружить слайды и изгибы, но это может привести к ударам или ударам пальцев.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]