Audacity 3.2.0
Classes | Enumerations | Functions | Variables
anonymous_namespace{NoiseReduction.cpp} Namespace Reference

Classes

struct  ControlInfo
 
struct  DiscriminationMethodInfo
 
struct  PrefsTableEntry
 
struct  WindowTypesInfo
 

Enumerations

enum  DiscriminationMethod : size_t {
  DM_MEDIAN , DM_SECOND_GREATEST , DM_OLD_METHOD , DM_N_METHODS ,
  DM_DEFAULT_METHOD = DM_SECOND_GREATEST
}
 
enum  WindowTypes : unsigned {
  WT_RECTANGULAR_HANN = 0 , WT_HANN_RECTANGULAR , WT_HANN_HANN , WT_BLACKMAN_HANN ,
  WT_HAMMING_RECTANGULAR , WT_HAMMING_HANN , WT_N_WINDOW_TYPES , WT_DEFAULT_WINDOW_TYPES = WT_HANN_HANN
}
 
enum  { DEFAULT_WINDOW_SIZE_CHOICE = 8 , DEFAULT_STEPS_PER_WINDOW_CHOICE = 1 }
 
enum  NoiseReductionChoice { NRC_REDUCE_NOISE , NRC_ISOLATE_NOISE , NRC_LEAVE_RESIDUE }
 

Functions

template<typename StructureType , typename FieldType >
void readPrefs (StructureType *structure, const wxString &prefix, const PrefsTableEntry< StructureType, FieldType > *fields, size_t numFields)
 
template<typename StructureType , typename FieldType >
void writePrefs (const StructureType *structure, const wxString &prefix, const PrefsTableEntry< StructureType, FieldType > *fields, size_t numFields)
 
const ControlInfocontrolInfo ()
 

Variables

const struct anonymous_namespace{NoiseReduction.cpp}::DiscriminationMethodInfo discriminationMethodInfo [DM_N_METHODS]
 
const float minSignalTime = 0.05f
 
const struct anonymous_namespace{NoiseReduction.cpp}::WindowTypesInfo windowTypesInfo [WT_N_WINDOW_TYPES]
 
BuiltinEffectsModule::Registration< EffectNoiseReductionreg
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
DEFAULT_WINDOW_SIZE_CHOICE 
DEFAULT_STEPS_PER_WINDOW_CHOICE 

Definition at line 152 of file NoiseReduction.cpp.

152 {
153 DEFAULT_WINDOW_SIZE_CHOICE = 8, // corresponds to 2048
154 DEFAULT_STEPS_PER_WINDOW_CHOICE = 1 // corresponds to 4, minimum for WT_HANN_HANN
155};

◆ DiscriminationMethod

enum anonymous_namespace{NoiseReduction.cpp}::DiscriminationMethod : size_t

◆ NoiseReductionChoice

enum anonymous_namespace{NoiseReduction.cpp}::NoiseReductionChoice
Enumerator
NRC_REDUCE_NOISE 
NRC_ISOLATE_NOISE 
NRC_LEAVE_RESIDUE 

Definition at line 157 of file NoiseReduction.cpp.

◆ WindowTypes

enum anonymous_namespace{NoiseReduction.cpp}::WindowTypes : unsigned
Enumerator
WT_RECTANGULAR_HANN 
WT_HANN_RECTANGULAR 
WT_HANN_HANN 
WT_BLACKMAN_HANN 
WT_HAMMING_RECTANGULAR 
WT_HAMMING_HANN 
WT_N_WINDOW_TYPES 
WT_DEFAULT_WINDOW_TYPES 

Definition at line 118 of file NoiseReduction.cpp.

118 : unsigned {
119 WT_RECTANGULAR_HANN = 0, // 2.0.6 behavior, requires 1/2 step
120 WT_HANN_RECTANGULAR, // requires 1/2 step
121 WT_HANN_HANN, // requires 1/4 step
122 WT_BLACKMAN_HANN, // requires 1/4 step
123 WT_HAMMING_RECTANGULAR, // requires 1/2 step
124 WT_HAMMING_HANN, // requires 1/4 step
125 // WT_HAMMING_INV_HAMMING, // requires 1/2 step
126
129};

Function Documentation

◆ controlInfo()

const ControlInfo * anonymous_namespace{NoiseReduction.cpp}::controlInfo ( )

Definition at line 1328 of file NoiseReduction.cpp.

