www.demoscene.ruenglish version
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация   ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Алгоритм Flanger'а

 
Начать новую тему   Ответить на тему    Список форумов DemoScene.Ru -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
NightRadio



Зарегистрирован: 25.09.2007
Сообщения: 213


СообщениеДобавлено: Вт Окт 16, 2007 19:22    Заголовок сообщения: Алгоритм Flanger'а Ответить с цитатой

Интересуют подробности. Возможно, кто-нибудь сталкивался. Или статейки где-нибудь есть.
То, что это эхо с плавающей задержкой, я, кажись, понял :) Но вот как быть дальше... При резких изменениях делея возьникают неприятные щелчки.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
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) Кольцевой буфер переменной длины. Указатель бегает по нему с одинаковой скоростью. При изменении длины буфера всё его содержимое растягивается под новый размер (желательно с интерполяцией).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
MAM



Зарегистрирован: 26.09.2007
Сообщения: 36


СообщениеДобавлено: Пт Дек 14, 2007 08:56    Заголовок сообщения: Ответить с цитатой

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

В семплгенераторе не реалтайм-обработка, поэтому там значительно проще.

А вообще делаем так: есть кольцевой буфер фиксированного размера (максимальный размер задержки), который пополняется с нормальной скоростью. А вот потом мы берем из него семплы на нужном нам расстоянии и интерполируем как хотим.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
NightRadio



Зарегистрирован: 25.09.2007
Сообщения: 213


СообщениеДобавлено: Пт Дек 14, 2007 09:26    Заголовок сообщения: Ответить с цитатой

Гм.. Интересная идея. А обратной связи нет?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
MAM



Зарегистрирован: 26.09.2007
Сообщения: 36


СообщениеДобавлено: Пн Дек 17, 2007 08:21    Заголовок сообщения: Ответить с цитатой

для обратной связи можно заполнять буфер не отсчетами оригинала, а взвешенным средним между оригиналом и результатом (в зависимости от коэффициента feedback).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
NightRadio



Зарегистрирован: 25.09.2007
Сообщения: 213


СообщениеДобавлено: Пн Дек 17, 2007 08:35    Заголовок сообщения: Ответить с цитатой

Спасибо. Это натолкнуло меня на кое-какие новые мысли. Попробую реализовать.
В ближайшее время поделюсь результатом :)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
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
юзайте на здоровье Smile (хотя я наверное не первый в этом)
типа эффект : две умноженные пилы с разной частотой
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов DemoScene.Ru -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах