![]() |
|
|
![]()
|
|
| beif |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.8.2003 Где: Россия, Кемерово Репутация: 1 Всего: 1 |
Хелп! Хочу создать эквалайзер, типа как в WinAmp-е, только круче... Какой алгоритм посоветуете? Только нужно достаточно быстро раскладывать звук, изменять амплитуды частот и опять его сворачивать! Где можно достать доки, описания, а лучше - алгоритмы (желательно для Delphi)
|
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
||||
|
||||
| beif |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.8.2003 Где: Россия, Кемерово Репутация: 1 Всего: 1 |
Будем осиливать... Большое спасибо за помощь
|
|||
|
||||
| beif |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.8.2003 Где: Россия, Кемерово Репутация: 1 Всего: 1 |
"http://docs1.netfirms.com/algdocs/filtr.zip" - это, конечно, хорошо. Но хотелось бы чего-нибудь поближе к практике, к коду то есть
|
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
beif
Ты скажи, в чем именно загвоздка. |
|||
|
||||
| beif |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.8.2003 Где: Россия, Кемерово Репутация: 1 Всего: 1 |
podval
Загвоздка собственно в том, что я пока еще не нашел процедуры, которые бы разлагали звук на спектр (несколько десятков, а лучше сотен частот), и сворачивали спектр обратно... Причем быстро и достаточно точно... Пытался написать сам, исходя из формул БПФ, ДПФ, ОДПФ, но ничего хорошего не получилось - было медленно и несовсем (иногда, совсем не) правильно... Вот и хочу найти код процедуры (алгоритм), сделанный профессионалом, ведь существует множество приложений в которых анализатор спектра используется... |
|||
|
||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: 1 Всего: 7 |
А зачем сворачивать спектр обратно? Эквалайзер - это просто совокупность палочек, высоты которых пропорциональны амплитудам гармоник, образующих звуковой сигнал... Делай себе спокойно прямое преобразование Фурье и рисуй спектр... По любому в реальное время втиснешь... -------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
Может, ты забывал о некоторых свойствах БПФ? Частоту дискретизации учитывал? |
|||
|
||||
| beif |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.8.2003 Где: Россия, Кемерово Репутация: 1 Всего: 1 |
УРА!!!!!
|
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
beif
Расскажи хоть, как. |
|||
|
||||
| beif |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.8.2003 Где: Россия, Кемерово Репутация: 1 Всего: 1 |
podval, всё гениальное просто - скачал с нета библиотеку с FFT-преобразованиями
|
|||
|
||||
| Alexei |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 20.8.2003 Репутация: нет Всего: 4 |
Это анализатор спектра!А эквалайзер - это многополосный регулятор тембра... |
||||
|
|||||
| Crait |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 244 Регистрация: 20.2.2003 Репутация: 1 Всего: 1 |
2 beif
И что, на стыках блоков (FFT) артефактов не образуется ? Это сообщение отредактировал(а) Crait - 29.8.2003, 18:03 |
|||
|
||||
| beif |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.8.2003 Где: Россия, Кемерово Репутация: 1 Всего: 1 |
Crait, каких таких еще артефактов? Что они дают или не дают? Какой от них эффект? У меня вроде все нормально, по крайней мере, мне так кажется... Полоски прыгают, давольно-таки плавно, резких отклонений не замечено... А что эти артефакты делают? Я, кстати, даже с WinAmp-овксим эквалайзером сравнивал - похоже, только у него порядка нескольких десятков полосочек, а у меня полосок - несколько тысяч
|
|||
|
||||
| Crait |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 244 Регистрация: 20.2.2003 Репутация: 1 Всего: 1 |
Разрывов всмысле.
Т.е., берешь ты гладкий сигнал, режешь его на кусочки, делаешь БПФ, перемножаешь полосочки на положение движков эквалайзера, далее обратное БПФ, ну и получаешь очередной блок обработанных отсчетов. Так вот, между последним отсчетом предыдущего блока и первым отсчетом следующего - разрывов не бывает ? Разрыв - нарушение гладкости функции. Скачок, иными словами. |
|||
|
||||
| beif |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.8.2003 Где: Россия, Кемерово Репутация: 1 Всего: 1 |
Crait, я обратное преобразование не делаю... (я не знаю что потом с полученными от обратного БПФ данными делать) Я просто вывожу спектр и все... я звук не меняю. Вот
|
|||
|
||||
| DIMA.NET |
|
|||
![]() invisible fighter ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 26.1.2003 Репутация: нет Всего: нет |
У меня один очень тупой вопрос, даже не знаю как его сформулировать (т.к. я со звуком еще не работал, а хочется). Как мне этот сигнал получить, чтобу после преобразования получить спектр?
Sorry, если плохо объяснил |
|||
|
||||
| Alexei |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 20.8.2003 Репутация: нет Всего: 4 |
2Crait :beif делает не эквалайзер.
2DIMA.NET После преобразования надо получить абс. значение комлексного числа. = корень кв суммы кв действ и мнимой частей.В длл , которую использует beif есть такая функция. Sorry, если плохо понял. |
|||
|
||||
| DIMA.NET |
|
|||
![]() invisible fighter ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 26.1.2003 Репутация: нет Всего: нет |
Alexei, ты действительно не очень правильно понял. Я хотел спросить, как мне получит сигнал, чтобы в дальнейшем его преобразовывать?
|
|||
|
||||
| beif |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.8.2003 Где: Россия, Кемерово Репутация: 1 Всего: 1 |
DIMA.NET, я просто взял и скачал процедуру из нета
|
|||
|
||||
| DIMA.NET |
|
|||
![]() invisible fighter ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 26.1.2003 Репутация: нет Всего: нет |
Спасибо! А на СИ нету примера, а то я в Дельфях не очень силен
|
|||
|
||||
| Alexei |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 382 Регистрация: 20.8.2003 Репутация: нет Всего: 4 |
||||
|
||||
| beif |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.8.2003 Где: Россия, Кемерово Репутация: 1 Всего: 1 |
DIMA.NET - на С нету... Дай тему в Форуме в разделе программирования на С, мож у кого-нить еть
|
|||
|
||||
| beif |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 25.8.2003 Где: Россия, Кемерово Репутация: 1 Всего: 1 |
еть - это "есть"
|
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |