Skip to content

Commit 31b7fb5

Browse files
committed
Add an RTA rack effect
- FFT-based real-time spectrum analyzer with 32/64/128 bands, -30/-45/-60/-80 dB range modes, pink noise reference line, and a QPainter-based renderer (RtaRenderer).
1 parent 9bad6da commit 31b7fb5

47 files changed

Lines changed: 1513 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ New features:
2525

2626
* Add a True Peak meter insert effect
2727

28+
* Add an RTA rack effect
29+
2830
Bug fixes:
2931

3032
Other:

src/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ set(QML_SOURCE_FILES
8989
${QML_BASE_DIR}/Dialogs/PitchBendAutomationModel.qml
9090
${QML_BASE_DIR}/Dialogs/RecentFilesDialog.qml
9191
${QML_BASE_DIR}/Dialogs/ReverbDialog.qml
92+
${QML_BASE_DIR}/Dialogs/RtaDialog.qml
9293
${QML_BASE_DIR}/Dialogs/SamplerDialog.qml
9394
${QML_BASE_DIR}/Dialogs/SamplerDialog_Global.qml
9495
${QML_BASE_DIR}/Dialogs/SamplerDialog_Header.qml

src/application/application.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
#include "../view/controllers/sampler_controller.hpp"
4646
#include "../view/controllers/synth_controller.hpp"
4747
#include "../view/controllers/wavetable_synth_controller.hpp"
48+
#include "../view/qml/Dialogs/rta_renderer.hpp"
4849
#include "../view/qml/Editor/line_number_renderer.hpp"
4950
#include "../view/qml/Editor/note_column_renderer.hpp"
5051
#include "models/audio_settings_model.hpp"
@@ -202,6 +203,7 @@ void Application::registerTypes()
202203
qmlRegisterType<MixerService>("Noteahead", majorVersion, minorVersion, "MixerService");
203204
qmlRegisterType<NoteColumnLineContainerHelper>("Noteahead", majorVersion, minorVersion, "NoteColumnLineContainerHelper");
204205
qmlRegisterType<NoteColumnRenderer>("Noteahead", majorVersion, minorVersion, "NoteColumnRenderer");
206+
qmlRegisterType<RtaRenderer>("Noteahead", majorVersion, minorVersion, "RtaRenderer");
205207
qmlRegisterType<PitchBendAutomationsModel>("Noteahead", majorVersion, minorVersion, "PitchBendAutomationsModel");
206208
qmlRegisterType<PropertyService>("Noteahead", majorVersion, minorVersion, "PropertyService");
207209
qmlRegisterType<RecentFilesModel>("Noteahead", majorVersion, minorVersion, "RecentFilesModel");

src/common/constants.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,11 @@ QString dbtpMeter()
192192
{
193193
return "dbtpmeter";
194194
}
195+
196+
QString rta()
197+
{
198+
return "rta";
199+
}
195200
} // namespace RackEffectType
196201

197202
namespace NahdXml {
@@ -1677,6 +1682,36 @@ QString xmlKeyStringDetune()
16771682
return "stringDetune";
16781683
}
16791684

1685+
QString xmlKeyBandCount()
1686+
{
1687+
return "bandCount";
1688+
}
1689+
1690+
QString xmlKeyDbRange()
1691+
{
1692+
return "dbRange";
1693+
}
1694+
1695+
QString xmlKeyShowPinkNoise()
1696+
{
1697+
return "showPinkNoise";
1698+
}
1699+
1700+
QString xmlKeyPinkNoiseLevel()
1701+
{
1702+
return "pinkNoiseLevel";
1703+
}
1704+
1705+
QString xmlKeySpeed()
1706+
{
1707+
return "speed";
1708+
}
1709+
1710+
QString xmlKeyFftRate()
1711+
{
1712+
return "fftRate";
1713+
}
1714+
16801715
} // namespace NahdXml
16811716

16821717
} // namespace noteahead::Constants

src/common/constants.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ QString eq8BandParametricLegacy();
7979
QString allPassFilter();
8080
QString lufsMeter();
8181
QString dbtpMeter();
82+
QString rta();
8283
} // namespace RackEffectType
8384

8485
namespace NahdXml {
@@ -432,6 +433,13 @@ QString xmlKeyStringDetune();
432433
QString xmlKeyLufsMeter();
433434
QString xmlKeyDbTpMeter();
434435

436+
QString xmlKeyBandCount();
437+
QString xmlKeyDbRange();
438+
QString xmlKeyShowPinkNoise();
439+
QString xmlKeyPinkNoiseLevel();
440+
QString xmlKeySpeed();
441+
QString xmlKeyFftRate();
442+
435443
QString embeddedDataPathPrefix();
436444

437445
QString xmlValueFalse();

src/domain/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ set(HEADER_FILES
3535
dsp/oversampler.hpp
3636
dsp/poly_blep_oscillator.hpp
3737
dsp/reverb_effect.hpp
38+
dsp/rta.hpp
3839
dsp/svf_filter.hpp
3940
dsp/true_stereo_panner.hpp
4041
dsp/waveguide_string.hpp
@@ -121,6 +122,7 @@ set(SOURCE_FILES
121122
dsp/oversampler.cpp
122123
dsp/poly_blep_oscillator.cpp
123124
dsp/reverb_effect.cpp
125+
dsp/rta.cpp
124126
dsp/svf_filter.cpp
125127
dsp/true_stereo_panner.cpp
126128
dsp/wavetable.cpp

0 commit comments

Comments
 (0)