Audacity 3.2.0
Classes | Namespaces | Macros | Functions | Variables
Distortion.cpp File Reference
#include "Distortion.h"
#include "EffectEditor.h"
#include "LoadEffects.h"
#include <cmath>
#include <algorithm>
#include <wx/checkbox.h>
#include <wx/choice.h>
#include <wx/valgen.h>
#include <wx/log.h>
#include <wx/slider.h>
#include <wx/stattext.h>
#include <wx/weakref.h>
#include "Prefs.h"
#include "ShuttleGui.h"
#include "../widgets/valnum.h"
Include dependency graph for Distortion.cpp:

Go to the source code of this file.

Classes

struct  EffectDistortion::Editor
 
struct  EffectDistortion::Instance
 

Namespaces

namespace  anonymous_namespace{Distortion.cpp}
 

Macros

#define M_PI   3.1415926535897932384626433832795
 
#define M_PI_2   1.57079632679489661923132169163975
 
#define skipsamples   1000
 

Functions

TranslatableString defaultLabel (int index)
 

Variables

struct {
   const TranslatableString   name
 
   EffectDistortionSettings   params
 
FactoryPresets []
 
BuiltinEffectsModule::Registration< EffectDistortionanonymous_namespace{Distortion.cpp}::reg
 

Macro Definition Documentation

◆ M_PI

#define M_PI   3.1415926535897932384626433832795

Definition at line 30 of file Distortion.cpp.

◆ M_PI_2

#define M_PI_2   1.57079632679489661923132169163975

Definition at line 33 of file Distortion.cpp.

◆ skipsamples

#define skipsamples   1000

Definition at line 72 of file Distortion.cpp.

Function Documentation

◆ defaultLabel()

TranslatableString defaultLabel ( int  index)

Definition at line 108 of file Distortion.cpp.

109{
110 static const TranslatableString names[] = {
111 XO("Upper Threshold"),
112 XO("Noise Floor"),
113 XO("Parameter 1"),
114 XO("Parameter 2"),
115 XO("Number of repeats"),
116 };
117
118 return names[ index ];
119}
XO("Cut/Copy/Paste")
static TranslatableStrings names
Definition: TagsEditor.cpp:153
Holds a msgid for the translation catalog; may also bind format arguments.

References names, and XO().

Referenced by EffectDistortion::Editor::PopulateOrExchange(), and EffectDistortion::Editor::UpdateUIControls().

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

Variable Documentation

◆ 

const struct { ... } FactoryPresets[]
Initial value:
=
{
{ XO("Hard clip -12dB, 80% make-up gain"), { 0, 0, -12.0, -70.0, 0.0, 80.0, 0 } },
{ XO("Soft clip -12dB, 80% make-up gain"), { 1, 0, -12.0, -70.0, 50.0, 80.0, 0 } },
{ XO("Fuzz Box"), { 1, 0, -30.0, -70.0, 80.0, 80.0, 0 } },
{ XO("Walkie-talkie"), { 1, 0, -50.0, -70.0, 60.0, 80.0, 0 } },
{ XO("Blues drive sustain"), { 2, 0, -6.0, -70.0, 30.0, 80.0, 0 } },
{ XO("Light Crunch Overdrive"), { 3, 0, -6.0, -70.0, 20.0, 80.0, 0 } },
{ XO("Heavy Overdrive"), { 4, 0, -6.0, -70.0, 90.0, 80.0, 0 } },
{ XO("3rd Harmonic (Perfect Fifth)"), { 5, 0, -6.0, -70.0, 100.0, 60.0, 0 } },
{ XO("Valve Overdrive"), { 6, 1, -6.0, -70.0, 30.0, 40.0, 0 } },
{ XO("2nd Harmonic (Octave)"), { 6, 1, -6.0, -70.0, 50.0, 0.0, 0 } },
{ XO("Gated Expansion Distortion"), { 7, 0, -6.0, -70.0, 30.0, 80.0, 0 } },
{ XO("Leveller, Light, -70dB noise floor"), { 8, 0, -6.0, -70.0, 0.0, 50.0, 1 } },
{ XO("Leveller, Moderate, -70dB noise floor"), { 8, 0, -6.0, -70.0, 0.0, 50.0, 2 } },
{ XO("Leveller, Heavy, -70dB noise floor"), { 8, 0, -6.0, -70.0, 0.0, 50.0, 3 } },
{ XO("Leveller, Heavier, -70dB noise floor"), { 8, 0, -6.0, -70.0, 0.0, 50.0, 4 } },
{ XO("Leveller, Heaviest, -70dB noise floor"), { 8, 0, -6.0, -70.0, 0.0, 50.0, 5 } },
{ XO("Half-wave Rectifier"), { 9, 0, -6.0, -70.0, 50.0, 50.0, 0 } },
{ XO("Full-wave Rectifier"), { 9, 0, -6.0, -70.0, 100.0, 50.0, 0 } },
{ XO("Full-wave Rectifier (DC blocked)"), { 9, 1, -6.0, -70.0, 100.0, 50.0, 0 } },
{ XO("Percussion Limiter"), {10, 0, -12.0, -70.0, 100.0, 30.0, 0 } },
}

Referenced by EffectDistortion::DoLoadFactoryPreset(), and EffectDistortion::GetFactoryPresets().

◆ name

const TranslatableString name

Definition at line 76 of file Distortion.cpp.

Referenced by audacity::network_manager::MultipartData::Add(), AddAnalysisTrack(), CommandMessageTarget::AddBool(), CommandContext::AddBool(), LispyCommandMessageTarget::AddBool(), AboutDialog::AddCredit(), AddedAnalysisTrack::AddedAnalysisTrack(), anonymous_namespace{MenuHelper.cpp}::AddEffectMenuItemGroup(), audacity::network_manager::MultipartData::AddFile(), CommandManager::Populator::AddGlobalCommand(), CommandManager::Populator::AddItem(), CommandMessageTarget::AddItem(), CommandContext::AddItem(), LispyCommandMessageTarget::AddItem(), CommandManager::Populator::AddItemList(), MacroCommands::AddMacro(), CommandSignature::AddParameter(), anonymous_namespace{MenuHelper.cpp}::AddSortedEffectMenuItems(), MP2ExportProcessor::AddTags(), MP3ExportProcessor::AddTags(), MacroCommands::ApplyMacro(), ApplyMacroDialog::ApplyMacroToProject(), FFmpegExporter::AskResample(), ASlider::ASlider(), anonymous_namespace{ChannelView.cpp}::AttributeName(), NyquistEffectsModule::AutoRegisterPlugins(), anonymous_namespace{Registry.cpp}::BadPath(), ProgressDialog::Beep(), PopupMenuTable::BeginSection(), DeviceToolBar::ChangeDevice(), AudioSetupToolBar::ChangeDeviceLabel(), AudioSetupToolBar::ChangeHost(), CommandManager::Check(), DBConnection::CheckpointThread(), KeyConfigPrefs::Commit(), ConvertLegacyProjectFile(), ConvertLegacyTrack(), LabelTrack::Create(), FileDialogWrapper::Create(), FileDialog::Create(), wxDialogWrapper::Create(), ListNavigationPanel::Create(), MovableControl::Create(), anonymous_namespace{RealtimeEffectPanel.cpp}::HyperLinkCtrlWrapper::Create(), wxPanelWrapper::Create(), WaveTrack::CreateClip(), FFmpegFunctions::CreateEncoder(), ThemeBase::CreateOneImageCache(), AudacityApp::CreateSingleInstanceChecker(), WaveTrack::CreateWideClip(), MacroCommands::DeleteMacro(), FFmpegPresets::DeletePreset(), CommandManager::DescribeCommandsAndShortcuts(), AudioUnitEffectsModule::DiscoverPluginsAtPath(), Journal::Dispatch(), AudacityCommand::DoAudacityCommand(), EffectBase::DoEffect(), ExportAudioDialog::DoExport(), EQUtils::DoMessageBox(), ProjectAudioManager::DoRecord(), BuiltinCommandsModule::DoRegistration(), BuiltinEffectsModule::DoRegistration(), TrackUtilities::DoRemoveTrack(), anonymous_namespace{NoteTrackView.cpp}::DrawNoteTrack(), anonymous_namespace{TrackPanel.cpp}::DrawTrackName(), PluginManager::DropFile(), anonymous_namespace{ProjectSerializer.cpp}::XMLTagHandlerAdapter::EmitStartTag(), CommandManager::Enable(), anonymous_namespace{MenuCreator.cpp}::MenuItemVisitor::CommandListEntryEx::EnableMultiItem(), XMLFileReader::endElement(), anonymous_namespace{ProjectSerializer.cpp}::XMLTagHandlerAdapter::EndTag(), XMLUtf8BufferWriter::EndTag(), XMLWriter::EndTag(), ProjectSerializer::EndTag(), EQCurve::EQCurve(), EqualizationCurvesDialog::EqualizationCurvesDialog(), FileDialog::FileDialog(), FileIO::FileIO(), AudioSetupToolBar::FillInputChannels(), DeviceToolBar::FillInputChannels(), anonymous_namespace{Registry.cpp}::CollectedItems::Find(), AudioSetupToolBar::Choices::Find(), find_widget(), anonymous_namespace{AudioUnitEffectsModule.cpp}::FindAudioUnit(), Journal::WindowPaths::anonymous_namespace{JournalWindowPaths.cpp}::FindByNameAmongPeers(), WaveTrack::FindClipByName(), FindDialog::FindDialog(), FindFFmpegLibs(), MP3Exporter::FindLibrary(), LV2EffectsModule::FindModulePaths(), VampEffectsModule::FindModulePaths(), BasicMenu::anonymous_namespace{BasicMenu.cpp}::FindPathName(), VampEffectsModule::FindPlugin(), FFmpegPresets::FindPreset(), ExportFFmpegOptions::FindSelectedCodec(), ExportFFmpegOptions::FindSelectedFormat(), VSTWrapper::ForEachParameter(), GetAVVersion(), CommandManager::GetCategories(), CommandManager::GetCategoryFromName(), EffectManager::GetCommandIdentifier(), audacity::network_manager::Request::getCookie(), audacity::network_manager::CookiesList::getCookie(), WaveTrack::GetDefaultAudioTrackNamePreference(), CommandManager::GetDefaultKeyFromName(), AudioIOBase::GetDeviceInfo(), VSTEffectBase::GetEffectIDs(), CommandManager::GetEnabled(), EffectDistortion::GetFactoryPresets(), VST3::Hosting::anonymous_namespace{module_linux.cpp}::LinuxModule::getFunctionPointer(), VST3::Hosting::anonymous_namespace{module_win32.cpp}::Win32Module::getFunctionPointer(), Tags::GetGenre(), audacity::network_manager::Request::getHeader(), audacity::network_manager::HeadersList::getHeader(), KeyView::GetIndexByName(), CommandManager::GetKeyFromName(), CommandManager::GetLabelFromName(), Languages::GetLanguages(), CLExportProcessor::GetMetaChunk(), FFmpegImportFileHandle::GetMetadata(), GetMIDIDeviceInfo(), AudacityVst3HostApplication::getName(), DevicePrefs::GetNamesAndLabels(), MenuRegistry::MenuItems::GetOrdering(), CommandManager::GetPrefixedLabelFromName(), EffectDefinitionInterface::GetSquashedName(), PluginManager::GetSubgroups(), Module::GetSymbol(), GetSymbolFromProcess(), Tags::GetTag(), cloud::audiocom::anonymous_namespace{UploadService.cpp}::GetUploadRequestPayload(), AUPImportFileHandle::HandlePCMAliasBlockFile(), cloud::audiocom::anonymous_namespace{UploadService.cpp}::AudiocomUploadOperation::HandleUploadPolicy(), CommandManager::HandleXMLTag(), Journal::WindowPaths::anonymous_namespace{JournalWindowPaths.cpp}::HasName(), audacity::network_manager::Header::hasSameName(), Tags::HasTag(), anonymous_namespace{RealtimeEffectPanel.cpp}::HyperLinkCtrlWrapper::HyperLinkCtrlWrapper(), FLACImportFileHandle::Import(), OggImportFileHandle::Import(), OpusImportFileHandle::Import(), WavPackImportFileHandle::Import(), LWSlider::Init(), FFmpegImportFileHandle::InitCodecs(), NyquistEffectsModule::Initialize(), AudioUnitEffectSettings::Intern(), MacroCommands::IsFixed(), KeyConfigPrefsFactory(), ListNavigationPanel::ListNavigationPanel(), MixerBoard::LoadMusicalInstruments(), ThemeBase::LoadOneThemeComponents(), AudioUnitEffectsModule::LoadPlugin(), FFmpegPresets::LoadPreset(), VST3Wrapper::LoadUserPreset(), AudioUnitEffectBase::LoadUserPreset(), LadspaEffectBase::LoadUserPreset(), LV2EffectBase::LoadUserPreset(), VST3EffectBase::LoadUserPreset(), LV2Ports::LV2Ports(), LWSlider::LWSlider(), MacroCommands::MacroCommands(), anonymous_namespace{MenuHelper.cpp}::MakeAddGroupItems(), WaveTrack::MakeClipCopyName(), anonymous_namespace{MenuHelper.cpp}::MakeGroupsFilter(), WaveTrack::MakeNewClipName(), TrackList::MakeUniqueTrackName(), anonymous_namespace{Registry.cpp}::CollectedItems::MergeLater(), anonymous_namespace{Registry.cpp}::CollectedItems::MergeWithExistingItem(), KeyConfigPrefs::MergeWithExistingKeys(), MacroCommands::MigrateLegacyChains(), ModifiedAnalysisTrack::ModifiedAnalysisTrack(), CommandManager::Modify(), ModifyAnalysisTrack(), MovableControl::MovableControl(), ShuttleGui::Name(), DialogDefinition::Item::Name(), CommandManager::Populator::NewIdentifier(), CommandParameters::NormalizeName(), MacrosWindow::OnAdd(), ApplyMacroDialog::OnApplyToFiles(), DevicePrefs::OnDevice(), DevicePrefs::OnHost(), MacrosWindow::OnImport(), ProjectWindow::OnProjectTitleChange(), MacrosWindow::OnRemove(), EqualizationCurvesDialog::OnRename(), EffectUIHost::OnSaveAs(), AudacityApp::OnTimer(), DBConnection::OpenStepByStep(), anonymous_namespace{MIDIPlay.h}::Iterator::OutputEvent(), FFmpegPresets::OverwriteIsOk(), AudioUnitWrapper::ParameterInfo::ParameterInfo(), audacity::network_manager::Cookie::Parse(), NyquistEffect::Parse(), cloud::audiocom::anonymous_namespace{UploadService.cpp}::ParseUploadFailedMessage(), cloud::audiocom::ShareAudioDialog::InitialStatePanel::PopulateInitialStatePanel(), anonymous_namespace{BatchProcessDialog.cpp}::PopulateMacrosMenu(), VampEffect::PopulateOrExchange(), MIR::PrintPythonVector(), EffectFindClipping::Process(), MacroCommands::ReadMacro(), KeyView::RefreshBindings(), KeyConfigPrefs::RefreshKeyInfo(), VSTEditor::RefreshParameters(), cloud::ShareAudioToolbar::RegenerateTooltips(), AudioSetupToolBar::RegenerateTooltips(), ControlToolBar::RegenerateTooltips(), Journal::RegisteredCommand::RegisteredCommand(), RegistryKey::RegistryKey(), BasicMenu::anonymous_namespace{BasicMenu.cpp}::ReplayPopup(), anonymous_namespace{Registry.cpp}::ReportConflictingPlacements(), CommandManager::ReportDuplicateShortcuts(), anonymous_namespace{Registry.cpp}::ReportGroupGroupCollision(), anonymous_namespace{Registry.cpp}::ReportItemItemCollision(), MacroCommands::RestoreMacro(), ProjectFileIO::SafetyFileName(), Internat::SanitiseFilename(), ExportFFmpegOptions::SavePreset(), FFmpegPresets::SavePreset(), VSTEffectBase::SaveSettings(), VST3Wrapper::SaveUserPreset(), AudioUnitEffectBase::SaveUserPreset(), Effect::SaveUserPreset(), LadspaEffectBase::SaveUserPreset(), LV2EffectBase::SaveUserPreset(), VST3EffectBase::SaveUserPreset(), AudioSetupToolBar::Choices::Set(), cloud::audiocom::ShareAudioDialog::InitialStatePanel::SetAnonymousState(), CommandManager::SetCommandFlags(), audacity::network_manager::Request::setCookie(), FileDialog::SetFilename(), audacity::network_manager::Request::setHeader(), KeyView::SetKeyByName(), KeyConfigPrefs::SetKeyForSelected(), CommandManager::SetKeyFromName(), FFmpegExporter::SetMetadata(), SpinControl::SetName(), wxPanelWrapper::SetName(), LWSlider::SetName(), NumericTextCtrl::SetName(), wxDialogWrapper::SetName(), Track::SetName(), WaveClip::SetName(), WaveTrack::Interval::SetName(), AudacityProject::SetProjectName(), ProjectFileIO::SetProjectTitle(), Tags::SetTag(), SetToExtantDirectory(), NyqBench::SetWindowTitle(), MixerBoardFrame::SetWindowTitle(), sf_normalize_name(), SpinControl::SpinControl(), XMLFileReader::startElement(), CommandOutputTargets::StartField(), CommandContext::StartField(), CommandMessageTarget::StartField(), LispyCommandMessageTarget::StartField(), anonymous_namespace{MIDIPlay.h}::MIDIPlay::StartPortMidiStream(), XMLUtf8BufferWriter::StartTag(), XMLWriter::StartTag(), ProjectSerializer::StartTag(), MuteButtonHandle::Tip(), SoloButtonHandle::Tip(), EffectsButtonHandle::Tip(), MenuButtonHandle::Tip(), CloseButtonHandle::Tip(), EffectNoiseReduction::TrackProgress(), DBConnectionTransactionScopeImpl::TransactionCommit(), DBConnectionTransactionScopeImpl::TransactionRollback(), DBConnectionTransactionScopeImpl::TransactionStart(), LabelDialog::TransferDataFromWindow(), EffectDistortion::Editor::UpdateControl(), ExportAudioDialog::UpdateLabelExportSettings(), ExportAudioDialog::UpdateTrackExportSettings(), cloud::audiocom::ShareAudioDialog::InitialStatePanel::UpdateUserData(), AudioUnitUtils::UserPreset::UserPreset(), UserPresetsGroup(), VerifyFilename(), anonymous_namespace{Registry.cpp}::VisitItems(), XMLUtf8BufferWriter::WriteAttr(), anonymous_namespace{ProjectSerializer.cpp}::XMLTagHandlerAdapter::WriteAttr(), ProjectSerializer::WriteAttr(), XMLWriter::WriteAttr(), Importer::WriteImportItems(), MacroCommands::WriteMacro(), and ProjectSerializer::WriteName().

◆ params