Re: Dynamic Compressor Effect

Max Maisel <[email protected]> Tue, 18 May 2021 17:07:22 +0000
Newsgroups gmane.comp.audio.audacity.devel
Message-ID <[email protected]>
Hi Steve,

it would be no problem for me if the effect will be disabled by
default. I agree, that this would help resolving the realtime issue in
a separate change.

Which piece of code controls if an effect is enabled by default?
In my development builds I always had to enable it manually.

Max

On Monday, 17 May 2021 at 16:57, Steve Fiddle wrote:
> Can this effect be committed, even if not enabled by default?
> I would love to see this working with real-time preview, but even
> without that it works and has many features that are not available in
> the current compressor.
> 
> With QA hat on, I think that the current compressor should remain as
> the default compressor until real-time preview works satisfactorily
> in
> the new compressor. It seems unlikely that the issue with real-time
> preview will ever be resolved unless the effect is at  least in the
> code base.
> 
> Steve
> 
> On Mon, 17 May 2021 at 16:43, Max Maisel <[email protected]> wrote:
> > 
> > *bump*
> > 
> > > Hi all,
> > > 
> > > since Audacity 3.0.2 is released now, I rebased my Compressor
> > > effect
> > > onto the latest master.
> > > 
> > > Max
> > > 
> > > On Sunday, 28 March 2021 at 13:46, Max Maisel wrote:
> > > > Hi James,
> > > > 
> > > > it's no problem for me to wait for the 3.0.1 release.
> > > > 
> > > > The latency is mainly caused by various kinds of lookahead. One
> > > > lookahead is selected directly by the user, another lookahead
> > > > is
> > > > implicit in case of the exponential fit envelope detector
> > > > because
> > > > the
> > > > algorithm needs to process the signal backwards in the attack
> > > > stage.
> > > > 
> > > > Latencies in the range of minutes are extreme cases if users
> > > > select
> > > > high lookahead times or, in case of exponential fit, high
> > > > attack
> > > > times.
> > > > But I don't want to limit the ranges of the lookahead and
> > > > attack
> > > > time
> > > > sliders for offline processing just because of latency in
> > > > realtime
> > > > mode.
> > > > 
> > > > When using the analog simulation envelope detector together
> > > > with
> > > > low
> > > > lookahead (a few milliseconds) like a real analog compressor,
> > > > there
> > > > is
> > > > almost no noticably latency.
> > > > 
> > > > Max
> > > > 
> > > > On Saturday, 27 March 2021 at 14:41, James Crook wrote:
> > > > > Hi Max.
> > > > > 
> > > > > The previous update I had on this was about the long latency.
> > > > > Disabling realtime preview is sort of OK, but something seems
> > > > > wrong.
> > > > > A one minute latency is colossal.  That points to something
> > > > > underlying wrong.
> > > > > 
> > > > > Also 3.0.1 has now become very very much a maintenance
> > > > > release
> > > > > for
> > > > > addressing the 3.0.0 unitary project issues.  Paul would love
> > > > > to
> > > > > get
> > > > > some structural
> > > > > changes in that improve independence between pieces of code,
> > > > > and
> > > > > I
> > > > > am
> > > > > saying no.
> > > > > We'd also like to get portaudio and FFmpeg library updates
> > > > > in,
> > > > > and
> > > > > I
> > > > > am saying no.
> > > > > 
> > > > > It is pretty clear that the release after 3.0.1 is going to
> > > > > be
> > > > > quite
> > > > > soon, so as RM
> > > > > I'm sorry to have to say that your compressor will have to
> > > > > sit
> > > > > out
> > > > > for 3.0.1.
> > > > > 
> > > > > 3.0.1 is due to actually release on 17th April, so it's a
> > > > > further
> > > > > delay of about 3
> > > > > weeks for you in seeing progress on your compressor getting
> > > > > in to
> > > > > Audacity.
> > > > > 
> > > > > Is there a good reason for the very long latency?
> > > > > 
> > > > > --James.
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > On Sat, 27 Mar 2021 at 07:56, Max Maisel <[email protected]>
> > > > > wrote:
> > > > > > Hi all,
> > > > > > 
> > > > > > I've polished my Dynamic Compressor effect and think it is
> > > > > > ready
> > > > > > now
> > > > > > for inclusion.
> > > > > > 
> > > > > > Since my last mail (see
> > > > > >
https://sourceforge.net/p/audacity/mailman/message/37109016/
> > > > > >  fo
> > > > > > r
> > > > > > the
> > > > > > initial message), I mainly reworked the user interface
> > > > > > accoring
> > > > > > to
> > > > > > your
> > > > > > feedback and fixed several bugs.
> > > > > > 
> > > > > > The effect is basically realtime capable but for now
> > > > > > realtime
> > > > > > preview
> > > > > > is disabled after some discussion with Steve because there
> > > > > > are
> > > > > > bad user experience due to high processing latency in the
> > > > > > effect
> > > > > > at
> > > > > > some settings.
> > > > > > 
> > > > > > Main probleme here is, that the RealtimeEffectManager gives
> > > > > > the
> > > > > > effect
> > > > > > a small block, e.g. 256 samples, and expects the same
> > > > > > amount of
> > > > > > samples
> > > > > > in return. So if an effect like my compressor has a high
> > > > > > processing
> > > > > > latency, there can be an initial silence for over one
> > > > > > minute
> > > > > > which
> > > > > > the
> > > > > > users will think is a bug. Any changes made to the effect
> > > > > > settings
> > > > > > will
> > > > > > only take effect after this long time as well.
> > > > > > 
> > > > > > A possible solution would be latency compensation in the
> > > > > > RealtimeEffectManager so that the effect can request the
> > > > > > required
> > > > > > amount of samples in advance at the beginning or when the
> > > > > > user
> > > > > > changes
> > > > > > settings. The silence at the beginning can then be
> > > > > > discarded so
> > > > > > that
> > > > > > users do not notice it. But this is out of scope of the
> > > > > > compressor
> > > > > > effect changes.
> > > > > > 
> > > > > > The lastest revision including CI builds can be found in my
> > > > > > pull
> > > > > > request at https://github.com/audacity/audacity/pull/676.
> > > > > > 
> > > > > > The latest documentation for the effect is can be found at
> > > > > > https://alphamanual.audacityteam.org/man/Dynamic_Compressor
> > > > > > .
> > > > > > 
> > > > > > I'm looking forward to further feedback and integration.
> > > > > > 
> > > > > > Max
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > _______________________________________________
> > > > > > audacity-devel mailing list
> > > > > > [email protected]
> > > > > > https://lists.sourceforge.net/lists/listinfo/audacity-devel
> > > > > _______________________________________________
> > > > > audacity-devel mailing list
> > > > > [email protected]
> > > > > https://lists.sourceforge.net/lists/listinfo/audacity-devel
> > > > 
> > > 
> > > 
> > > 
> > > 
> > > _______________________________________________
> > > audacity-devel mailing list
> > > [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/audacity-devel
> > 
> > 
> > 
> > 
> > _______________________________________________
> > audacity-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/audacity-devel
> 
> 
> _______________________________________________
> audacity-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/audacity-devel