Я наверное очень туплю, но как представлять в программе гистаграмму и как искать локальные максимумы? Для этого ведь как минимум нужна дискретизация шкалы тонов?
В принципе, похожую схему и реализовал.
Устраивает, но почему-то кажется что возможна более осмысленная схема, т.е. какой-либо объект, способный кинуть событие после того как дождался N предыдущих.