From fc423191a4119cdc4b781d78c0286d82cf19ae2c Mon Sep 17 00:00:00 2001 From: Antoine C Date: Sat, 20 Apr 2024 21:17:12 +0100 Subject: [PATCH] feat: add quick FX for stem This allows the effect manager to apply quick effect on each stem. Effects are applied post stem fader, but pre deck fader --- res/skins/LateNight/waveform.xml | 61 ++++++++++++-- res/skins/Shade/btn/btn_stem_minus.png | Bin 0 -> 8035 bytes res/skins/Shade/btn/btn_stem_plus.png | Bin 0 -> 6899 bytes res/skins/Shade/deck.xml | 14 ++-- res/skins/Shade/deck_transport.xml | 65 ++++++++++----- res/skins/Shade/waveform.xml | 24 +++++- res/skins/Tango/waveform.xml | 54 +++++++++++-- src/effects/effectsmanager.cpp | 60 +++++++++++++- src/effects/effectsmanager.h | 3 + .../presets/effectchainpresetmanager.cpp | 75 +++++++++++++++++- .../presets/effectchainpresetmanager.h | 3 + src/effects/presets/effectxmlelements.h | 1 + src/engine/channels/enginedeck.cpp | 60 +++++++++++--- src/engine/channels/enginedeck.h | 4 + src/mixer/playermanager.cpp | 8 ++ src/mixer/playermanager.h | 7 ++ src/skin/legacy/legacyskinparser.cpp | 3 + src/util/sample.cpp | 16 ++++ src/util/sample.h | 11 +++ 19 files changed, 411 insertions(+), 58 deletions(-) create mode 100644 res/skins/Shade/btn/btn_stem_minus.png create mode 100644 res/skins/Shade/btn/btn_stem_plus.png diff --git a/res/skins/LateNight/waveform.xml b/res/skins/LateNight/waveform.xml index f57c3f81c3da..dd260e34bf26 100644 --- a/res/skins/LateNight/waveform.xml +++ b/res/skins/LateNight/waveform.xml @@ -133,12 +133,10 @@ #FFFFFF - 138,68 - 158,1920 - me,me + 248me,68m - 130,17 - 150,34 + 240,17 + 240,34 me,min horizontal @@ -151,7 +149,7 @@ 20,17 40,34 me,me - skins:LateNight//knobs/knob_indicator_regular_.svg + skins:LateNight//knobs/knob_indicator_regular_grey.svg skins:LateNight//knobs/knob_bg_regular.svg @@ -164,6 +162,57 @@ ,stem__volume + + QuickEffectSelectorLeft + 40,17 + 70,28 + me,e + [QuickEffectRack1_] + + + 14f,9f + + + QuickEffectRack_enabled + QuickEffectDot + 4,0 + 9f,9f + 2 + false + + 0 + + + 1 + + + [QuickEffectRack1_],enabled + LeftButton + + + + + + QuickEffectRack_super1 + 0,0 + 20,17 + 40,34 + me,me + skins:LateNight//knobs/knob_indicator_regular_green.svg + skins:LateNight//knobs/knob_bg_regular.svg + + + + + + + + + 1.998 + + [QuickEffectRack1_],super1 + + diff --git a/res/skins/Shade/btn/btn_stem_minus.png b/res/skins/Shade/btn/btn_stem_minus.png new file mode 100644 index 0000000000000000000000000000000000000000..ae616e19e8d5f6abab4c476fcdb2c314656a250a GIT binary patch literal 8035 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 lky=pm>y@Agr^YvlK!T&ZTR1*xFfbB`! DeckLeft - 0e,165f + 0e,175f horizontal @@ -148,19 +148,19 @@ DeckUpperLeftMidPart - 0e,91f + 0e,81f horizontal DeckUpperMidPart - 0e,91f + 0e,81f style/style_bg_deck_pane.png horizontal DeckWaveformVinylControlSpinny - 0e,91f + 0e,81f horizontal horizontal - 0e,91f + 0e,81f