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