www.blf.ru - Блокфлейта. Школа игры.

www.blf.ru - Блокфлейта. Школа игры. (http://blf.ru/forum/index.php)
-   Акустика флейт (http://blf.ru/forum/forumdisplay.php?f=51)
-   -   Ищу фурревого разложенца. (http://blf.ru/forum/showthread.php?t=3358)

Васян 25.12.2013 13:52

Re: Ищу фурревого разложенца.
 
Цитата:

Сообщение от noname (Сообщение 56149)
А я настаиваю! :) И это... ко мне можно на "ты".

Я придумал название проекта - Spectrum Expert
Цитата:

Сообщение от noname (Сообщение 56149)
Собственно, чистка, обрезка, разделение на гармоники, нормализацию по громкости - всё это уже осуществляется Аудишном.

Это вполне реализуемо.
Цитата:

Сообщение от noname (Сообщение 56149)
лагов

- это что за термин такой, сам придумал? Невстричал ранее ни где...
Цитата:

Сообщение от noname (Сообщение 56149)
И если говорить объективно, то нужен лишь "аддон" к Аудишну, который и сам по себе уже является продвинутым саунд-анализатором.

Плагин формата VSTe написать можно но не вижу в этом смысла, тут нужна отдельная программа, так как для плагинов имеется куча ограничений, и приходится использовать всяческие ухищьрения, чтобы их обойти, и далеко не на всех VST-хостах они работают верно. Поэтому эта идея отпадает.
Цитата:

Сообщение от noname (Сообщение 56149)
я вынужден тебя предупредить, что её достижение связано с таким количеством научной (и именно исследовательской) работы, что до первых результатов действительно уйдут годы.

- Удивил ))) Я этим делом уже не мене двух десятков лет занимаюсь и имею достаточный опыт в синтезаторостроении как в программно-реализуемом варианте, так и в аппаратно-реализуемом (до того как стал программистом, занимался радиоэлектроникой).
Цитата:

Сообщение от noname (Сообщение 56149)
Подробнее готов поговорить голосом. И не раньше 2-го :)

