All times are UTC+01:00




Post new topic  Reply to topic  [ 8 posts ] 
Author Message
PostPosted: Thu Jun 22, 2017 7:52 pm 

Joined: Sun Feb 03, 2013 2:39 pm
Posts: 333
Because I had all this numbers here, I thought sharing them would be fun.

I measured the attack/release time and tried doing so in a sane and safe way:

  1. Very fast timings (< 10ms) were excluded because they're unreliable.
  2. A 1kHz test signal was used to assure relatively general results because ST reacts slower for very high frequencies.
  3. Attack & release shape were set to 500 because that allowed my theoretical model to fit ST with a standard deviation being 0 to at least 4 digits.

How much relative error is considered within limits?

Image
Image


Top
   
PostPosted: Thu Jun 29, 2017 7:36 pm 

Joined: Mon Aug 25, 2014 3:22 pm
Posts: 282
This is an interesting post, so I thought I'd reply with hopefully a thought provoking question about your test methodology.

Attack is defined as "time it takes to reach 86% of the target" in various places in ST, including the user interface itself. However, I don't know if Hans has ever defined whether that is 86% of the target in dB or 86% of the target as a linear percentage. Obviously, they could vary quite a bit.

Release, of course, is "time it takes to raise the level 10dB", so there are very different measurement techniques for attack and release.

Next question: Have you tried various *sizes* of attacks and releases to see if your results remain consistent. His compressor attempts to move as little as possible, and I have observed that when a very big attack or release is "required", they move *much* faster. I don't see where you specify the up or down jump size. You might try more than one!


Top
   
PostPosted: Sun Jul 02, 2017 9:36 pm 

Joined: Sun Feb 03, 2013 2:39 pm
Posts: 333
Thanks for commenting, weskeene. I appreciate every advice to get better results.

What I did was this:

The result of compression is output = gain_reduction*input, so one has gain_reduction = output/input. For input above the threshold the level can be computed from gain_reduction. Because the ear is roughly logarithmic, the level is usually chosen to move exponential. However this is only true in ST for big attack and release shapes and so I set them to 500. Now one gets really close when fitting an exponential curve to the level data. And from the curve one can extract the speed.

So measurement technique is the same for attack and release.

And yes, every timing in the list was done using 3 step sizes and repeated 2 times. I used more in the past but that isn't necessary for stable results.


Top
   
PostPosted: Mon Jul 03, 2017 5:21 pm 

Joined: Mon Aug 25, 2014 3:22 pm
Posts: 282
One more question: Are you using feedback, feedback ^2, or feedforward? I don't see whether you specified.


Top
   
PostPosted: Tue Jul 04, 2017 3:59 pm 

Joined: Sun Feb 03, 2013 2:39 pm
Posts: 333
I used feedforward. Also I think measuring the timing constants is difficult enough that I could've screwed up somewhere. As mentioned above shapes = 500 which changes the relative speed compared to shapes = 1. So the numbers given above maybe aren't that useful to others.


Top
   
PostPosted: Thu Jul 13, 2017 5:33 pm 

Joined: Sun Feb 03, 2013 2:39 pm
Posts: 333
@weskeene
Do you think that any of the numbers you mentioned actually apply to ST? And do you think that timings in ST are defined in relation to the gain reduction?

Personally I don't think so. I used the level instead and it's the only thing that gave consistent numbers, no matter what threshold, ratio or signal level was chosen. But gain reduction is very dependent on those and therefore useless for measurements, I guess.

***

Another funny thing:
I measured with attack = release time and plotted them on the x-axis and the measurement results on the y-axis and connected the points. As one can see from the 1st row plot this seemingly gives a straight line, as it should do (actually should be y = x for a perfect match). So I fitted a line through those points and subtracted it from the data to get the error, that's the 2nd row plot. There's something special about 100ms: Left from it the curve is anything but a line, but it's smooth. Right from it it's probably an actual line with deviations caused by the measurement. So it seems Hans is switching something at 100ms.
Image


Top
   
PostPosted: Mon Jul 17, 2017 12:54 pm 
Site Admin
User avatar

Joined: Mon Mar 17, 2008 1:40 am
Posts: 11185
How did you measure this? I have to admit, I basically 'estimated' the results on my end and adjusted the displayed values in the GUI to match the intended behavior pretty closely. But, definitely not as precise as you did here.

If you have a constant offset I can adjust the numbers for that.

The change at 100 ms is weird. Does it maybe depend on the frequency of the tone that you play? If I'm guessing correctly, moving the frequency to 500 Hz would move this point to 200 ms...


Top
   
PostPosted: Tue Jul 18, 2017 6:14 pm 

Joined: Sun Feb 03, 2013 2:39 pm
Posts: 333
Quote:
How did you measure this? I have to admit, I basically 'estimated' the results on my end and adjusted the displayed values in the GUI to match the intended behavior pretty closely. But, definitely not as precise as you did here.
Still relying on internal_level = threshold_in_%*gain_reduction^(ratio/(1 - ratio)) with gain_reduction = output/input.

No clue what you mean by adjusted GUI: The GUI shows gain reduction. The speed of a 86% gain reduction depends on the threshold, so one could only get it right for one specific case, e.g. setting threshold = -36dB and play a sine wave and adjust the GUI to match. However no other threshold will have correct attack timings then.
Release seems to work exactly the same as attack just in the opposite direction what I consider a good and useful thing. Not even able to think about a way to have it defined by going up 10dB per release time (in ST I mean).

NOTE: I'm using shapes = 500 here all the time. So maybe the situation differs from shapes = 1.

Quote:
The change at 100 ms is weird. Does it maybe depend on the frequency of the tone that you play? If I'm guessing correctly, moving the frequency to 500 Hz would move this point to 200 ms...
No, I tried 100Hz, 500Hz and 10kHz, all the same. But I don't know if this is a problem at all.

No need to change anything. Even though I guess my measurements are quite accurate I'm unsure if I measure the right thing i.e. use your intended definition.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 8 posts ] 

All times are UTC+01:00


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited