[pulseaudio-discuss] R: New equalizer module (module-eqpro-sink), some questions

Alexander E. Patrakov patrakov at gmail.com
Sat Apr 20 10:40:02 UTC 2019

сб, 20 апр. 2019 г. в 15:20, Georg Chini <georg at chini.tk>:
> On 20.04.19 12:14, Alexander E. Patrakov wrote:
> > [forgot to CC the list - sorry for any duplicates]
> >
> > сб, 20 апр. 2019 г. в 14:39, Georg Chini <georg at chini.tk>:
> >
> >> I think using malloc() when a parameter changes is not interfering
> >> with real-time operation because the filter must be reset after
> >> a parameter change anyway.
> > The parameter changes allowed during the runtime are not expected to
> > need a filter reset. In-place rebuild - yes, reset - no. The filtered
> > audio should smoothly follow gradual changes of the filter parameters.
> > Many LADSPA plugins actually implement internal smoothing of parameter
> > value changes, or even internally keep two filter versions and
> > interpolate between them, in order to avoid clicks, because such
> > gradual changes are an expected thing in pro audio workflows.
> >
> Within PA, the filter must at least be rewound when a parameter changes.
> Because rewinding is not part of the standard, the best we can do is to
> reset the filter in that case by calling deactivate() and activate().

This is a bug in PA. Non-rewindable sinks are supported, actually
exist (e.g. alsa-sink when the ALSA device is an ioplug, e.g. an AC3
encoder) and make sense if the latency is artificially limited to,
say, 20-50 ms. So a LADSPA sink must just say "I can rewind zero
samples", limit the latency, and ignore all rewind requests.

Alexander E. Patrakov

More information about the pulseaudio-discuss mailing list