WebAudio: крутые низкие частоты?

#lowpass-filter #web-audio-api

#фильтр нижних частот #web-audio-api

Вопрос:

Я создал HTML5-игру, которая использует сэмплы ADPCM и музыку.

Сама музыка звучит в моно частотой 11025 Гц, и я сделал простой ресамплер ближайшего соседа, чтобы получить 22050 Гц плюс алгоритм подделки стерео.

Сэмплы предварительно повышают дискретизацию во время загрузки, чтобы уменьшить нагрузку на процессор во время выполнения (повторная дискретизация в реальном времени не требуется).

Так я добился настоящего ретро-звучания, как в конце 90-х.

Пока работает нормально.

Но «реальный» ресэмплер WebAudio, который соответствует 22050 Гц внутренней частоте дискретизации, кажется, даже не лучше в некоторых браузерах:-D.

Как я могу отключить все, что выше 11025 Гц (частота Найквиста 22050 Гц)? Идеальным было бы: 0-11025 Гц без изменений, но 11026 Гц-максимум отфильтрованы.

Фильтр нижних частот, предоставляемый WebAudio api, недостаточно крутой и создает резонансы на частоте фильтра.

Я не хочу, чтобы «паршивые» частоты были такими высокими. «Дрянная» передискретизация должна прекратиться на частоте 11025 Гц. Я думаю, что это не очень хорошо для динамиков твитера и даже для игроков, которые слышат, когда сильные басовые частоты отражают высокочастотный диапазон.

Здесь не нужны MP3 amp; Co. ADPCM-> MP3 требует большего битрейта, чем реальный ADPCM (требуемые артефакты этого трудно кодировать без потери звука) :-).

Я читал о фильтрах FIR и IIR, но не понял их, потому что для меня это слишком математично.

Я думаю, это то, что мне нужно.

Мне нужно что-то, что можно преобразовать в код, не имея академической степени:-D.

Ответ №1:

Скорее всего, я опаздываю на вечеринку, но для достижения более крутой кривой фильтрации вам просто нужно несколько приложений biquad filter, то есть несколько объектов BiquadFilterNode, соединенных вместе.

Один биквадрафильтровочный узел с lowpass имеет накопительный коэффициент 12 дБ на октаву, исходя из этого, вы можете легко рассчитать необходимое вам количество узлов фильтра. Если вас беспокоит резонанс, просто уменьшите его ( Q настройка).

Комментарии:

1. Я даже опоздал на вечеринку, но, к сожалению, даже при установке Q на минимально возможное значение низкочастотные (и высокочастотные) по-прежнему генерируют резонанс. Что я сейчас делаю, так это добавляю еще один фильтр усиления после и пытаюсь настроить его, чтобы устранить нежелательный резонанс.