diff --git a/.gitmodules b/.gitmodules index 0c21bd04..2736aa65 100644 --- a/.gitmodules +++ b/.gitmodules @@ -257,3 +257,6 @@ [submodule "plugins/rcm-modules"] path = plugins/rcm-modules url = https://github.com/Rcomian/rcm-modules.git +[submodule "plugins/SanguineMutants"] + path = plugins/SanguineMutants + url = https://github.com/Bloodbat/SanguineMutants.git diff --git a/plugins/Makefile b/plugins/Makefile index d9122817..f7974788 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -1033,6 +1033,145 @@ PLUGIN_FILES += $(filter-out repelzen/src/repelzen.cpp,$(wildcard repelzen/src/* # modules/types which are present in other plugins REPELZEN_CUSTOM = Blank Mixer Werner tanh_pade +# -------------------------------------------------------------- +# Sanguine Mutants +#SANGUINE_FLAGS = $(filter-out -std=gnu++17,$(BUILD_CXX_FLAGS)) +#SANGUINE_FLAGS += -std=c++11 +PLUGIN_FILES += $(filter-out SanguineMutants/src/plugin.cpp,$(wildcard SanguineMutants/src/*.cpp)) +PLUGIN_FILES += $(wildcard SanguineMutants/src/*.cpp) + +PLUGIN_FILES += SanguineMutants/eurorack/stmlib/utils/random.cc +PLUGIN_FILES += SanguineMutants/eurorack/stmlib/dsp/atan.cc +PLUGIN_FILES += SanguineMutants/eurorack/stmlib/dsp/units.cc + +PLUGIN_FILES += SanguineMutants/alt_firmware/parasites_stmlib/utils/parasites_random.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/parasites_stmlib/dsp/parasites_atan.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/parasites_stmlib/dsp/parasites_units.cc + +PLUGIN_FILES += $(wildcard SanguineMutants/eurorack/plaits/dsp/*.cc) +PLUGIN_FILES += $(wildcard SanguineMutants/eurorack/plaits/dsp/chords/*.cc) +PLUGIN_FILES += $(wildcard SanguineMutants/eurorack/plaits/dsp/engine/*.cc) +PLUGIN_FILES += $(wildcard SanguineMutants/eurorack/plaits/dsp/engine2/*.cc) +PLUGIN_FILES += $(wildcard SanguineMutants/eurorack/plaits/dsp/fm/*.cc) +PLUGIN_FILES += $(wildcard SanguineMutants/eurorack/plaits/dsp/speech/*.cc) +PLUGIN_FILES += $(wildcard SanguineMutants/eurorack/plaits/dsp/physical_modelling/*.cc) +PLUGIN_FILES += SanguineMutants/eurorack/plaits/resources.cc + +PLUGIN_FILES += SanguineMutants/eurorack/peaks/processors.cc +PLUGIN_FILES += SanguineMutants/eurorack/peaks/resources.cc +PLUGIN_FILES += SanguineMutants/eurorack/peaks/drums/bass_drum.cc +PLUGIN_FILES += SanguineMutants/eurorack/peaks/drums/fm_drum.cc +PLUGIN_FILES += SanguineMutants/eurorack/peaks/drums/high_hat.cc +PLUGIN_FILES += SanguineMutants/eurorack/peaks/drums/snare_drum.cc +PLUGIN_FILES += SanguineMutants/eurorack/peaks/modulations/lfo.cc +PLUGIN_FILES += SanguineMutants/eurorack/peaks/modulations/multistage_envelope.cc +PLUGIN_FILES += SanguineMutants/eurorack/peaks/pulse_processor/pulse_shaper.cc +PLUGIN_FILES += SanguineMutants/eurorack/peaks/pulse_processor/pulse_randomizer.cc +PLUGIN_FILES += SanguineMutants/eurorack/peaks/number_station/number_station.cc + +PLUGIN_FILES += SanguineMutants/eurorack/tides2/poly_slope_generator.cc +PLUGIN_FILES += SanguineMutants/eurorack/tides2/ramp/ramp_extractor.cc +PLUGIN_FILES += SanguineMutants/eurorack/tides2/resources.cc + +PLUGIN_FILES += SanguineMutants/eurorack/braids/macro_oscillator.cc +PLUGIN_FILES += SanguineMutants/eurorack/braids/analog_oscillator.cc +PLUGIN_FILES += SanguineMutants/eurorack/braids/digital_oscillator.cc +PLUGIN_FILES += SanguineMutants/eurorack/braids/resources.cc +PLUGIN_FILES += SanguineMutants/eurorack/braids/quantizer.cc + +PLUGIN_FILES += SanguineMutants/alt_firmware/renaissance/renaissance_macro_oscillator.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/renaissance/renaissance_digital_oscillator.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/renaissance/renaissance_analog_oscillator.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/renaissance/renaissance_resources.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/renaissance/renaissance_quantizer.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/renaissance/renaissance_stack.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/renaissance/renaissance_harmonics.cc + +PLUGIN_FILES += SanguineMutants/alt_firmware/renaissance/vocalist/vocalist.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/renaissance/vocalist/sam.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/renaissance/vocalist/wordlist.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/renaissance/vocalist/rendertabs.cc + +PLUGIN_FILES += SanguineMutants/eurorack/clouds/dsp/correlator.cc +PLUGIN_FILES += SanguineMutants/eurorack/clouds/dsp/granular_processor.cc +PLUGIN_FILES += SanguineMutants/eurorack/clouds/dsp/mu_law.cc +PLUGIN_FILES += SanguineMutants/eurorack/clouds/dsp/pvoc/frame_transformation.cc +PLUGIN_FILES += SanguineMutants/eurorack/clouds/dsp/pvoc/phase_vocoder.cc +PLUGIN_FILES += SanguineMutants/eurorack/clouds/dsp/pvoc/stft.cc +PLUGIN_FILES += SanguineMutants/eurorack/clouds/resources.cc + +PLUGIN_FILES += SanguineMutants/alt_firmware/clouds_parasite/dsp/etesia_granular_processor.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/clouds_parasite/etesia_resources.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/clouds_parasite/dsp/etesia_correlator.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/clouds_parasite/dsp/etesia_mu_law.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/clouds_parasite/dsp/pvoc/etesia_frame_transformation.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/clouds_parasite/dsp/pvoc/etesia_phase_vocoder.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/clouds_parasite/dsp/pvoc/etesia_stft.cc + +PLUGIN_FILES += SanguineMutants/alt_firmware/deadman/deadman_processors.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/deadman/deadman_resources.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/deadman/drums/deadman_bass_drum.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/deadman/drums/deadman_fm_drum.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/deadman/drums/deadman_high_hat.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/deadman/drums/deadman_snare_drum.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/deadman/modulations/deadman_lfo.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/deadman/modulations/deadman_multistage_envelope.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/deadman/pulse_processor/deadman_pulse_shaper.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/deadman/pulse_processor/deadman_pulse_randomizer.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/deadman/number_station/deadman_number_station.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/deadman/number_station/deadman_bytebeats.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/deadman/drums/deadman_cymbal.cc + +PLUGIN_FILES += SanguineMutants/alt_firmware/fluctus/dsp/fluctus_granular_processor.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/fluctus/fluctus_resources.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/fluctus/dsp/fluctus_correlator.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/fluctus/dsp/fluctus_mu_law.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/fluctus/dsp/pvoc/fluctus_spectral_clouds_transformation.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/fluctus/dsp/pvoc/fluctus_phase_vocoder.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/fluctus/dsp/pvoc/fluctus_stft.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/fluctus/dsp/fluctus_kammerl_player.cc + +PLUGIN_FILES += SanguineMutants/eurorack/warps/dsp/modulator.cc +PLUGIN_FILES += SanguineMutants/eurorack/warps/dsp/oscillator.cc +PLUGIN_FILES += SanguineMutants/eurorack/warps/dsp/vocoder.cc +PLUGIN_FILES += SanguineMutants/eurorack/warps/dsp/filter_bank.cc +PLUGIN_FILES += SanguineMutants/eurorack/warps/resources.cc + +PLUGIN_FILES += SanguineMutants/alt_firmware/distortiones/dsp/distortiones_modulator.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/distortiones/dsp/distortiones_oscillator.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/distortiones/dsp/distortiones_vocoder.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/distortiones/dsp/distortiones_filter_bank.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/distortiones/distortiones_resources.cc + +PLUGIN_FILES += SanguineMutants/alt_firmware/mutuus/dsp/mutuus_modulator.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/mutuus/dsp/mutuus_oscillator.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/mutuus/dsp/mutuus_vocoder.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/mutuus/dsp/mutuus_filter_bank.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/mutuus/mutuus_resources.cc + +PLUGIN_FILES += SanguineMutants/eurorack/marbles/random/t_generator.cc +PLUGIN_FILES += SanguineMutants/eurorack/marbles/random/x_y_generator.cc +PLUGIN_FILES += SanguineMutants/eurorack/marbles/random/output_channel.cc +PLUGIN_FILES += SanguineMutants/eurorack/marbles/random/lag_processor.cc +PLUGIN_FILES += SanguineMutants/eurorack/marbles/random/quantizer.cc +PLUGIN_FILES += SanguineMutants/eurorack/marbles/ramp/ramp_extractor.cc +PLUGIN_FILES += SanguineMutants/eurorack/marbles/resources.cc + +PLUGIN_FILES += SanguineMutants/eurorack/rings/dsp/fm_voice.cc +PLUGIN_FILES += SanguineMutants/eurorack/rings/dsp/part.cc +PLUGIN_FILES += SanguineMutants/eurorack/rings/dsp/string_synth_part.cc +PLUGIN_FILES += SanguineMutants/eurorack/rings/dsp/string.cc +PLUGIN_FILES += SanguineMutants/eurorack/rings/dsp/resonator.cc +PLUGIN_FILES += SanguineMutants/eurorack/rings/resources.cc + +PLUGIN_FILES += SanguineMutants/eurorack/tides/generator.cc +PLUGIN_FILES += SanguineMutants/eurorack/tides/resources.cc + +PLUGIN_FILES += SanguineMutants/alt_firmware/bumps/bumps_generator.cc +PLUGIN_FILES += SanguineMutants/alt_firmware/bumps/bumps_resources.cc + +SANGUINEMUTANTS_CUSTOM = clouds stmlib plaits braids marbles tides tides2 rings warps Clouds Plaits Braids Marbles Tides Rings Tides2 Warps + # -------------------------------------------------------------- # Sapphire @@ -2732,6 +2871,17 @@ $(BUILD_DIR)/repelzen/%.cpp.o: repelzen/%.cpp $(foreach m,$(REPELZEN_CUSTOM),$(call custom_module_names,$(m),repelzen)) \ -DpluginInstance=pluginInstance__repelzen +$(BUILD_DIR)/SanguineMutants/%.o: SanguineMutants/% + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(SANGUINEMUTANTS_CUSTOM),$(call custom_module_names,$(m),SanguineMutants)) \ + -DpluginInstance=pluginInstance__SanguineMutants \ + -DNOASM \ + -ISanguineMutants/eurorack \ + -ISanguineMutants/alt_firmware \ + -Wno-unused-local-typedefs + $(BUILD_DIR)/Sapphire/%.cpp.o: Sapphire/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/SanguineMutants b/plugins/SanguineMutants new file mode 160000 index 00000000..dbab4a45 --- /dev/null +++ b/plugins/SanguineMutants @@ -0,0 +1 @@ +Subproject commit dbab4a4581e11be92e31ca7e107dcb40be9d8a21 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 01905d16..5ae61904 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -822,6 +822,10 @@ void addThemeMenuItems(Menu*, ModuleTheme*) {} #undef modelWerner #undef tanh_pade +// Sanguine Mutants +#include "SanguineMutants/src/plugin.hpp" +#include "SanguineMutants/src/themes.hpp" + // Sapphire #include "Sapphire/src/plugin.hpp" @@ -971,6 +975,7 @@ Plugin* pluginInstance__rackwindows; Plugin* pluginInstance__RCM; Plugin* pluginInstance__RebelTech; Plugin* pluginInstance__repelzen; +Plugin* pluginInstance__SanguineMutants; Plugin* pluginInstance__sapphire; Plugin* pluginInstance__sonusmodular; Plugin* pluginInstance__StarlingVia; @@ -3098,6 +3103,39 @@ static void initStatic__repelzen() } } +static void initStatic__SanguineMutants() +{ + Plugin* const p = new Plugin; + pluginInstance__SanguineMutants = p; + + const StaticPluginLoader spl(p, "SanguineMutants"); + if (spl.ok()) + { + p->addModel(modelFunes); + p->addModel(modelMutantsBlank); + p->addModel(modelApices); + p->addModel(modelAleae); + p->addModel(modelNodi); + p->addModel(modelContextus); + p->addModel(modelNebulae); + p->addModel(modelEtesia); + p->addModel(modelMortuus); + p->addModel(modelFluctus); + p->addModel(modelIncurvationes); + p->addModel(modelDistortiones); + p->addModel(modelMutuus); + p->addModel(modelExplorator); + p->addModel(modelMarmora); + p->addModel(modelAnuli); + p->addModel(modelVelamina); + p->addModel(modelAestus); + p->addModel(modelTemulenti); + p->addModel(modelVimina); + + getDefaultTheme(); + } +} + static void initStatic__Sapphire() { Plugin* const p = new Plugin; @@ -3537,6 +3575,7 @@ void initStaticPlugins() initStatic__RCM(); initStatic__RebelTech(); initStatic__repelzen(); + initStatic__SanguineMutants(); initStatic__Sapphire(); initStatic__sonusmodular(); initStatic__StarlingVia();