> Date: Mon, 12 Mar 2012 09:11:46 +1100
> From: lsd@wootangent.net
> To: linux-audio-user@lists.linuxaudio.org
> Subject: Re: [LAU] Popping sound at the start of every note on Bristol synths.
>
> On 12/03/12 9:03 AM, Rafael Vega wrote:
> > However, I've found that there is a popping sound at the start of every
> > note. This is more apparent in some models/presets than others. I'm
> > pretty sure my jack configuration is fine (has been working fine with
> > other synths, ardour, puredata, qtractor, etc.) and I've also tried ALSA
> > and two different sound cards (laptop internal and firewire). I also
> > tried outputting Bristol straight to system output, passing through
>
> It may just be that the attack on the amplitude envelope is too fast.
> I'm not sure if Bristol has this problem, but on many synths, with the
> attack time set to its minimum, the envelope opens instantaneously, and
> that can cause a clicking sound. Try increasing the attack time and see
> if that helps.
>
> Thanks
I had a listen through the sample you posted and agree that it is an issue with
the attack time, it was always very aggressive but there was also a recent change
from a default exponential to default linear attack which probably does not help
with what you are hearing. You can change back to exponential from the config
stage however there is _another_ change that will go into the next release which
is probably the correct fix.
The change is to make the envelope 'time constant'. This is actually not the case
with the current code so if you increase the sampling rate you also increase the
fastest attack rate. The fix places the attack at 500us then gives you a rate which
is independent of the sampling rate. I can make this a config time option if people
are interested, it could be a runtime option which I think that is overkill but 500us
is still pretty aggressive.
The maximum attack duration does not change, that is also a config option which
defaults to 10 seconds however having the parameters being a function of the
sampling rate was bad coding.
FYI some background on the changes: I have been doing work on 'low end'
systems where I default to half rate sample, 22KHz and 24KHz to reduce the CPU
footprint and hence extend battery life. At the same time I have been working on
high end systems where we have been reviewing the improved sound quality with
96KHz and 192KHz and these really exacerbated the problem. There are other
interesting results from the developments. The main filters are Huovilainen's which
are 2x resampling, this was required since the algorithm loses frequency accuracy
as it approaches Nyquist. At the higher rates I removed the resampling since the cutoff
frequency is now nowhere near Nyquist and the result is that, for the filters at least,
the change from 48 to 96KHz is almost free and you can still 'play' the filter at self
oscillation.
Let me review the code differences and perhaps post the new envelope.c on the
SourceForge forum. That might not be possible: the envelopes actually drive the
signalling to the engine regarding when to deactivate voices in polyphonic voice
assignments and I don't want any more sticky or lost notes where this signalling
might have changed.
Regards, nick.