Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
NightRadio
Зарегистрирован: 25.09.2007 Сообщения: 213
|
Добавлено: Вт Окт 16, 2007 19:22 Заголовок сообщения: Алгоритм Flanger'а |
|
|
Интересуют подробности. Возможно, кто-нибудь сталкивался. Или статейки где-нибудь есть.
То, что это эхо с плавающей задержкой, я, кажись, понял :) Но вот как быть дальше... При резких изменениях делея возьникают неприятные щелчки. |
|
Вернуться к началу |
|
|
Denis
Зарегистрирован: 11.12.2007 Сообщения: 8 Откуда: Russia
|
Добавлено: Чт Дек 13, 2007 13:09 Заголовок сообщения: |
|
|
То есть как это эхо с плавающей задержкой? Флэнжер имеет мало общего с дилеем, т.к. в нем используются очень малые смещения, он ближе к фазеру и хорусу, только я не помню в чем его принципиальная особенность... Возможно во флэнжере помимо сдвига фазы еще и изменяется частота сигнала, что привносит свои особенности. |
|
Вернуться к началу |
|
|
MAM
Зарегистрирован: 26.09.2007 Сообщения: 36
|
Добавлено: Чт Дек 13, 2007 15:02 Заголовок сообщения: |
|
|
чтобы не было щелчков (и вообще) нужно пользоваться интерполяцией, пусть даже линейной
http://musicdsp.org/ - вот здесь очень много кода и алгоритмов по DSP
я сделал хорус/фленжер по наитию, описание здесь - http://samplegenerator.narod.ru/07.htm
если захочется увидеть сипипи-код пиши мне в мыло cmusic@inbox.ru или в аську 323114213 |
|
Вернуться к началу |
|
|
NightRadio
Зарегистрирован: 25.09.2007 Сообщения: 213
|
Добавлено: Чт Дек 13, 2007 18:26 Заголовок сообщения: |
|
|
Спасибо за ссылку. Почитал. Теперь надо вспомнить, на чем я остановился... :)
Насколько понимаю, возможны два способа:
1) Кольцевой буфер постоянной длины. Указатель бегает по нему с переменной скоростью. Наиболее понятный для меня способ :) Но медленный. При быстром перемещении указателя, придется заполнять кучу сэмплов вместо одного.
2) Кольцевой буфер переменной длины. Указатель бегает по нему с одинаковой скоростью. При изменении длины буфера всё его содержимое растягивается под новый размер (желательно с интерполяцией). |
|
Вернуться к началу |
|
|
MAM
Зарегистрирован: 26.09.2007 Сообщения: 36
|
Добавлено: Пт Дек 14, 2007 08:56 Заголовок сообщения: |
|
|
Кольцевой буфер переменной длины, который стягивается и растягивается, это конечно чересчур, имхо. Потому что изменять размер придется на каждом следующем отсчете входящего потока, что жутко круто.
В семплгенераторе не реалтайм-обработка, поэтому там значительно проще.
А вообще делаем так: есть кольцевой буфер фиксированного размера (максимальный размер задержки), который пополняется с нормальной скоростью. А вот потом мы берем из него семплы на нужном нам расстоянии и интерполируем как хотим. |
|
Вернуться к началу |
|
|
NightRadio
Зарегистрирован: 25.09.2007 Сообщения: 213
|
Добавлено: Пт Дек 14, 2007 09:26 Заголовок сообщения: |
|
|
Гм.. Интересная идея. А обратной связи нет? |
|
Вернуться к началу |
|
|
MAM
Зарегистрирован: 26.09.2007 Сообщения: 36
|
Добавлено: Пн Дек 17, 2007 08:21 Заголовок сообщения: |
|
|
для обратной связи можно заполнять буфер не отсчетами оригинала, а взвешенным средним между оригиналом и результатом (в зависимости от коэффициента feedback). |
|
Вернуться к началу |
|
|
NightRadio
Зарегистрирован: 25.09.2007 Сообщения: 213
|
Добавлено: Пн Дек 17, 2007 08:35 Заголовок сообщения: |
|
|
Спасибо. Это натолкнуло меня на кое-какие новые мысли. Попробую реализовать.
В ближайшее время поделюсь результатом :) |
|
Вернуться к началу |
|
|
eugenie
Зарегистрирован: 22.06.2009 Сообщения: 7
|
Добавлено: Ср Июн 24, 2009 09:54 Заголовок сообщения: |
|
|
кстати на тему звуковых эффектов, но не флэнджера (типа оффтоп)
у меня получился интересный генератор :
outsample=(0xfff-(frequency*(index++)/4)&0x1fff)*(0xfff-((frequency+dissonance)*index/4)&0x1fff)/256; //fast dissonance for drum and bass
юзайте на здоровье (хотя я наверное не первый в этом)
типа эффект : две умноженные пилы с разной частотой |
|
Вернуться к началу |
|
|
|