diff --git a/CMakeLists.txt b/CMakeLists.txt index b49cd58218f..278fca7b278 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -527,41 +527,51 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL src/dialog/dlgkeywheel.ui src/dialog/dlgreplacecuecolor.cpp src/dialog/dlgreplacecuecolordlg.ui - src/effects/builtin/autopaneffect.cpp - src/effects/builtin/balanceeffect.cpp - src/effects/builtin/bessel4lvmixeqeffect.cpp - src/effects/builtin/bessel8lvmixeqeffect.cpp - src/effects/builtin/biquadfullkilleqeffect.cpp - src/effects/builtin/bitcrushereffect.cpp - src/effects/builtin/builtinbackend.cpp - src/effects/builtin/echoeffect.cpp - src/effects/builtin/filtereffect.cpp - src/effects/builtin/flangereffect.cpp - src/effects/builtin/graphiceqeffect.cpp - src/effects/builtin/linkwitzriley8eqeffect.cpp - src/effects/builtin/loudnesscontoureffect.cpp - src/effects/builtin/metronomeeffect.cpp - src/effects/builtin/whitenoiseeffect.cpp - src/effects/builtin/moogladder4filtereffect.cpp - src/effects/builtin/parametriceqeffect.cpp - src/effects/builtin/phasereffect.cpp - src/effects/builtin/reverbeffect.cpp - src/effects/builtin/threebandbiquadeqeffect.cpp - src/effects/builtin/tremoloeffect.cpp - src/effects/effect.cpp src/effects/effectbuttonparameterslot.cpp src/effects/effectchain.cpp - src/effects/effectchainmanager.cpp - src/effects/effectchainslot.cpp - src/effects/effectmanifest.cpp - src/effects/effectmanifestparameter.cpp + src/effects/effectchainmixmode.cpp src/effects/effectparameter.cpp - src/effects/effectparameterslot.cpp + src/effects/effectknobparameterslot.cpp src/effects/effectparameterslotbase.cpp - src/effects/effectrack.cpp - src/effects/effectsbackend.cpp src/effects/effectslot.cpp src/effects/effectsmanager.cpp + src/effects/effectsmessenger.cpp + src/effects/visibleeffectslist.cpp + src/effects/backends/effectsbackend.cpp + src/effects/backends/effectmanifest.cpp + src/effects/backends/effectmanifestparameter.cpp + src/effects/backends/builtin/autopaneffect.cpp + src/effects/backends/builtin/balanceeffect.cpp + src/effects/backends/builtin/bessel4lvmixeqeffect.cpp + src/effects/backends/builtin/bessel8lvmixeqeffect.cpp + src/effects/backends/builtin/biquadfullkilleqeffect.cpp + src/effects/backends/builtin/bitcrushereffect.cpp + src/effects/backends/builtin/builtinbackend.cpp + src/effects/backends/builtin/echoeffect.cpp + src/effects/backends/builtin/filtereffect.cpp + src/effects/backends/builtin/flangereffect.cpp + src/effects/backends/builtin/graphiceqeffect.cpp + src/effects/backends/builtin/linkwitzriley8eqeffect.cpp + src/effects/backends/builtin/loudnesscontoureffect.cpp + src/effects/backends/builtin/metronomeeffect.cpp + src/effects/backends/builtin/moogladder4filtereffect.cpp + src/effects/backends/builtin/parametriceqeffect.cpp + src/effects/backends/builtin/phasereffect.cpp + src/effects/backends/builtin/reverbeffect.cpp + src/effects/backends/builtin/threebandbiquadeqeffect.cpp + src/effects/backends/builtin/tremoloeffect.cpp + src/effects/backends/builtin/whitenoiseeffect.cpp + src/effects/backends/effectsbackendmanager.cpp + src/effects/chains/equalizereffectchain.cpp + src/effects/chains/outputeffectchain.cpp + src/effects/chains/pergroupeffectchain.cpp + src/effects/chains/quickeffectchain.cpp + src/effects/chains/standardeffectchain.cpp + src/effects/presets/effectchainpreset.cpp + src/effects/presets/effectchainpresetmanager.cpp + src/effects/presets/effectparameterpreset.cpp + src/effects/presets/effectpreset.cpp + src/effects/presets/effectpresetmanager.cpp src/encoder/encoder.cpp src/encoder/encoderfdkaac.cpp src/encoder/encoderfdkaacsettings.cpp @@ -595,7 +605,6 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL src/engine/controls/ratecontrol.cpp src/engine/effects/engineeffect.cpp src/engine/effects/engineeffectchain.cpp - src/engine/effects/engineeffectrack.cpp src/engine/effects/engineeffectsmanager.cpp src/engine/enginebuffer.cpp src/engine/enginedelay.cpp @@ -756,7 +765,6 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL src/preferences/dialog/dlgprefkeydlg.ui src/preferences/dialog/dlgpreflibrary.cpp src/preferences/dialog/dlgpreflibrarydlg.ui - src/preferences/dialog/dlgpreflv2dlg.ui src/preferences/dialog/dlgprefrecord.cpp src/preferences/dialog/dlgprefrecorddlg.ui src/preferences/dialog/dlgprefreplaygain.cpp @@ -768,7 +776,8 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL src/preferences/dialog/dlgprefvinyldlg.ui src/preferences/dialog/dlgprefwaveform.cpp src/preferences/dialog/dlgprefwaveformdlg.ui - src/preferences/effectsettingsmodel.cpp + src/preferences/effectchainpresetlistmodel.cpp + src/preferences/effectmanifesttablemodel.cpp src/preferences/colorpaletteeditor.cpp src/preferences/colorpaletteeditormodel.cpp src/preferences/colorpalettesettings.cpp @@ -868,6 +877,7 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL src/util/experiment.cpp src/util/fileaccess.cpp src/util/fileinfo.cpp + src/util/filename.cpp src/util/imageutils.cpp src/util/indexrange.cpp src/util/logger.cpp @@ -1006,13 +1016,15 @@ if(NOT QT6) src/widget/wcoverartmenu.cpp src/widget/wcuemenupopup.cpp src/widget/wdisplay.cpp - src/widget/weffect.cpp - src/widget/weffectbuttonparameter.cpp + src/widget/weffectbuttonparametername.cpp src/widget/weffectchain.cpp - src/widget/weffectparameter.cpp - src/widget/weffectparameterbase.cpp + src/widget/weffectchainpresetbutton.cpp + src/widget/weffectchainpresetselector.cpp + src/widget/weffectknobparametername.cpp + src/widget/weffectname.cpp src/widget/weffectparameterknob.cpp src/widget/weffectparameterknobcomposed.cpp + src/widget/weffectparameternamebase.cpp src/widget/weffectpushbutton.cpp src/widget/weffectselector.cpp src/widget/whotcuebutton.cpp @@ -1348,6 +1360,14 @@ install( "${MIXXX_INSTALL_DATADIR}" ) +# Effect presets +install( + DIRECTORY + "${CMAKE_CURRENT_SOURCE_DIR}/res/effects" + DESTINATION + "${MIXXX_INSTALL_DATADIR}" +) + # Translation files install( DIRECTORY @@ -1552,7 +1572,6 @@ add_executable(mixxx-test src/test/analyzersilence_test.cpp src/test/audiotaperpot_test.cpp src/test/autodjprocessor_test.cpp - src/test/baseeffecttest.cpp src/test/beatgridtest.cpp src/test/beatmaptest.cpp src/test/beatstest.cpp @@ -1581,9 +1600,8 @@ add_executable(mixxx-test src/test/directorydaotest.cpp src/test/duration_test.cpp src/test/durationutiltest.cpp - src/test/effectchainslottest.cpp - src/test/effectslottest.cpp - src/test/effectsmanagertest.cpp + #TODO: write useful tests for refactored effects system + #src/test/effectchainslottest.cpp src/test/enginebufferscalelineartest.cpp src/test/enginebuffertest.cpp src/test/enginefilterbiquadtest.cpp @@ -1605,7 +1623,8 @@ add_executable(mixxx-test src/test/main.cpp src/test/mathutiltest.cpp src/test/metadatatest.cpp - src/test/metaknob_link_test.cpp + #TODO: make this build again + #src/test/metaknob_link_test.cpp src/test/midicontrollertest.cpp src/test/mixxxtest.cpp src/test/movinginterquartilemean_test.cpp @@ -2579,10 +2598,9 @@ if(LILV) message(FATAL_ERROR "Lilv (LV2) support requires the liblilv-0 and its development headers.") endif() target_sources(mixxx-lib PRIVATE - src/effects/lv2/lv2backend.cpp - src/effects/lv2/lv2effectprocessor.cpp - src/effects/lv2/lv2manifest.cpp - src/preferences/dialog/dlgpreflv2.cpp + src/effects/backends/lv2/lv2backend.cpp + src/effects/backends/lv2/lv2effectprocessor.cpp + src/effects/backends/lv2/lv2manifest.cpp ) target_compile_definitions(mixxx-lib PUBLIC __LILV__) target_link_libraries(mixxx-lib PRIVATE lilv::lilv) diff --git a/res/effects/chains/Echoverb HP.xml b/res/effects/chains/Echoverb HP.xml new file mode 100644 index 00000000000..7c9a8db2b1f --- /dev/null +++ b/res/effects/chains/Echoverb HP.xml @@ -0,0 +1,142 @@ + + + Echoverb HP + DRY+WET + 0 + + + 0 + org.mixxx.effects.threebandbiquadeq + Built-In + + + low + 0.34375 + NONE + 0 + 0 + + + mid + 1 + NONE + 0 + 0 + + + high + 1 + NONE + 0 + 0 + + + killLow + 0 + NONE + 0 + 0 + + + killMid + 0 + NONE + 0 + 0 + + + killHigh + 0 + NONE + 0 + 0 + + + + + 0 + org.mixxx.effects.echo + Built-In + + + delay_time + 0.5 + NONE + 0 + 0 + + + feedback_amount + 0.707946 + NONE + 0 + 0 + + + pingpong_amount + 0 + NONE + 0 + 0 + + + send_amount + 0 + LINKED + 0 + 0 + + + quantize + 1 + NONE + 0 + 0 + + + triplet + 0 + NONE + 0 + 0 + + + + + 0 + org.mixxx.effects.reverb + Built-In + + + decay + 0.5 + NONE + 0 + 0 + + + bandwidth + 1 + NONE + 0 + 0 + + + damping + 0.277905 + NONE + 0 + 0 + + + send_amount + 1 + NONE + 0 + 0 + + + + + + diff --git a/res/effects/chains/Filter Echo.xml b/res/effects/chains/Filter Echo.xml new file mode 100644 index 00000000000..5dc15ccfa8c --- /dev/null +++ b/res/effects/chains/Filter Echo.xml @@ -0,0 +1,87 @@ + + + Filter Echo + DRY/WET + 0.5 + + + 0.5 + org.mixxx.effects.filter + Built-In + + + lpf + 22050 + LINKED_LEFT + 0 + 0 + + + q + 0.707107 + NONE + 0 + 0 + + + hpf + 13 + LINKED_RIGHT + 0 + 0 + + + + + 0.5 + org.mixxx.effects.echo + Built-In + + + delay_time + 1.0 + NONE + 0 + 0 + + + feedback_amount + 0.707946 + NONE + 0 + 0 + + + pingpong_amount + 0 + NONE + 0 + 0 + + + send_amount + 0 + LINKED_LEFT_RIGHT + 0 + 0 + + + quantize + 1 + NONE + 0 + 0 + + + triplet + 0 + NONE + 0 + 0 + + + + + + + diff --git a/res/effects/chains/Mid-Side.xml b/res/effects/chains/Mid-Side.xml new file mode 100644 index 00000000000..2c7735b6fc6 --- /dev/null +++ b/res/effects/chains/Mid-Side.xml @@ -0,0 +1,39 @@ + + + Mid/Side + DRY/WET + 0.5 + + + 0.5 + org.mixxx.effects.balance + Built-In + + + balance + 0 + NONE + 0 + 0 + + + midSide + 0 + LINKED + 0 + 0 + + + bypassFreq + 16 + NONE + 0 + 0 + + + + + + + + diff --git a/res/effects/chains/Side Reverb HP.xml b/res/effects/chains/Side Reverb HP.xml new file mode 100644 index 00000000000..ba39975e88e --- /dev/null +++ b/res/effects/chains/Side Reverb HP.xml @@ -0,0 +1,121 @@ + + + Side Reverb HP + DRY+WET + 0 + + + 0 + org.mixxx.effects.threebandbiquadeq + Built-In + + + low + 0.28125 + NONE + 0 + 0 + + + mid + 0.96875 + NONE + 0 + 0 + + + high + 0.984375 + NONE + 0 + 0 + + + killLow + 0 + NONE + 0 + 0 + + + killMid + 0 + NONE + 0 + 0 + + + killHigh + 0 + NONE + 0 + 0 + + + + + 0 + org.mixxx.effects.reverb + Built-In + + + decay + 0.690476 + NONE + 0 + 0 + + + bandwidth + 1 + NONE + 0 + 0 + + + damping + 0.15625 + NONE + 0 + 0 + + + send_amount + 0 + LINKED + 0 + 0 + + + + + 0 + org.mixxx.effects.balance + Built-In + + + balance + -0.015625 + NONE + 0 + 0 + + + midSide + 0.508312 + NONE + 0 + 0 + + + bypassFreq + 26.0248 + NONE + 0 + 0 + + + + + + diff --git a/res/effects/chains/Smooth Growl.xml b/res/effects/chains/Smooth Growl.xml new file mode 100644 index 00000000000..6f8ef614581 --- /dev/null +++ b/res/effects/chains/Smooth Growl.xml @@ -0,0 +1,107 @@ + + + Smooth Growl + DRY/WET + 0 + + + 0 + org.mixxx.effects.bitcrusher + Built-In + + + bit_depth + 16 + LINKED + 1 + 0 + + + downsample + 1 + LINKED + 1 + 0 + + + + + 0 + org.mixxx.effects.moogladder4filter + Built-In + + + lpf + 0.5 + LINKED + 1 + 0 + + + resonance + 1.54534 + NONE + 0 + 0 + + + hpf + 0.0003 + NONE + 0 + 0 + + + + + 0 + org.mixxx.effects.echo + Built-In + + + delay_time + 0.996914 + NONE + 0 + 0 + + + feedback_amount + 0.707946 + NONE + 0 + 0 + + + pingpong_amount + 0.169252 + NONE + 0 + 0 + + + send_amount + 0 + LINKED + 0 + 0 + + + quantize + 1 + NONE + 0 + 0 + + + triplet + 0 + NONE + 0 + 0 + + + + + + diff --git a/res/qml/EffectSlot.qml b/res/qml/EffectSlot.qml index f3004d376ba..da767a616bf 100644 --- a/res/qml/EffectSlot.qml +++ b/res/qml/EffectSlot.qml @@ -6,7 +6,7 @@ import "Theme" Item { id: root - property Mixxx.EffectSlotProxy slot: Mixxx.EffectsManager.getEffectSlot(1, unitNumber, effectNumber) + property Mixxx.EffectSlotProxy slot: Mixxx.EffectsManager.getEffectSlot(unitNumber, effectNumber) property int unitNumber // required property int effectNumber // required property bool expanded: false @@ -111,8 +111,8 @@ Item { // TODO: Use null coalescing when we switch to Qt >= 5.15 property string label: shortName ? shortName : name property string key: controlKey - property bool isButton: controlHint > 0 && controlHint == 6 - property bool isKnob: controlHint > 0 && controlHint < 6 + property bool isKnob: type == 0 + property bool isButton: type == 1 width: 50 height: 50 diff --git a/res/skins/Deere/effect_parameter_button.xml b/res/skins/Deere/effect_parameter_button.xml index 220679253be..0a65466d64e 100644 --- a/res/skins/Deere/effect_parameter_button.xml +++ b/res/skins/Deere/effect_parameter_button.xml @@ -9,6 +9,7 @@ EffectButtonParameter: the button parameter -->