[pulseaudio-discuss] R: New equalizer module (module-eqpro-sink), some questions
Alexander E. Patrakov
patrakov at gmail.com
Fri Apr 19 16:23:51 UTC 2019
пт, 19 апр. 2019 г. в 14:13, Tanu Kaskinen <tanuk at iki.fi>:
> If the plugin gets the number of bands during the
> initialization, it can create the appropriate number of non-array
> control ports. Interleaved audio ports aren't needed either, because
> PulseAudio can do the deinterleaving before passing the audio to the
> plugin (like module-ladspa-sink already does). If one's going to write
> an LV2 plugin, it's best to use standard port types so that all hosts
> will be able to use the plugin.
In addition, I think that "if the plugin gets the number of bands [at
runtime]" is a very big "if" for an IIR-based equalizer. So big that I
would rather hard-code it, or treat equalizers with a different number
of bands as completely different plugins. The reason is that the
required slope of inter-band transition (i.e., effectively, the filter
order) is a function of the width of each band. Implement a filter
with a too-low order, and it won't be able to isolate (and thus
control thegain of) a frequency band selectively enough. Implement a
filter with a too-high order, and its frequency response will be too
steppy.
Besides, consumer electronic devices (TVs, HDMI receivers, Hi-Fi
amplifiers) just do not have equalizers with a variable number of
bands, for usability reasons. I don't see a reason for PulseAudio to
be different.
--
Alexander E. Patrakov
More information about the pulseaudio-discuss
mailing list