File: DynamicRangeProcessorUtils.h

package info (click to toggle)
audacity 3.7.7%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 134,800 kB
  • sloc: cpp: 366,277; ansic: 198,323; lisp: 7,761; sh: 3,414; python: 1,501; xml: 1,385; perl: 854; makefile: 125
file content (156 lines) | stat: -rw-r--r-- 11,571 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
/*  SPDX-License-Identifier: GPL-2.0-or-later */
/*!********************************************************************

  Audacity: A Digital Audio Editor

  DynamicRangeProcessorUtils.h

  Matthieu Hodgkinson

**********************************************************************/
#pragma once

#include "DynamicRangeProcessorTypes.h"
#include "Internat.h"
#include "TranslatableString.h"

namespace DynamicRangeProcessorUtils
{
template <typename Struct> struct Preset
{
   const TranslatableString name;
   Struct preset;
};

using CompressorPreset = Preset<CompressorSettings>;
using LimiterPreset = Preset<LimiterSettings>;

DYNAMIC_RANGE_PROCESSOR_API
std::vector<CompressorPreset> GetCompressorPresets();
DYNAMIC_RANGE_PROCESSOR_API
std::vector<LimiterPreset> GetLimiterPresets();

namespace Detail
{
// Public for testing, shouldn't be needed in production code.

struct SerializedPreset
{
   const TranslatableString name;
   const std::string settings;
};

const std::vector<SerializedPreset> serializedCompressorPresets {
//general
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Modern"), 
   "Compressor:attackMs=\"0.2\" compressionRatio=\"4\" kneeWidthDb=\"18\" lookaheadMs=\"1\" makeupGainDb=\"0\" releaseMs=\"210\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-14\""},
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Glue Compressor"), 
   "Compressor:attackMs=\"20\" compressionRatio=\"1.2\" kneeWidthDb=\"12\" lookaheadMs=\"1\" makeupGainDb=\"2.5\" releaseMs=\"1000\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-22\""},
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Gentle"), 
   "Compressor:attackMs=\"1\" compressionRatio=\"1.5\" kneeWidthDb=\"6\" lookaheadMs=\"1\" makeupGainDb=\"0\" releaseMs=\"100\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-18\""},
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Beat Booster"), 
   "Compressor:attackMs=\"14\" compressionRatio=\"4\" kneeWidthDb=\"1\" lookaheadMs=\"1\" makeupGainDb=\"3\" releaseMs=\"9\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-18\""},
//master
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Deep Dive Master"),
     "Compressor:attackMs=\"52.2\" compressionRatio=\"1.2\" kneeWidthDb=\"1\" lookaheadMs=\"33.2\" makeupGainDb=\"1.6\" releaseMs=\"12.2\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"1\" thresholdDb=\"-23.5\"" },
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Beefy Master"),
     "Compressor:attackMs=\"49.6\" compressionRatio=\"1.2\" kneeWidthDb=\"4.9\" lookaheadMs=\"100.4\" makeupGainDb=\"2.5\" releaseMs=\"17.9\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-16.8\"" },
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Make It Right Master"),
     "Compressor:attackMs=\"1\" compressionRatio=\"1.4\" kneeWidthDb=\"1\" lookaheadMs=\"10\" makeupGainDb=\"1.6\" releaseMs=\"1\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-6.5\"" },
   /*i18n-hint: This is the name of an effect preset.*/
   {XO("Brick Wall Master"), 
   "Compressor:attackMs=\"0\" compressionRatio=\"100\" kneeWidthDb=\"2\" lookaheadMs=\"1\" makeupGainDb=\"3\" releaseMs=\"2\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-10\""},
//Vocal
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Lead Vocals"), 
   "Compressor:attackMs=\"1\" compressionRatio=\"5.2\" kneeWidthDb=\"5.5\" lookaheadMs=\"1\" makeupGainDb=\"0\" releaseMs=\"60\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-14\""},
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Fat Vocals"),
     "Compressor:attackMs=\"86.9\" compressionRatio=\"1.7\" kneeWidthDb=\"5\" lookaheadMs=\"1\" makeupGainDb=\"2.5\" releaseMs=\"15.2\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-32\"" },
   /*i18n-hint: This is the name of an effect preset. */
   { XO("Power Vocals"),
     "Compressor:attackMs=\"2.8\" compressionRatio=\"1.5\" kneeWidthDb=\"19.6\" lookaheadMs=\"46.2\" makeupGainDb=\"3\" releaseMs=\"356.3\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-16.8\"" },
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Vocal Control"), 
   "Compressor:attackMs=\"0\" compressionRatio=\"3\" kneeWidthDb=\"23.5\" lookaheadMs=\"1\" makeupGainDb=\"4.5\" releaseMs=\"196\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-15\""},
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Vocal Touch-Up"), 
   "Compressor:attackMs=\"2\" compressionRatio=\"1.5\" kneeWidthDb=\"30\" lookaheadMs=\"0\" makeupGainDb=\"3.6\" releaseMs=\"450\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"1\" thresholdDb=\"-22\""},
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Voice Memos Balancer"),
     "Compressor:attackMs=\"6.5\" compressionRatio=\"10.1\" kneeWidthDb=\"5.8\" lookaheadMs=\"1\" makeupGainDb=\"4.5\" releaseMs=\"3.6\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-22.3\"" },
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Podcast/Radio"), 
   "Compressor:attackMs=\"15\" compressionRatio=\"3\" kneeWidthDb=\"24\" lookaheadMs=\"1\" makeupGainDb=\"1\" releaseMs=\"40\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-15\""},
