Add DHE modules
Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
parent
80bda51e7c
commit
43bf3abe0e
7 changed files with 114 additions and 13 deletions
3
.gitmodules
vendored
3
.gitmodules
vendored
|
@ -230,3 +230,6 @@
|
|||
[submodule "plugins/EnigmaCurry"]
|
||||
path = plugins/EnigmaCurry
|
||||
url = https://github.com/EnigmaCurry/EnigmaCurry-vcv-pack.git
|
||||
[submodule "plugins/DHE-Modules"]
|
||||
path = plugins/DHE-Modules
|
||||
url = https://github.com/dhemery/DHE-Modules.git
|
||||
|
|
|
@ -140,6 +140,7 @@ At the moment the following 3rd-party modules are provided:
|
|||
- [cf](https://github.com/cfoulc/cf)
|
||||
- [ChowDSP](https://github.com/jatinchowdhury18/ChowDSP-VCV)
|
||||
- [dBiz](https://github.com/dBiz/dBiz)
|
||||
- [DHE Modules](https://github.com/dhemery/DHE-Modules)
|
||||
- [DrumKit](https://svmodular.com/plugin/vcv/drumkit.html)
|
||||
- [EnigmaCurry](https://github.com/EnigmaCurry/EnigmaCurry-vcv-pack)
|
||||
- [E-Series](https://github.com/VCVRack/ESeries)
|
||||
|
|
|
@ -34,6 +34,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule
|
|||
| cf | BSD-3-Clause | |
|
||||
| ChowDSP | GPL-3.0-or-later | |
|
||||
| dBiz | GPL-3.0-or-later | |
|
||||
| DHE-Modules | MIT | |
|
||||
| DrumKit | CC0-1.0 | |
|
||||
| EnigmaCurry | GPL-3.0-or-later | |
|
||||
| E-Series | GPL-3.0-or-later | |
|
||||
|
@ -159,6 +160,7 @@ Below is a list of artwork licenses from plugins
|
|||
| dBiz/* | CC-BY-NC-ND-4.0 | |
|
||||
| dBiz/DejaVuSansMono.ttf | Bitstream-Vera | |
|
||||
| dBiz/ShareTechMono-Regular.ttf | OFL-1.1 | |
|
||||
| DHE-Modules/* | MIT | Same license as source code |
|
||||
| DrumKit/* | CC0-1.0 | |
|
||||
| DrumKit/component/NovaMono.ttf | OFL-1.1-RFN | |
|
||||
| EnigmaCurry/res/fonts/dseg/* | OFL-1.1-RFN | |
|
||||
|
|
1
plugins/DHE-Modules
Submodule
1
plugins/DHE-Modules
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 1d1c286fc69babdb36dfe5fa4fe2856b0f707854
|
|
@ -655,6 +655,11 @@ PLUGIN_FILES += $(filter-out dBiz/src/plugin.cpp,$(wildcard dBiz/src/*.cpp))
|
|||
DBIZ_CUSTOM = Chord DarkDefaultItem Divider FourSeq FourSeqWidget OrangeLight VCA4 Wavefolder darkPanelID lightPanelID
|
||||
DBIZ_CUSTOM_PER_FILE = LERP MultiFilter Oscillator calcOutput sineOsc subBank
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# DHE-Modules
|
||||
|
||||
PLUGIN_FILES += $(filter-out DHE-Modules/src/plugin.cpp,$(wildcard DHE-Modules/src/modules/*/init.cpp))
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# DrumKit
|
||||
|
||||
|
@ -1390,6 +1395,7 @@ RESOURCE_FILES += BaconPlugs/res/midi/chopin
|
|||
RESOURCE_FILES += BaconPlugs/res/midi/debussy
|
||||
RESOURCE_FILES += BaconPlugs/res/midi/goldberg
|
||||
RESOURCE_FILES += cf/playeroscs
|
||||
RESOURCE_FILES += DHE-Modules/svg
|
||||
RESOURCE_FILES += DrumKit/res/samples
|
||||
RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityPresets
|
||||
RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityShapes
|
||||
|
@ -2216,6 +2222,14 @@ $(BUILD_DIR)/dBiz/src/%.cpp.o: dBiz/src/%.cpp
|
|||
$(foreach m,$(DBIZ_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),dBiz_$(shell basename $*))) \
|
||||
-DpluginInstance=pluginInstance__dBiz
|
||||
|
||||
$(BUILD_DIR)/DHE-Modules/src/%.cpp.o: DHE-Modules/src/%.cpp
|
||||
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
|
||||
@echo "Compiling $<"
|
||||
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
|
||||
$(foreach m,$(DHE_CUSTOM),$(call custom_module_names,$(m),DHE)) \
|
||||
-DpluginInstance=pluginInstance__DHE \
|
||||
-IDHE-Modules/src
|
||||
|
||||
$(BUILD_DIR)/DrumKit/%.cpp.o: DrumKit/%.cpp
|
||||
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
|
||||
@echo "Compiling $<"
|
||||
|
|
|
@ -1,18 +1,7 @@
|
|||
/*
|
||||
* DISTRHO Cardinal Plugin
|
||||
* Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 3 of
|
||||
* the License, or any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* For a full copy of the GNU General Public License see the LICENSE file.
|
||||
* Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
#include "rack.hpp"
|
||||
|
@ -335,6 +324,26 @@ extern Model* modelTestVCF;
|
|||
#undef modelFourSeq
|
||||
#undef modelVCA4
|
||||
|
||||
// DHEModules
|
||||
// NOTE very unique way of handling init, needs special handling
|
||||
namespace dhe {
|
||||
namespace blossom { void init(Plugin*); }
|
||||
namespace buttons { void init(Plugin*); }
|
||||
namespace cubic { void init(Plugin*); }
|
||||
namespace curve_sequencer { void init(Plugin*); }
|
||||
namespace envelope { void init(Plugin*); }
|
||||
namespace func { void init(Plugin*); }
|
||||
namespace fuzzy_logic { void init(Plugin*); }
|
||||
namespace gator { void init(Plugin*); }
|
||||
namespace ranger { void init(Plugin*); }
|
||||
namespace scannibal { void init(Plugin*); }
|
||||
namespace sequencizer { void init(Plugin*); }
|
||||
namespace swave { void init(Plugin*); }
|
||||
namespace tapers { void init(Plugin*); }
|
||||
namespace truth { void init(Plugin*); }
|
||||
namespace xycloid { void init(Plugin*); }
|
||||
}
|
||||
|
||||
// DrumKit
|
||||
#include "DrumKit/src/DrumKit.hpp"
|
||||
void setupSamples();
|
||||
|
@ -821,6 +830,7 @@ Plugin* pluginInstance__CatroModulo;
|
|||
Plugin* pluginInstance__cf;
|
||||
Plugin* pluginInstance__ChowDSP;
|
||||
Plugin* pluginInstance__dBiz;
|
||||
Plugin* pluginInstance__DHE;
|
||||
extern Plugin* pluginInstance__DrumKit;
|
||||
Plugin* pluginInstance__EnigmaCurry;
|
||||
Plugin* pluginInstance__ESeries;
|
||||
|
@ -1835,6 +1845,32 @@ static void initStatic__dBiz()
|
|||
}
|
||||
}
|
||||
|
||||
static void initStatic__DHE()
|
||||
{
|
||||
Plugin* const p = new Plugin;
|
||||
pluginInstance__DHE = p;
|
||||
|
||||
const StaticPluginLoader spl(p, "DHE-Modules");
|
||||
if (spl.ok())
|
||||
{
|
||||
dhe::blossom::init(p);
|
||||
dhe::buttons::init(p);
|
||||
dhe::cubic::init(p);
|
||||
dhe::curve_sequencer::init(p);
|
||||
dhe::envelope::init(p);
|
||||
dhe::func::init(p);
|
||||
dhe::fuzzy_logic::init(p);
|
||||
dhe::gator::init(p);
|
||||
dhe::ranger::init(p);
|
||||
dhe::scannibal::init(p);
|
||||
dhe::sequencizer::init(p);
|
||||
dhe::swave::init(p);
|
||||
dhe::tapers::init(p);
|
||||
dhe::truth::init(p);
|
||||
dhe::xycloid::init(p);
|
||||
}
|
||||
}
|
||||
|
||||
static void initStatic__DrumKit()
|
||||
{
|
||||
Plugin* const p = new Plugin;
|
||||
|
@ -3116,6 +3152,7 @@ void initStaticPlugins()
|
|||
initStatic__cf();
|
||||
initStatic__ChowDSP();
|
||||
initStatic__dBiz();
|
||||
initStatic__DHE();
|
||||
initStatic__DrumKit();
|
||||
initStatic__EnigmaCurry();
|
||||
initStatic__ESeries();
|
||||
|
|
|
@ -74,6 +74,7 @@ enum DarkMode {
|
|||
kModeAudibleInstruments,
|
||||
kModeBidoo,
|
||||
kModeCf,
|
||||
kModeDHE,
|
||||
kModeDrumKit,
|
||||
kModeESeries,
|
||||
kModeHetrickCV,
|
||||
|
@ -226,6 +227,35 @@ static const struct {
|
|||
{ kModeCf, "/cf/res/SUB.svg", {}, -1 },
|
||||
{ kModeCf, "/cf/res/trSEQ.svg", {}, -1 },
|
||||
{ kModeCf, "/cf/res/VARIABLE.svg", {}, -1 },
|
||||
// MIT
|
||||
{ kModeDHE, "/DHE-Modules/svg/blossom.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/booster-stage.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/buttons.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/cubic.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/curve-sequencer-4.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/curve-sequencer-8.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/curve-sequencer-16.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/func.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/func-6.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/fuzzy-logic-h.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/fuzzy-logic-z.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/gator.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/hostage.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/ranger.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/scannibal-4.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/scannibal-8.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/scannibal-16.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/sequencizer-4.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/sequencizer-8.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/sequencizer-16.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/stage.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/swave.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/tapers.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/truth-2.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/truth-3.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/truth-4.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/upstage.svg", {}, -1 },
|
||||
{ kModeDHE, "/DHE-Modules/svg/xycloid.svg", {}, -1 },
|
||||
// CC0-1.0
|
||||
{ kModeDrumKit, "/DrumKit/res/Baronial.svg", {}, -1 },
|
||||
{ kModeDrumKit, "/DrumKit/res/BD9.svg", {}, -1 },
|
||||
|
@ -611,6 +641,15 @@ static const struct {
|
|||
{ kModeSonusmodular, "/sonusmodular/res/yabp.svg" },
|
||||
};
|
||||
|
||||
static inline
|
||||
unsigned int darkerColor(const unsigned int color) noexcept
|
||||
{
|
||||
return (color & 0xff000000)
|
||||
| (std::max<int>(0, ((color & 0xff0000) >> 16) - 0x80) << 16)
|
||||
| (std::max<int>(0, ((color & 0xff00) >> 8) - 0x80) << 8)
|
||||
| (std::max<int>(0, (color & 0xff) - 0x80));
|
||||
}
|
||||
|
||||
static inline
|
||||
unsigned int invertColor(const unsigned int color) noexcept
|
||||
{
|
||||
|
@ -670,6 +709,10 @@ bool invertPaintForDarkMode(const DarkMode mode, NSVGshape* const shape, NSVGpai
|
|||
}
|
||||
}
|
||||
break;
|
||||
// Special case for DHE, mark things darker instead of inverting
|
||||
case kModeDHE:
|
||||
paint.color = darkerColor(paint.color);
|
||||
return true;
|
||||
// Special case for JW-Modules colors
|
||||
case kModeJW:
|
||||
switch (paint.color)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue