// float limiter_att, compressor_att;
- // Then a limiter at +0 dB (so, -14 dBFS) to take out the worst peaks only.
+ // The real compressor.
+ if (compressor_enabled) {
+ float threshold = pow(10.0f, compressor_threshold_dbfs / 20.0f);
+ float ratio = 20.0f;
+ float attack_time = 0.005f;
+ float release_time = 0.040f;
+ float makeup_gain = 2.0f; // +6 dB.
+ compressor.process(samples_out.data(), samples_out.size() / 2, threshold, ratio, attack_time, release_time, makeup_gain);
+// compressor_att = compressor.get_attenuation();
+ }
+
+ // Finally a limiter at -4 dB (so, -10 dBFS) to take out the worst peaks only.
// Note that since ratio is not infinite, we could go slightly higher than this.
- // Probably more tuning is warranted here.
if (limiter_enabled) {
float threshold = pow(10.0f, limiter_threshold_dbfs / 20.0f);
float ratio = 30.0f;
// limiter_att = limiter.get_attenuation();
}
- // Finally, the real compressor.
- if (compressor_enabled) {
- float threshold = pow(10.0f, compressor_threshold_dbfs / 20.0f);
- float ratio = 20.0f;
- float attack_time = 0.005f;
- float release_time = 0.040f;
- float makeup_gain = 2.0f; // +6 dB.
- compressor.process(samples_out.data(), samples_out.size() / 2, threshold, ratio, attack_time, release_time, makeup_gain);
-// compressor_att = compressor.get_attenuation();
- }
-
// printf("limiter=%+5.1f compressor=%+5.1f\n", 20.0*log10(limiter_att), 20.0*log10(compressor_att));
// Upsample 4x to find interpolated peak.
</property>
</widget>
</item>
- <item row="3" column="2">
+ <item row="3" column="3">
<widget class="QCheckBox" name="limiter_enabled">
<property name="text">
<string>Enabled</string>
</property>
</widget>
</item>
- <item row="1" column="2">
+ <item row="1" column="3">
<widget class="QDial" name="limiter_threshold_knob">
<property name="minimumSize">
<size>
</property>
</widget>
</item>
- <item row="0" column="2">
+ <item row="0" column="3">
<widget class="QLabel" name="limiter_threshold_label">
<property name="text">
<string>Limiter threshold</string>
</property>
</widget>
</item>
- <item row="2" column="2">
+ <item row="2" column="3">
<widget class="QLabel" name="limiter_threshold_db_display">
<property name="text">
<string>-14.0 dB</string>
</property>
</widget>
</item>
- <item row="1" column="3">
+ <item row="1" column="2">
<widget class="QDial" name="compressor_threshold_knob">
<property name="minimumSize">
<size>
</property>
</widget>
</item>
- <item row="0" column="3">
+ <item row="0" column="2">
<widget class="QLabel" name="compressor_threshold_label">
<property name="text">
<string>Compr. threshold</string>
</property>
</widget>
</item>
- <item row="2" column="3">
+ <item row="2" column="2">
<widget class="QLabel" name="compressor_threshold_db_display">
<property name="text">
<string>-26.0 dB</string>
</property>
</widget>
</item>
- <item row="3" column="3">
+ <item row="3" column="2">
<widget class="QCheckBox" name="compressor_enabled">
<property name="text">
<string>Enabled</string>