1328 {
1329 static const ControlInfo table[] = {
1331 0.0, 48.0, 48, wxT("%d"), true,
1332 XXO("&Noise reduction (dB):"), XO("Noise reduction")),
1334 0.01, 24.0, 48, wxT("%.2f"), false,
1335 XXO("&Sensitivity:"), XO("Sensitivity")),
1336#ifdef ATTACK_AND_RELEASE
1338 0, 1.0, 100, wxT("%.2f"), false,
1339 XXO("Attac&k time (secs):"), XO("Attack time")),
1341 0, 1.0, 100, wxT("%.2f"), false,
1342 XXO("R&elease time (secs):"), XO("Release time")),
1343#endif
1345 0, 12, 12, wxT("%d"), true,
1346 XXO("&Frequency smoothing (bands):"), XO("Frequency smoothing")),
1347
1348#ifdef ADVANCED_SETTINGS
1350 -20.0, 20.0, 4000, wxT("%.2f"), false,
1351 XXO("Sensiti&vity (dB):"), XO("Old Sensitivity")),
1352 // add here
1353#endif
1354 };
1355
1356return table;
1357}
wxT("CloseDown"))
XO("Cut/Copy/Paste")
XXO("&Cut/Copy/Paste Toolbar")

References EffectNoiseReduction::Settings::mAttackTime, EffectNoiseReduction::Settings::mFreqSmoothingBands, EffectNoiseReduction::Settings::mNewSensitivity, EffectNoiseReduction::Settings::mNoiseGain, EffectNoiseReduction::Settings::mOldSensitivity, EffectNoiseReduction::Settings::mReleaseTime, wxT(), XO(), and XXO().

Referenced by EffectNoiseReduction::Dialog::OnSlider(), EffectNoiseReduction::Dialog::OnText(), EffectNoiseReduction::Dialog::PopulateOrExchange(), and EffectNoiseReduction::Dialog::TransferDataToWindow().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readPrefs()

template<typename StructureType , typename FieldType >
void anonymous_namespace{NoiseReduction.cpp}::readPrefs ( StructureType *  structure,
const wxString &  prefix,
const PrefsTableEntry< StructureType, FieldType > *  fields,
size_t  numFields 
)

Definition at line 512 of file NoiseReduction.cpp.

515 {
516 for (size_t ii = 0; ii < numFields; ++ii) {
518 gPrefs->Read(prefix + entry.name, &(structure->*(entry.field)),
519 entry.defaultValue);
520 }
521 }
static ProjectFileIORegistry::AttributeWriterEntry entry
audacity::BasicSettings * gPrefs
Definition: Prefs.cpp:68
virtual bool Read(const wxString &key, bool *value) const =0

References entry, gPrefs, and audacity::BasicSettings::Read().

Referenced by EffectNoiseReduction::Settings::PrefsIO().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writePrefs()

template<typename StructureType , typename FieldType >
void anonymous_namespace{NoiseReduction.cpp}::writePrefs ( const StructureType *  structure,
const wxString &  prefix,
const PrefsTableEntry< StructureType, FieldType > *  fields,
size_t  numFields 
)

Definition at line 524 of file NoiseReduction.cpp.

527 {
528 for (size_t ii = 0; ii < numFields; ++ii) {
530 gPrefs->Write(prefix + entry.name, structure->*(entry.field));
531 }
532 }
virtual bool Write(const wxString &key, bool value)=0

References entry, gPrefs, and audacity::BasicSettings::Write().

Referenced by EffectNoiseReduction::Settings::PrefsIO().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ discriminationMethodInfo

const struct anonymous_namespace{NoiseReduction.cpp}::DiscriminationMethodInfo anonymous_namespace{NoiseReduction.cpp}::discriminationMethodInfo[DM_N_METHODS]
Initial value:
= {
{ XO("Median") },
{ XO("Second greatest") },
{ XO("Old") },
}

Referenced by EffectNoiseReduction::Dialog::PopulateOrExchange().

◆ minSignalTime

const float anonymous_namespace{NoiseReduction.cpp}::minSignalTime = 0.05f

Definition at line 116 of file NoiseReduction.cpp.

Referenced by EffectNoiseReduction::Worker::Worker().

◆ reg

BuiltinEffectsModule::Registration< EffectNoiseReduction > anonymous_namespace{NoiseReduction.cpp}::reg

Definition at line 425 of file NoiseReduction.cpp.

◆ windowTypesInfo

const struct anonymous_namespace{NoiseReduction.cpp}::WindowTypesInfo anonymous_namespace{NoiseReduction.cpp}::windowTypesInfo[WT_N_WINDOW_TYPES]
Initial value:
= {
{ Verbatim("none, Hann (2.0.6 behavior)"), 2 },
{ Verbatim("Hann, none"), 2 },
{ Verbatim("Hann, Hann (default)"), 4 },
{ Verbatim("Blackman, Hann"), 4 },
{ Verbatim("Hamming, none"), 2 },
{ Verbatim("Hamming, Hann"), 4 },
}
TranslatableString Verbatim(wxString str)
Require calls to the one-argument constructor to go through this distinct global function name.

Referenced by EffectNoiseReduction::Dialog::PopulateOrExchange(), and EffectNoiseReduction::Settings::Validate().