Вдруг кто-то знает
У меня вопрос к знатокам математики... уже - дискретной математики, еще уже - тем, кто разбирается в звуковом синтезе. Если у вас есть такие знакомые, которые, быть может, знают ответ, киньте в меня линком на них или в них - линком на меня.
Итак.
Дана некоторая волна (на практике - звуковая, но не суть). Она записана в дискретном виде - как длинный-предлинный набор отсчетов амплитуды через равные промежутки времени. Над некоторым куском этой волны волны мы можем выполнить БПФ (быстрое дискретное преобразование Фурье). Получим спектр, опять же, дискретный.
Задача первая. Взять небольшой кусочек волны длительностью dt (скажем, полсекунды звучания некой мелодии). Сгенерировать кусочек подлинее DT. Чтобы, значит, та же самая нота длилась подольше. Как это сделать? Если я просто выполню обратное БПФ, то получу тот же самый кусочек, длиной dt, а мне надо больше. Если я попробую тупо скопировать кусочек DT/dt раз, возникнут две бяки:
1. Артефакты на границе между кусочками.
2. Паразитная частота 1/dt, которая может быть слышна как пульсация громкости.
Если просто растянуть сигнал с помощью аппроксимации, то получится другая нота - более низкая в DT/dt раз.
Задача вторая. Взять кусочек dt, что-нибудь сделать с его частотами (скажем, убрать ровно одну). Потом записать его назад. То есть, речь про БПФ-фильтр. Но... что делать с артефактами на границе? Я тут придумываю разные методы сглаживания артефактов... может, кто знает уже известный хороший метод?
Итак.
Дана некоторая волна (на практике - звуковая, но не суть). Она записана в дискретном виде - как длинный-предлинный набор отсчетов амплитуды через равные промежутки времени. Над некоторым куском этой волны волны мы можем выполнить БПФ (быстрое дискретное преобразование Фурье). Получим спектр, опять же, дискретный.
Задача первая. Взять небольшой кусочек волны длительностью dt (скажем, полсекунды звучания некой мелодии). Сгенерировать кусочек подлинее DT. Чтобы, значит, та же самая нота длилась подольше. Как это сделать? Если я просто выполню обратное БПФ, то получу тот же самый кусочек, длиной dt, а мне надо больше. Если я попробую тупо скопировать кусочек DT/dt раз, возникнут две бяки:
1. Артефакты на границе между кусочками.
2. Паразитная частота 1/dt, которая может быть слышна как пульсация громкости.
Если просто растянуть сигнал с помощью аппроксимации, то получится другая нота - более низкая в DT/dt раз.
Задача вторая. Взять кусочек dt, что-нибудь сделать с его частотами (скажем, убрать ровно одну). Потом записать его назад. То есть, речь про БПФ-фильтр. Но... что делать с артефактами на границе? Я тут придумываю разные методы сглаживания артефактов... может, кто знает уже известный хороший метод?
Re: Нет.
ага... похоже на то :))) именно воли: я как увидел, сколько там... начал читать и увидел, что 99% написанного на практике не пригодится никогда... :))
1. Угу, именно, именно, оно самое - стоит тронуть хоть одну частоту, и непрерывность может разрушиться.
2. Ага! Вот оно как!! А я то думал - и на хрена там и сям упоминаются "дополнения нулями", а это, оказывается, чтобы "закольцованность" убрать :)
Хм. Интересно, а что, если дополнять не нулями, а тем куском, который реально идет после этого отрезка... надо будет подумать...
3. Вроде cross-fade - это не окно, а так... что-то вроде весовой функции, про которую вы говорили.
4. Те фильтры я уже запрограммировал - первого порядка и биквадратные, вроде бы этого для большинства случаев хватит :) Сейчас буду делать на них эквалайзер... правда там меня сомнения кой-какие гложут, ну да ладно, это уже другая тема :)
no subject
no subject
Из Гольденберга, Матюшкина, Поляка...
Re: Из Гольденберга, Матюшкина, Поляка...
Она у меня есть. На
no subject
Стараемся...
no subject
А пополнить?
Нет желания?
Re: А пополнить?
Так что со временем смогу пополнять исходниками программ - особенно по обработке звука.
Приветствуется.
no subject