//instruments
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Piano"), 
   "Compressor:attackMs=\"0.2\" compressionRatio=\"2\" kneeWidthDb=\"18\" lookaheadMs=\"1\" makeupGainDb=\"1\" releaseMs=\"150\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-16\""},
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Acoustic Guitar"), 
   "Compressor:attackMs=\"15\" compressionRatio=\"2.5\" kneeWidthDb=\"8\" lookaheadMs=\"1\" makeupGainDb=\"1.5\" releaseMs=\"225\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-15\""},
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Bass Guitar"), 
   "Compressor:attackMs=\"1\" compressionRatio=\"3\" kneeWidthDb=\"2\" lookaheadMs=\"40\" makeupGainDb=\"0\" releaseMs=\"50\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-13\""},
   /*i18n-hint: This is the name of an effect preset. Strings is violins, etc*/
   { XO("Strings"), 
   "Compressor:attackMs=\"30\" compressionRatio=\"1.8\" kneeWidthDb=\"14.3\" lookaheadMs=\"1\" makeupGainDb=\"2.5\" releaseMs=\"400\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-15\""},
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Kick Drums"), 
   "Compressor:attackMs=\"30\" compressionRatio=\"4\" kneeWidthDb=\"0.5\" lookaheadMs=\"1\" makeupGainDb=\"2\" releaseMs=\"120\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-14\""},
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Drums Control"), 
   "Compressor:attackMs=\"2\" compressionRatio=\"2\" kneeWidthDb=\"29\" lookaheadMs=\"1\" makeupGainDb=\"1\" releaseMs=\"40\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-12\""},
//SFX   
   /*i18n-hint: This is the name of an effect preset. SFX means sound effects.*/
   { XO("Climax Impulser SFX"),
     "Compressor:attackMs=\"172\" compressionRatio=\"23.4\" kneeWidthDb=\"27.4\" lookaheadMs=\"0\" makeupGainDb=\"0\" releaseMs=\"813.4\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-55.1\"" },
   /*i18n-hint: This is the name of an effect preset. SFX means sound effects.*/
   { XO("Engine Breathing SFX"),
     "Compressor:attackMs=\"190.2\" compressionRatio=\"4.7\" kneeWidthDb=\"3.5\" lookaheadMs=\"2.3\" makeupGainDb=\"0\" releaseMs=\"0.2\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-37.7\"" },
   /*i18n-hint: This is the name of an effect preset. SFX means sound effects.*/
   { XO("Great Impact SFX"),
     "Compressor:attackMs=\"172\" compressionRatio=\"24.6\" kneeWidthDb=\"5\" lookaheadMs=\"0.6\" makeupGainDb=\"8.3\" releaseMs=\"562.6\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-49.3\"" },
   /*i18n-hint: This is the name of an effect preset. SFX means sound effects.*/
   { XO("Great Body SFX"),
     "Compressor:attackMs=\"74.6\" compressionRatio=\"2.4\" kneeWidthDb=\"0.3\" lookaheadMs=\"29.3\" makeupGainDb=\"8.6\" releaseMs=\"204.8\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-32.8\"" },
   /*i18n-hint: This is the name of an effect preset. SFX means sound effects.*/
   { XO("Great Tail SFX"),
     "Compressor:attackMs=\"1.4\" compressionRatio=\"2.4\" kneeWidthDb=\"0.3\" lookaheadMs=\"0\" makeupGainDb=\"23.9\" releaseMs=\"199.6\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-55.4\"" },
   /*i18n-hint: This is the name of an effect preset. SFX means sound effects.*/
   { XO("Smack Explosion SFX"),
     "Compressor:attackMs=\"155.5\" compressionRatio=\"5.9\" kneeWidthDb=\"24.4\" lookaheadMs=\"1.3\" makeupGainDb=\"7.1\" releaseMs=\"1.7\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-32.5\""}
};

const std::vector<SerializedPreset> serializedLimiterPresets {
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Master Limiter"),
     "Limiter:kneeWidthDb=\"0.1\" lookaheadMs=\"0.1\" makeupTargetDb=\"-0.1\" releaseMs=\"0.1\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-0.1\"" },
   /*i18n-hint: This is the name of an effect preset. SFX means sound effects.*/
   { XO("SFX Limiter"),
     "Limiter:kneeWidthDb=\"1\" lookaheadMs=\"1\" makeupTargetDb=\"-1\" releaseMs=\"1\" showActual=\"1\" showInput=\"0\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-3\"" },
   /*i18n-hint: This is the name of an effect preset. VO means Voiceover.*/
   { XO("VO Limiter"),
     "Limiter:kneeWidthDb=\"0\" lookaheadMs=\"0.1\" makeupTargetDb=\"-1\" releaseMs=\"10.1\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-4\"" },
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Modern"), 
     "Limiter:kneeWidthDb=\"0\" lookaheadMs=\"1\" makeupTargetDb=\"-1.5\" releaseMs=\"5\" showActual=\"0\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-1.5\""},
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Modern Punch"), 
     "Limiter:kneeWidthDb=\"0\" lookaheadMs=\"1\" makeupTargetDb=\"-1.5\" releaseMs=\"5\" showActual=\"0\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-1.5\""},
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Modern Punch 2"), 
     "Limiter:kneeWidthDb=\"1\" lookaheadMs=\"1\" makeupTargetDb=\"-1.5\" releaseMs=\"2\" showActual=\"1\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-1\""},
   /*i18n-hint: This is the name of an effect preset.*/
   { XO("Play it Loud"), 
     "Limiter:kneeWidthDb=\"0\" lookaheadMs=\"1\" makeupTargetDb=\"-2.2\" releaseMs=\"5\" showActual=\"0\" showInput=\"1\" showOutput=\"1\" showTarget=\"0\" thresholdDb=\"-8.5\""},
};
} // namespace Detail
} // namespace DynamicRangeProcessorUtils