Цитата Сообщение от Vitamin Посмотреть сообщение
Расчет FIR-фильтра на С++ занимает сотню строк
Вот именно в этом случае самый большой риск того, что алгоритм не сойдется, либо будет работать слишком долго, либо потребует слишком много памяти, либо, по результатам пробных расчетов фильтра, человек захочет изменить начальные параметры.

Я имею в виду алгоритм Ремеза (Parks-McClellan), который выдает на выходе оптимальные фильтры. Во многих программах применяются более простые методы расчета, такие как окно Кайзера. Но при использовании таких методов фильтр получается на 20-30% длиннее, что пропорционально увеличивает нагрузку на процессор при обработке фильтром данных.
Цитата Сообщение от Vitamin Посмотреть сообщение
Вопрос в том, что надо будет генерить фильтры под все возможные сочетания частот и порядков.
Если речь идет об эмуляторе AY, то достаточно иметь одну-две частоты дискретизации: 44100Гц и 48000Гц. Другие частоты использовать нет никакого смысла, потому что это приведет только к ухудшению качества звука.

То же самое относится к "сочетанию порядков". Во многих случаях фильтр решает вполне определенную задачу, такую, как подавление постоянной составляющей. Его порядок известен заранее - первый порядок. Аналогично и частота среза. Нет смысла ее менять по ходу работы или давать пользователю возможность настройки. Потому что любая такая настройка приведет лишь к ухудшению качества звука.