Если у тебя выделенная сеть и ты спокойно можешь обобщатся по скайпу, это не значит, что у того с кем ты хочешь поговорить то же самое, извини, но я живу в глухой деревне и пользуюсь GSM-модемом, скорость связи которого максимум 10 кб/сек :-(

Васян 25.12.2013 16:48

Re: Ищу фурревого разложенца.
 
noname, Ты в курсе, про преобразование Фурье, кроме того что оно позволяет получить спектр сигнала из аудиоданных?
Как оно происходит, какие свойства, параметры, требования?
Для начала следует пояснить, что существует два основных алгоритма, реализующие преобразование Фурье это:
  1. Дискретное преобразование Фурье (DFT)
  2. Быстрое преобразование Фурье (FFT)
В применении к аудиоданным используется алгоритм FFT, использующий размер преобразований, представляющими из себя степень двойки (128, .., 1024, 2048 и т.д.).
Например, пусть, у нас есть аудио - данные, сэмплированные в 44.1 кГц, и мы, взяв 8 значений (отдельных отсчетов), хотим получить частотное разложение этого участка. В результате у нас получится 5 пар коэффициентов - 4 синусоиды с частотами 22.05 кГц, 16.5 кГц, 11.025 кГц, 5.51 кГц, и синусоида с частотой 0 кГц - то есть константа. Взяв 8 значений, мы можем разложить исходный сигнал на 4 гармоники (синусоиды, частоты). Про константу (нулевую гармонику) на время забудем - её надо просто прибавить при обратном преобразовании, а здесь она нас не интересует.

Взяв 16 отсчетов, мы получим 8 частот. Для 1024 - 512 частот. Шаг между ними, то есть частотное разрешение, составляет, в нашем примере с 44.1 кГц, (22.05 кГц)/ (N/2), или просто (44.1 кГц)/N. Частоты идут от нуля и выше, с этим шагом.

Вот поэтому при FFT используется такое понятие как размер окна, который может быть только степенью двойки (128, .., 1024, 2048 и т.д.),
чем больше размер окна, тем большее разрешение по частоте мы можем получить, но следует учесть, что размер окна совпадает с количеством анализируемых сэмплов, к примеру имеем размер окна 16384, это соответственно 16384 сэмплов, и при частоте дискретизации 44.1 кГц это будет кусок, длительностью 0,3715 сек., с шагом преобразования 2,69165 Гц.
Help к любой программе звукообработки скажет нам одну простую истину, которая звучит так: выигрывая в разрешении по времени, мы проигрываем в разрешении по частоте, и наоборот.

Далее есть такой момент, как оконные функции, необходимые для улучшения качества при FFT. Разные оконные функции приводят к разным результатам, и все они располагаются в некий спектр, от почти-ничего не делания, до сильного вмешательства в спектральное разложение.
Перечисляю этот спектр известных функций, от самых безобидных до ядреных: Triangular, Hanning, Hamming, Blackman, Welch (распределение Гаусса), Blackman-Harris.

Так что в проектируемой программе следует реализовать выбор размера окна и оконной функции, и найти оптимальное решение, результаты которого больше всего похожи на правду. :-D

Далее необходимо сделать компоненты, позволяющие визуализировать спектр сигнала и осциллограмму.
Компонент, реализующий визуализацию спектра сигнала можно взять из хроматического тюнера программы FlutoMAX Flute Designer, переделав его для данной задачи:

http://cs614616.vk.me/v614616036/1258/gMkrChV21_E.jpg

Компонент для визуализации амплитудно-временной зависимости (осциллограммы) придётся разработать самому, также учесть те моменты, что потребуется масштабирование, и выделение фрагмента, по аналогии с Эдоб Аудишн.

Вот с этих моментов и следует начать реализацию проекта «Spectrum Expert». :idea:

noname 25.12.2013 20:11

Re: Ищу фурревого разложенца.
 
Цитата:

Сообщение от Васян (Сообщение 56155)
- это что за термин такой, сам придумал? Невстричал ранее ни где...

Это "запаздывание". В любом из возможных применений этого слова. Термин статистический.
Цитата:

Сообщение от Васян (Сообщение 56155)
Если у тебя выделенная сеть и ты спокойно можешь обобщатся по скайпу, это не значит, что у того с кем ты хочешь поговорить то же самое, извини, но я живу в глухой деревне и пользуюсь GSM-модемом, скорость связи которого максимум 10 кб/сек

Жаль, много времени потеряется.
Цитата:

Сообщение от Васян (Сообщение 56158)
Ты в курсе, про преобразование Фурье, кроме того что оно позволяет получить спектр сигнала из аудиоданных?

Да, в курсе.
И все эти моменты УЖЕ реализованы в Аудишине. С помощью элементарного описанного выше алгоритма можно получить несколько параллельных рядов значений для нескольких гармоник (и шума).
При разложении Аудишн позволяет учитывать и оконные функции и размер окна (надеюсь, что моя память не подводит меня).
Еще раз повторюсь, что востребована, в первую очередь, функция для удобного визуального и статистического анализа. Только после её реализации вообще стоит задумываться о самом разложении.
Браться за само преобразование Фурье смысла нет, это уже осуществлено.
Так что, начинать надо с осциллограммного представления (со всеми масштабирования по времени или амплитуде, представлениями в паскалях или ДБ), вычисления соотношений амплитуд основного тона и гармоник, основного тона и гармоник+шум, корреляции фаз и амплитуды суммарного сигнала, лагов максимумов/минимумов или нулевых значений гармоник. И всё это тоже выдавать в виде графиков, параллельных осциллограмме.

Васян 25.12.2013 20:53

Re: Ищу фурревого разложенца.
 
Цитата:

Сообщение от noname (Сообщение 56171)
Это "запаздывание". В любом из возможных применений этого слова. Термин статистический.

В звукотехнике это называется латентность, от latency - к примеру в драйверах ASIO - latency compensation ( компенсация задержки).

Цитата:

Сообщение от noname (Сообщение 56171)
Жаль, много времени потеряется.

В контакте пиши. Там сообщения быстро проходят.
Цитата:

Сообщение от noname (Сообщение 56171)
И все эти моменты УЖЕ реализованы в Аудишине.

Программа должна быть независима от стороннего софта.
Ты предлагаешь, эти текста из буфера обмена, что результатом является разложения в Аудишне?
Бред конечно, но я привык уж над чем нить поработать чтобы аналогичные функции реализовать, а не искать лёгких путей.
Так что FFT будет встроено в программу http://www.smayly.ru/gallery/kolobok/AllDarkSML/476.gif

noname 25.12.2013 22:05

Re: Ищу фурревого разложенца.
 
Цитата:

Сообщение от Васян (Сообщение 56174)
В звукотехнике это называется латентность, от latency - к примеру в драйверах ASIO - latency compensation ( компенсация задержки).

Не знаю. В общематематическом, общестатистическом смысле - это просто запаздывание. "Time lag". Применяя к конкретному явлению можно придумать тысячи названий. В данном случае лаг будет описывать фазовое соотношение, а изменение лага - степень гармоничности обертонов и основного тона.
Цитата:

Сообщение от Васян (Сообщение 56174)
Ты предлагаешь, эти текста из буфера обмена, что результатом является разложения в Аудишне?

Нет, из сохраненных файлов .вав. Еще раз нижайше тебя прошу пройтись по описанному выше алгоритму :)
Цитата:

