Skip to content

Commit 2d19c3d

Browse files
committed
Add the Auto Filter rack effect
- LPF, HPF, BPF and Notch at 12 or 24 dB/oct - Two LFOs with Synth's waveform and sync options, one on the cutoff and one on the resonance - Envelope follower on the cutoff, with attack and release - Bipolar non-linear intensities, stereo phase offset, gain and mix - Normalize the band-pass peak to unity, so resonance narrows the band instead of setting its level
1 parent 9bff34a commit 2d19c3d

25 files changed

Lines changed: 1639 additions & 0 deletions

CHANGELOG

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ New features:
99
- Pulse Width, Vocal Formant, Resonant Sweep and Organ Drawbar
1010
- Wavetables are now built on first use instead of at startup
1111

12+
* Add the Auto Filter rack effect
13+
- LPF, HPF, BPF and Notch at 12 or 24 dB/oct
14+
- Two LFOs with Synth's waveform and sync options: one on the cutoff, one
15+
on the resonance
16+
- Envelope follower on the cutoff, with attack and release
17+
- Bipolar intensities, stereo phase offset, output gain and mix
18+
1219
* Add the Multiband Compressor rack effect
1320
- Three bands split by Linkwitz-Riley crossovers that sum back flat
1421
- Per-band threshold, ratio, knee, attack, release, makeup, bypass and solo

src/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ set(QML_SOURCE_FILES
5050
${QML_BASE_DIR}/Dialogs/LoudnessReportDialog.qml
5151
${QML_BASE_DIR}/Dialogs/AudioRenderDialog.qml
5252
${QML_BASE_DIR}/Dialogs/AutoDuckerDialog.qml
53+
${QML_BASE_DIR}/Dialogs/AutoFilterDialog.qml
5354
${QML_BASE_DIR}/Dialogs/AutoPannerDialog.qml
5455
${QML_BASE_DIR}/Dialogs/BassGrinderDialog.qml
5556
${QML_BASE_DIR}/Dialogs/BassSynthDialog.qml

src/common/constants.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,11 @@ QString autoDucker()
261261
return "autoducker";
262262
}
263263

264+
QString autoFilter()
265+
{
266+
return "autofilter";
267+
}
268+
264269
QString eq8BandParametric()
265270
{
266271
return "eq8bandparametric";
@@ -1262,6 +1267,11 @@ QString xmlKeyStereoMode()
12621267
return "stereoMode";
12631268
}
12641269

1270+
QString xmlKeyStereoPhase()
1271+
{
1272+
return "stereoPhase";
1273+
}
1274+
12651275
QString xmlKeyRate()
12661276
{
12671277
return "rate";
@@ -1387,6 +1397,16 @@ QString xmlKeyResonance()
13871397
return "resonance";
13881398
}
13891399

1400+
QString xmlKeyFilterType()
1401+
{
1402+
return "filterType";
1403+
}
1404+
1405+
QString xmlKeyFilterSlope()
1406+
{
1407+
return "filterSlope";
1408+
}
1409+
13901410
QString xmlKeyKeyTrack()
13911411
{
13921412
return "keyTrack";

src/common/constants.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ QString endless();
170170
QString panner();
171171
QString autoPanner();
172172
QString autoDucker();
173+
QString autoFilter();
173174
QString eq8BandParametric();
174175
QString eq8BandParametricLegacy();
175176
QString vintagePassiveEq();
@@ -416,6 +417,7 @@ QString xmlKeyMultiKeyTrack();
416417
QString xmlKeyVoiceMode();
417418
QString xmlKeyMode();
418419
QString xmlKeyStereoMode();
420+
QString xmlKeyStereoPhase();
419421
QString xmlKeyBaseRate();
420422
QString xmlKeyRate();
421423
QString xmlKeyDepth();
@@ -445,6 +447,8 @@ QString xmlKeyVoiceBalance();
445447
QString xmlKeyVoiceUpperMale8();
446448
QString xmlKeyPitchBendRange();
447449
QString xmlKeyResonance();
450+
QString xmlKeyFilterType();
451+
QString xmlKeyFilterSlope();
448452
QString xmlKeyKeyTrack();
449453
QString xmlKeyAttack();
450454
QString xmlKeyDecay();

src/domain/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ set(HEADER_FILES
5252
effects/air_band_eq.hpp
5353
effects/all_pass_filter.hpp
5454
effects/auto_ducker.hpp
55+
effects/auto_filter.hpp
5556
effects/auto_panner.hpp
5657
effects/bass_grinder.hpp
5758
effects/clipper.hpp
@@ -176,6 +177,7 @@ set(SOURCE_FILES
176177
effects/air_band_eq.cpp
177178
effects/all_pass_filter.cpp
178179
effects/auto_ducker.cpp
180+
effects/auto_filter.cpp
179181
effects/auto_panner.cpp
180182
effects/bass_grinder.cpp
181183
effects/chorus.cpp

src/domain/dsp/lfo.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ void Lfo::setPhase(double phase)
6666
}
6767
}
6868

69+
double Lfo::phase() const
70+
{
71+
return m_phase;
72+
}
73+
6974
void Lfo::reset()
7075
{
7176
m_phase = 0.0;

src/domain/dsp/lfo.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ class Lfo : public DspComponent
5151
void setWaveform(Waveform waveform);
5252
void setMode(Mode mode);
5353
void setPhase(double phase);
54+
double phase() const;
5455
void trigger();
5556
double nextSample();
5657
void reset();

0 commit comments

Comments
 (0)