Эта программа, часть другой программы, с помощью которой, я превращал песенку, напетую в микрофон, в ноты. Такие программы, называемые гармонизаторами, известны. Но все они, в какм то смысле, работают не очень хорошо. На примере данной программы видно в чем состоят основные трудности этой задачи. Выявить основную гармонику, в звучащей ноте, не так уж трудно. Подтягивание её к ближайшей (относительной) ноте, это тоже дело техники. Но вот главная проблемма ... Если бы мы спели песенку (в данном случае - В лесу родилась ёлочка) с паузами между звуками, то задача была бы простой. Но разбить на ноты динамически звучащую песню, это проблемма. Наше ухо (точнее мозг) успешно справляется с этой задачей. Посмотрим на огибающую этой конкретной ВАВЫ. Если бы вы увидели всю ВАВУ, то заметели бы, что паузы между звуками не выражены столь отчетливо. То есть пороги, используемые для выделения пауз, должны быть динамически изменяемые. Эта проблемма часто встаёт в разных областях техники. Например, пока нельзя установить номинальный уровень записи в звукозаписывающей аппаратуре (к высококлассной аппратуре прикладывются целые альбомы по выставлентю уровня записи в зависимости от характера музыки и плёнки). Не может, так же, современная аппаратура правильно определять уровень шума и помех (не удовлетворяется существующий стандарт СИСПР на измерение этого уровня). Всё это происходит от того, что пока мы не знаем как смоделировать работу УХА или Другого Устройства (тракта записи). Ведь ухо имеет сложную, динамическую Амплитудно-Частотную Характеристику. Примечание1: Получение огибающей ВАВЫ, моделирует процесс в электронной аппаратуре: детектирование и фильтрация RC фильтром. Усреднение осуществляется следующим образом: к выходной величине прибавляется значение очередной выборки, новая суммарная величина делится на определенное число (усредненяющее)и полученное число вычитается из всей величины. Часть всего этого числа и представляет огибающую. В цифровой технике, такое устройство, построенное на реверсивных счетчиках (счетчики, которые могут считать как в плюс, так и в минус), называется рекурсивным счетчиком. Примечание2: Если у звуковой карты удалить систему АРУЗ (АвтоматическаяРегулировкаУровеняЗаписи), и сделать входы открытыми, т.е. пропускающими постоянный ток, то её можно использовать как недорогой АЦП (АналогоЦифровойПреобразователь).