Сообщение от Васян (Сообщение 56174)
Так что FFT будет встроено в программу

Хозяин - барин. :)

Васян 26.12.2013 07:02

Re: Ищу фурревого разложенца.
 
Цитата:

Сообщение от noname (Сообщение 56176)
Не знаю. В общематематическом, общестатистическом смысле - это просто запаздывание.

Мы с вами не бухгалтерско-статистическими расчётами занимаемся,
так что давайте будем придерживаться терминологии, принятой в звукотехнике.

А вот это как понимать:
Цитата:

Сообщение от noname (Сообщение 56171)
Браться за само преобразование Фурье смысла нет, это уже осуществлено.

и
Цитата:

Сообщение от noname (Сообщение 56176)
Нет, из сохраненных файлов .вав.

Судя по этим идеям, я должен сделать частотный анализ в Аудишне, и сохранить их в wav файлах?
В файлах формата wav результаты преобразования Фурье не сохраняются.
Если конешно специально туда внедрить пользовательский чанк с этой информацией, то это возможно, но Аудишн не предоставляет такой возможности.

Цитата:

Сообщение от noname (Сообщение 56176)
Еще раз нижайше тебя прошу пройтись по описанному выше алгоритму :)

Проходится придётся и ещё и не раз, как дело до этого дойдёт.
Сейчас у меня задача компоненты для работы программы написать и протестировать,собственно этим и занимаюсь в свободное время :-D

noname 26.12.2013 09:10

Re: Ищу фурревого разложенца.
 
Васян, давай сделаем так: до тех пор, пока ты не пройдешься по приведенным мною алгоритмам, я самоустранюсь от всего, что ты собираешься делать.
И пока тебе хочется просто попрограммировать, себе в удовольствие, пока средства не дают возможности увидеть цель, - я не буду вмешиваться.
А когда "в охоточку" напргораммируешься, тогда напишешь: "Денис, я уже созрел". Тогда отложишь в папку "Прошлое" все уже написанное, наструктурированное, и начнем все с самого начала: я буду учить тебя акустике флейт, давать тебе задания записать те или иные звуки, прогонять в Аудишне приведенный алгоритм, а потом будем совместно думать, что именно и как именно можно напрграммировать для достижения ясной и конкретной цели.
Просто до тех пор, пока ты не будешь готов, у нас с тобой будут получаться прения. Например, относительно того, можно ли в вавах хранить разложенный по гармоникам звук. Ведь до тех пор, пока ты сам не сохранишь отдельные гармоники в отдельных вавах - ты же все равно будешь спорить :)

Пиши, тестируй, компонируй, созревай. Смиренно жду.

Васян 26.12.2013 18:33

Re: Ищу фурревого разложенца.
 
noname, Согласен. Я сейчас в акурат кодингом компонентов программы и занимаюсь - это основа всей будущей программы.
Как будет готово - сообщу.

Васян 27.12.2013 21:53

Re: Ищу фурревого разложенца.
 
noname, Столкнулся с одним нюансом, который меня немного озадачил: для работы программа будет открывать wav-файлы, и если даже в файле стереосигнал, то он будет преобразован в моно. Можно в принципе и стерео сигнал обрабатовать, но я в этом не вижу смысла в контексте данной задачи.

noname 28.12.2013 03:42

Re: Ищу фурревого разложенца.
 
Васян, а если открывать сразу два сигнала? Для открытых флейт это вполне обыденная процедура будет: один мик у свисткового окна, а второй, например, у торца (для аппликатуры "все закрыты". Или один у свисткового окна, а второй - у регистрового отверстия.


Текущее время: 22:10. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot