mirror of
https://github.com/cookiengineer/audacity
synced 2026-01-13 08:05:52 +01:00
changes to try to ensure that ok and preview are enabled when amplify is opened, and peak is set to 0.0. It was working on windows but not on linux
This commit is contained in:
committed by
James Crook
parent
d0d8f37d85
commit
335ec77020
@@ -37,7 +37,6 @@
|
|||||||
|
|
||||||
#include "Amplify.h"
|
#include "Amplify.h"
|
||||||
|
|
||||||
#define EPSILON 0.000000000001 // allow for imprecise equality comparisons.
|
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@@ -67,6 +66,7 @@ EffectAmplify::EffectAmplify()
|
|||||||
{
|
{
|
||||||
mAmp = DEF_Amp;
|
mAmp = DEF_Amp;
|
||||||
mRatio = pow(10.0, mAmp / 20.0);
|
mRatio = pow(10.0, mAmp / 20.0);
|
||||||
|
mRatioClip = 0.0;
|
||||||
mCanClip = false;
|
mCanClip = false;
|
||||||
mPeak = 0.0;
|
mPeak = 0.0;
|
||||||
|
|
||||||
@@ -180,6 +180,7 @@ void EffectAmplify::PopulateOrExchange(ShuttleGui & S)
|
|||||||
if (mPeak > 0.0)
|
if (mPeak > 0.0)
|
||||||
{
|
{
|
||||||
mRatio = 1.0 / mPeak;
|
mRatio = 1.0 / mPeak;
|
||||||
|
mRatioClip = mRatio;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -291,7 +292,7 @@ bool EffectAmplify::TransferDataFromWindow()
|
|||||||
|
|
||||||
void EffectAmplify::CheckClip()
|
void EffectAmplify::CheckClip()
|
||||||
{
|
{
|
||||||
EnableApply(mClip->GetValue() || (mPeak > 0.0 && mRatio <= 1.0/mPeak + EPSILON));
|
EnableApply(mClip->GetValue() || (mPeak > 0.0 && mRatio <= mRatioClip));
|
||||||
}
|
}
|
||||||
|
|
||||||
void EffectAmplify::OnAmpText(wxCommandEvent & WXUNUSED(evt))
|
void EffectAmplify::OnAmpText(wxCommandEvent & WXUNUSED(evt))
|
||||||
@@ -320,7 +321,10 @@ void EffectAmplify::OnPeakText(wxCommandEvent & WXUNUSED(evt))
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mRatio = pow(10.0, mNewPeak / 20.0) / mPeak;
|
if (mNewPeak == 0.0)
|
||||||
|
mRatio = mRatioClip;
|
||||||
|
else
|
||||||
|
mRatio = pow(10.0, mNewPeak / 20.0) / mPeak;
|
||||||
|
|
||||||
double ampInit = 20.0 * log10(mRatio);
|
double ampInit = 20.0 * log10(mRatio);
|
||||||
mAmp = TrapDouble(ampInit, MIN_Amp, MAX_Amp);
|
mAmp = TrapDouble(ampInit, MIN_Amp, MAX_Amp);
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ private:
|
|||||||
double mPeak;
|
double mPeak;
|
||||||
|
|
||||||
double mRatio;
|
double mRatio;
|
||||||
|
double mRatioClip; // maximum value of mRatio which does not cause clipping
|
||||||
double mAmp;
|
double mAmp;
|
||||||
double mNewPeak;
|
double mNewPeak;
|
||||||
bool mCanClip;
|
bool mCanClip;
|
||||||
|
|||||||
Reference in New Issue
Block a user