Browse Source

merge main

pull/173/head
dreamer 4 years ago
parent
commit
c886aad2e5
22 changed files with 424 additions and 27 deletions
  1. +18
    -0
      .gitmodules
  2. +6
    -0
      README.md
  3. +2
    -2
      deps/Makefile
  4. +14
    -1
      docs/LICENSES.md
  5. +3
    -1
      include/mingw-compat/Shlobj.h
  6. +3
    -1
      include/mingw-compat/Shlwapi.h
  7. +25
    -0
      include/mingw-compat/future
  8. +1
    -0
      plugins/CatroModulo
  9. +1
    -0
      plugins/Dintree
  10. +1
    -1
      plugins/ExpertSleepers-Encoders
  11. +1
    -1
      plugins/GrandeModular
  12. +1
    -1
      plugins/JW-Modules
  13. +1
    -0
      plugins/LilacLoop
  14. +88
    -4
      plugins/Makefile
  15. +1
    -1
      plugins/MindMeldModular
  16. +1
    -0
      plugins/PathSet
  17. +1
    -0
      plugins/kocmoc
  18. +138
    -0
      plugins/plugins.cpp
  19. +1
    -0
      plugins/stocaudio
  20. +2
    -3
      src/Makefile
  21. +2
    -3
      src/Makefile.cardinal.mk
  22. +113
    -8
      src/custom/dep.cpp

+ 18
- 0
.gitmodules View File

@@ -154,6 +154,24 @@
[submodule "plugins/Orbits"]
path = plugins/Orbits
url = git@github.com:RareBreeds/Orbits.git
[submodule "plugins/stocaudio"]
path = plugins/stocaudio
url = https://github.com/aptrn/stocaudio-modules.git
[submodule "plugins/CatroModulo"]
path = plugins/CatroModulo
url = https://github.com/catronomix/catro-modulo.git
[submodule "plugins/LilacLoop"]
path = plugins/LilacLoop
url = https://github.com/grough/lilac-loop-vcv.git
[submodule "plugins/kocmoc"]
path = plugins/kocmoc
url = https://github.com/janne808/kocmoc-rack-modules.git
[submodule "plugins/PathSet"]
path = plugins/PathSet
url = https://github.com/patheros/PathSetModules.git
[submodule "plugins/Dintree"]
path = plugins/Dintree
url = https://github.com/hires/Dintree-Virtual.git
[submodule "plugins/StarlingVia"]
path = plugins/StarlingVia
url = https://github.com/starlingcode/Via-for-Rack.git

+ 6
- 0
README.md View File

@@ -114,8 +114,10 @@ At the moment the following 3rd-party modules are provided:
- Befaco
- Bidoo
- Bogaudio
- Catro/Modulo
- cf
- ChowDSP
- Dintree Virtual
- DrumKit
- E-Series
- ExpertSleepers Encoders
@@ -129,7 +131,9 @@ At the moment the following 3rd-party modules are provided:
- ihtsyn
- Impromptu
- JW-Modules
- kocmoc
- LifeFormModular
- Lilac Loop
- Little Utils
- Lomas Modules
- Lyrae Modules
@@ -139,11 +143,13 @@ At the moment the following 3rd-party modules are provided:
- Mog
- mscHack
- Orbits
- Path Set
- Prism
- rackwindows
- repelzen
- Sonus Modular
- Starling Via
- stocaudio
- Substation Opensource
- Valley
- ZetaCarinae


+ 2
- 2
deps/Makefile View File

@@ -54,8 +54,8 @@ BASE_FLAGS += -I../include/mingw-compat
BASE_FLAGS += -I../include/mingw-std-threads
endif

BUILD_C_FLAGS += -fno-finite-math-only
BUILD_CXX_FLAGS += -fno-finite-math-only
BUILD_C_FLAGS += -fno-finite-math-only -fno-strict-aliasing
BUILD_CXX_FLAGS += -fno-finite-math-only -fno-strict-aliasing

# Rack code is not tested for this flag, unset it
BUILD_CXX_FLAGS += -U_GLIBCXX_ASSERTIONS -Wp,-U_GLIBCXX_ASSERTIONS


+ 14
- 1
docs/LICENSES.md View File

@@ -4,7 +4,7 @@

While Cardinal itself is licensed under GPLv3+, some modules/plugins used by it are not.
And since Cardinal builds the entire Rack and modules as a static library,
the more restrictive of the **code licenses** will apply to the final binary.
the more restrictive of the **code licenses** will apply to the final binary.

Bellow follows a list of all code licenses used in Cardinal and linked submodules.

@@ -25,8 +25,10 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule
| Befaco | GPL-3.0-or-later | |
| Bidoo | GPL-3.0-or-later | |
| Bogaudio | GPL-3.0-or-later | |
| Catro/Modulo | BSD-3-Clause | |
| cf | BSD-3-Clause | |
| ChowDSP | GPL-3.0-or-later | |
| Dintree | GPL-3.0-or-later | |
| DrumKit | CC0-1.0 | |
| E-Series | GPL-3.0-or-later | |
| ExpertSleepers Encoders | MIT | |
@@ -40,7 +42,9 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule
| ihtsyn | GPL-3.0-or-later | |
| Impromptu | GPL-3.0-or-later | |
| JW-Modules | BSD-3-Clause | |
| kocmoc | GPL-3.0-or-later | |
| LifeFormModular | MIT | |
| Lilac Loop | GPL-3.0-or-later | |
| Little Utils | EUPL-1.2 | |
| Lomas Modules | GPL-3.0-or-later | |
| Lyrae Modules | GPL-3.0-or-later | |
@@ -50,11 +54,13 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule
| Mog | CC0-1.0 | |
| mscHack | BSD-3-Clause | |
| Orbits | GPL-3.0-or-later | |
| Path Set | GPL-3.0-or-later | |
| Prism | BSD-3-Clause | |
| Rackwindows | MIT | |
| repelzen | GPL-3.0-or-later | |
| Sonus Modular | GPL-3.0-or-later | |
| Starling Via | MIT | |
| stocaudio | GPL-3.0-or-later | |
| Substation Opensource | BSD-3-Clause-Attribution | Need to check full compatibility with GPLv3+ |
| Valley | GPL-3.0-or-later | |
| ZetaCarinae | GPL-3.0-or-later | |
@@ -105,12 +111,15 @@ Below is a list of artwork licenses from plugins
| BogaudioModules/fonts/inconsolata*.ttf | OFL-1.1-no-RFN | |
| Cardinal/* | CC0-1.0 | |
| Cardinal/Miku/Miku.png | CC-BY-NC-3.0 | https://piapro.net/intl/en_for_creators.html |
| CatroModulo/* | BSD-3-Clause | No artwork specific license provided |
| CatroModulo/Segment7Standard.ttf | OFL-1.1-RFN | |
| cf/* | BSD-3-Clause | No artwork specific license provided |
| cf/DejaVuSansMono.ttf | Bitstream-Vera | |
| cf/Segment7Standard.ttf | OFL-1.1-RFN | |
| cf/VT323-Regular.ttf | OFL-1.1-no-RFN | |
| ChowDSP/* | GPL-3.0-or-later | Same license as source code |
| ChowDSP/fonts/RobotoCondensed-*.ttf | Apache-2.0 | |
| Dintree/* | GPL-3.0-or-later | No artwork specific license provided |
| DrumKit/* | CC0-1.0 | |
| DrumKit/component/NovaMono.ttf | OFL-1.1-RFN | |
| E-Series/* | Custom | Copyright © Synthesis Technology, [used and distributed with permission](LICENSE-PERMISSIONS.md#eseries-paul-schreiber--synthtech) |
@@ -129,7 +138,9 @@ Below is a list of artwork licenses from plugins
| ImpromptuModular/res/comp/complib/* | CC-BY-NC-4.0 | |
| JW-Modules/* | BSD-3-Clause | No artwork specific license provided |
| JW-Modules/DejaVuSansMono.ttf | Bitstream-Vera | Unused in Cardinal |
| kocmoc/* | GPL-3.0-or-later | No artwork specific license provided |
| LifeFormModular/* | MIT | No artwork specific license provided |
| LilacLoop/* | GPL-3.0-or-later | No artwork specific license provided |
| LittleUtils/* | EUPL-1.2 | Same license as source code |
| LittleUtils/fonts/CooperHewitt-*.ttf | OFL-1.1-RFN | |
| LittleUtils/fonts/Overpass-*.ttf | OFL-1.1-RFN | |
@@ -149,12 +160,14 @@ Below is a list of artwork licenses from plugins
| mscHack/* | BSD-3-Clause | No artwork specific license provided, see [mschack#108](https://github.com/mschack/VCV-Rack-Plugins/issues/108) |
| Orbits/* | CC-BY-NC-ND-4.0 | |
| Orbits/fonts/ShareTechMono-Regular.ttf | OFL-1.1-RFN | |
| PathSet/* | GPL-3.0-or-later | No artwork specific license provided |
| Prism/* | CC-BY-SA-4.0 | |
| Prism/RobotoCondensed-Regular.ttf | Apache-2.0 | |
| Rackwindows/* | MIT | [Same license as source code](https://github.com/n0jo/rackwindows/issues/15) |
| repelzen/* | CC-BY-SA-4.0 | |
| sonusmodular/* | GPL-3.0-or-later | [Same license as source code](https://gitlab.com/sonusdept/sonusmodular/-/issues/14) |
| StarlingVia/* | MIT | No artwork specific license provided |
| stocaudio/* | GPL-3.0-or-later | No artwork specific license provided |
| substation-opensource/* | BSD-3-Clause-Attribution | No artwork specific license provided |
| ValleyAudio/* | GPL-3.0-or-later | [Same license as source code](https://github.com/ValleyAudio/ValleyRackFree/issues/73) |
| ValleyAudio/din1451alt.ttf | CC-BY-3.0-DE | |


+ 3
- 1
include/mingw-compat/Shlobj.h View File

@@ -1,6 +1,6 @@
/*
* DISTRHO Cardinal Plugin
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
* 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
@@ -15,4 +15,6 @@
* For a full copy of the GNU General Public License see the LICENSE file.
*/

#pragma once

#include <shlobj.h>

+ 3
- 1
include/mingw-compat/Shlwapi.h View File

@@ -1,6 +1,6 @@
/*
* DISTRHO Cardinal Plugin
* Copyright (C) 2021 Filipe Coelho <falktx@falktx.com>
* 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
@@ -15,4 +15,6 @@
* For a full copy of the GNU General Public License see the LICENSE file.
*/

#pragma once

#include <shlwapi.h>

+ 25
- 0
include/mingw-compat/future View File

@@ -0,0 +1,25 @@
/*
* 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.
*/

#pragma once
#include_next <future>
#include "mingw.future.h"

#undef IN
#undef OUT
#undef far
#undef near

+ 1
- 0
plugins/CatroModulo

@@ -0,0 +1 @@
Subproject commit bf6f969c5f7fff6a419a54197fb4318671281ad5

+ 1
- 0
plugins/Dintree

@@ -0,0 +1 @@
Subproject commit 8d28da2a6083eb6af4b8d559e001fc9afbe2d41f

+ 1
- 1
plugins/ExpertSleepers-Encoders

@@ -1 +1 @@
Subproject commit df096a635fe8d3ea86a1e6451a55e45ccee5b83d
Subproject commit 95496e8a955407889bbab94cf404cf356802bb76

+ 1
- 1
plugins/GrandeModular

@@ -1 +1 @@
Subproject commit 40a197698496030a30ead69658b1484eca2ae299
Subproject commit 33f445d1e3f78aa1f62c8995010303bdb42e0163

+ 1
- 1
plugins/JW-Modules

@@ -1 +1 @@
Subproject commit 68f04a5a8a1a656e7a3aa7e217524f0feb91167e
Subproject commit f7399c473735c0a5bec95bb40953e781f9a47ca4

+ 1
- 0
plugins/LilacLoop

@@ -0,0 +1 @@
Subproject commit 69d8d66521175cd561d53e65728d460b398950c9

+ 88
- 4
plugins/Makefile View File

@@ -429,11 +429,26 @@ PLUGIN_FILES += $(filter-out ChowDSP/src/Credit.cpp,$(wildcard ChowDSP/src/*/*.c
PLUGIN_FILES += $(wildcard ChowDSP/src/*/*/*.cpp)
PLUGIN_FILES += $(wildcard ChowDSP/lib/r8lib/*.cpp)

# --------------------------------------------------------------
# CatroModulo

PLUGIN_FILES += $(wildcard CatroModulo/src/*.cpp)

# modules/types which are present in other plugins
CATROMODULO_CUSTOM = LowFrequencyOscillator NumDisplayWidget

# --------------------------------------------------------------
# cf

PLUGIN_FILES += $(filter-out cf/src/plugin.cpp,$(wildcard cf/src/*.cpp))

# --------------------------------------------------------------
# Dintree

PLUGIN_FILES += $(wildcard Dintree/src/*.cpp)
PLUGIN_FILES += $(wildcard Dintree/src/components/*.cpp)
PLUGIN_FILES += $(wildcard Dintree/src/utils/*.cpp)

# --------------------------------------------------------------
# DrumKit

@@ -444,6 +459,7 @@ PLUGIN_FILES += $(wildcard DrumKit/src/model/*.cpp)
PLUGIN_FILES += $(wildcard DrumKit/deps/*.cpp)
PLUGIN_FILES += $(wildcard DrumKit/deps/SynthDevKit/src/*.cpp)

# modules/types which are present in other plugins
DRUMKIT_CUSTOM = ADSR Envelope LowFrequencyOscillator

# --------------------------------------------------------------
@@ -466,6 +482,7 @@ PLUGIN_FILES += $(filter-out Extratone/src/plugin.cpp,$(wildcard Extratone/src/*

PLUGIN_FILES += $(filter-out FehlerFabrik/src/plugin.cpp,$(wildcard FehlerFabrik/src/*.cpp))

# modules/types which are present in other plugins
FEHLERFABRIK_CUSTOM = Operator Sequencer SlewLimiter

# --------------------------------------------------------------
@@ -559,6 +576,14 @@ endif
# modules/types which are present in other plugins
JW_CUSTOM = PlayHead Quantizer

# --------------------------------------------------------------
# kocmoc

PLUGIN_FILES += $(wildcard kocmoc/src/*.cpp)

# modules/types which are present in other plugins
KOCMOC_CUSTOM = Phasor __ct_base __ct_comp

# --------------------------------------------------------------
# LifeFormModular

@@ -567,6 +592,14 @@ PLUGIN_FILES += $(filter-out LifeFormModular/src/plugin.cpp,$(wildcard LifeFormM
# modules/types which are present in other plugins
LIFEFORMMODULAR_CUSTOM = IO MS __ct_base __ct_comp

# --------------------------------------------------------------
# Lilac Loop

PLUGIN_FILES += $(wildcard LilacLoop/src/*.cpp)

# modules/types which are present in other plugins
LILACLOOP_CUSTOM = AudioFile Mode

# --------------------------------------------------------------
# LittleUtils

@@ -611,7 +644,7 @@ PLUGIN_FILES += $(filter-out ML_modules/src/plugin.cpp,$(wildcard ML_modules/src
PLUGIN_FILES += ML_modules/freeverb/revmodel.cpp

# modules/types which are present in other plugins
ML_CUSTOM = Quant Quantizer QuantizerWidget SH8 allpass comb revmodel
ML_CUSTOM = Mode Quant Quantizer QuantizerWidget SH8 allpass comb revmodel

# --------------------------------------------------------------
# MockbaModular
@@ -640,6 +673,11 @@ MSCHACK_CUSTOM_PER_FILE = MAIN_SYNC_CLOCK FILTER_STRUCT FILTER_PARAM_STRUCT OSC_

PLUGIN_FILES += $(wildcard Orbits/src/*.cpp)

# --------------------------------------------------------------
# Path Set

PLUGIN_FILES += $(wildcard PathSet/src/*.cpp)

# --------------------------------------------------------------
# Prism

@@ -678,6 +716,10 @@ PLUGIN_FILES += $(wildcard StarlingVia/Via/modules/*/*.cpp)
# modules/types which are present in other plugins
STARLINGVIA_CUSTOM = Scanner

# --------------------------------------------------------------
# stocaudio
PLUGIN_FILES += $(wildcard stocaudio/src/*.cpp)

# --------------------------------------------------------------
# Substation (Open source release)

@@ -795,7 +837,6 @@ BASE_FLAGS += -DARCH_LIN
endif

BASE_FLAGS += -DBUILDING_PLUGIN_MODULES
BASE_FLAGS += -fno-strict-aliasing
BASE_FLAGS += -I../dpf/dgl/src/nanovg
BASE_FLAGS += -I../dpf/distrho

@@ -865,8 +906,8 @@ BASE_FLAGS += -DHAVE_SNDFILE
endif

BUILD_C_FLAGS += -std=gnu11
BUILD_C_FLAGS += -fno-finite-math-only
BUILD_CXX_FLAGS += -fno-finite-math-only
BUILD_C_FLAGS += -fno-finite-math-only -fno-strict-aliasing
BUILD_CXX_FLAGS += -fno-finite-math-only -fno-strict-aliasing

# Rack code is not tested for this flag, unset it
BUILD_CXX_FLAGS += -U_GLIBCXX_ASSERTIONS -Wp,-U_GLIBCXX_ASSERTIONS
@@ -1220,6 +1261,13 @@ $(BUILD_DIR)/BogaudioModules/%.cpp.o: BogaudioModules/%.cpp
-IBogaudioModules/lib \
-IBogaudioModules/src/dsp

$(BUILD_DIR)/CatroModulo/src/%.cpp.o: CatroModulo/src/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(CATROMODULO_CUSTOM),$(call custom_module_names,$(m),CatroModulo)) \
-DpluginInstance=pluginInstance__CatroModulo

$(BUILD_DIR)/cf/src/%.cpp.o: cf/src/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
@@ -1240,6 +1288,13 @@ $(BUILD_DIR)/ChowDSP/%.cpp.o: ChowDSP/%.cpp
-IChowDSP/lib/chowdsp_utils/DSP/WDF \
-Wno-deprecated-copy

$(BUILD_DIR)/Dintree/%.cpp.o: Dintree/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(DINTREE_CUSTOM),$(call custom_module_names,$(m),Dintree)) \
-DpluginInstance=pluginInstance__Dintree

$(BUILD_DIR)/DrumKit/%.cpp.o: DrumKit/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
@@ -1399,6 +1454,13 @@ $(BUILD_DIR)/JW-Modules/%.cpp.o: JW-Modules/%.cpp
-Wno-unused-but-set-variable \
-Wno-unused-result

$(BUILD_DIR)/kocmoc/%.cpp.o: kocmoc/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(KOCMOC_CUSTOM),$(call custom_module_names,$(m),kocmoc)) \
-DpluginInstance=pluginInstance__kocmoc

$(BUILD_DIR)/LifeFormModular/%.cpp.o: LifeFormModular/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
@@ -1406,6 +1468,14 @@ $(BUILD_DIR)/LifeFormModular/%.cpp.o: LifeFormModular/%.cpp
$(foreach m,$(LIFEFORMMODULAR_CUSTOM),$(call custom_module_names,$(m),LifeFormModular)) \
-DpluginInstance=pluginInstance__LifeFormModular

$(BUILD_DIR)/LilacLoop/%.cpp.o: LilacLoop/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(LILACLOOP_CUSTOM),$(call custom_module_names,$(m),LilacLoop)) \
-DpluginInstance=pluginInstance__LilacLoop \
-DSKIP_MINGW_FORMAT

$(BUILD_DIR)/LittleUtils/%.cpp.o: LittleUtils/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
@@ -1483,6 +1553,13 @@ $(BUILD_DIR)/Orbits/%.cpp.o: Orbits/%.cpp
$(foreach m,$(ORBITS_CUSTOM),$(call custom_module_names,$(m),Orbits)) \
-DpluginInstance=pluginInstance__Orbits

$(BUILD_DIR)/PathSet/%.cpp.o: PathSet/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(PATHSET_CUSTOM),$(call custom_module_names,$(m),PathSet)) \
-DpluginInstance=pluginInstance__PathSet

$(BUILD_DIR)/Prism/%.cpp.o: Prism/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
@@ -1528,6 +1605,13 @@ $(BUILD_DIR)/StarlingVia/%.cpp.o: StarlingVia/%.cpp
-IStarlingVia/Via/ui/inc \
-I./dep/starling-dsp

$(BUILD_DIR)/stocaudio/%.cpp.o: stocaudio/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(STOCAUDIO_CUSTOM),$(call custom_module_names,$(m),stocaudio)) \
-DpluginInstance=pluginInstance__stocaudio

$(BUILD_DIR)/substation-%.cpp.o: substation-%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"


+ 1
- 1
plugins/MindMeldModular

@@ -1 +1 @@
Subproject commit 621a29f3f1b521582fd11ca7f17635d19faa340c
Subproject commit 38e72d454ddb1197ec8225224656135abe6b6609

+ 1
- 0
plugins/PathSet

@@ -0,0 +1 @@
Subproject commit d03e8b486deba4740bc7f15ae95a08d823a7d00a

+ 1
- 0
plugins/kocmoc

@@ -0,0 +1 @@
Subproject commit f2a8c19f8aa81769e13d085d69a44de5afaacfaa

+ 138
- 0
plugins/plugins.cpp View File

@@ -267,6 +267,9 @@ extern Model* modelTestVCF;
#undef modelVCF
#undef modelVCO

// CatroModulo
#include "CatroModulo/src/CatroModulo.hpp"

// cf
#include "cf/src/plugin.hpp"

@@ -276,6 +279,9 @@ extern Model* modelTestVCF;
#include "ChowDSP/src/plugin.cpp"
#undef init

// Dintree
#include "Dintree/src/plugin.hpp"

// DrumKit
#include "DrumKit/src/DrumKit.hpp"
void setupSamples();
@@ -407,6 +413,9 @@ extern Model* modelBlankPanel;
#include "JW-Modules/src/JWModules.hpp"
#undef modelQuantizer

// kocmoc
#include "kocmoc/src/plugin.hpp"

// LifeFormModular
/* NOTE too much noise in original include, do this a different way
// #include "LifeFormModular/src/plugin.hpp"
@@ -428,6 +437,13 @@ extern Model* modelDriftgen;
// LittleUtils
#include "LittleUtils/src/plugin.hpp"

// Lilac Loop
/* NOTE too much noise in original include, do this a different way
// #include "LilacLoop/src/plugin.hpp"
*/
extern Model* modelLooperOne;
extern Model* modelLooperTwo;

// LomasModules
#include "LomasModules/src/plugin.hpp"
#undef DR_WAV_IMPLEMENTATION
@@ -549,6 +565,9 @@ extern Model* modelMaude_221;
// Orbits
#include "Orbits/src/plugin.hpp"

// Path Set
# include "PathSet/src/plugin.hpp"

// Prism
# include "Prism/src/plugin.hpp"

@@ -569,11 +588,15 @@ extern Model* modelMaude_221;
// sonusmodular
#include "sonusmodular/src/sonusmodular.hpp"


// Starling Via
#define modelScanner modelStarlingViaScanner
#include "StarlingVia/src/starling.hpp"
#undef modelScanner

// stocaudio
#include "stocaudio/src/plugin.hpp"

// substation
/* NOTE too much noise in original include, do this a different way
// "substation-opensource/src/_plugin.hpp"
@@ -636,8 +659,10 @@ Plugin* pluginInstance__Bacon;
Plugin* pluginInstance__Befaco;
Plugin* pluginInstance__Bidoo;
Plugin* pluginInstance__BogaudioModules;
Plugin* pluginInstance__CatroModulo;
Plugin* pluginInstance__cf;
Plugin* pluginInstance__ChowDSP;
Plugin* pluginInstance__Dintree;
extern Plugin* pluginInstance__DrumKit;
Plugin* pluginInstance__ESeries;
Plugin* pluginInstance__ExpertSleepersEncoders;
@@ -654,7 +679,9 @@ Plugin* pluginInstance__HetrickCV;
extern Plugin* pluginInstance__ImpromptuModular;
Plugin* pluginInstance__ihtsyn;
Plugin* pluginInstance__JW;
Plugin* pluginInstance__kocmoc;
Plugin* pluginInstance__LifeFormModular;
Plugin* pluginInstance__LilacLoop;
Plugin* pluginInstance__LittleUtils;
Plugin* pluginInstance__Lomas;
Plugin* pluginInstance__Lyrae;
@@ -664,11 +691,13 @@ Plugin* pluginInstance__MockbaModular;
Plugin* pluginInstance__Mog;
extern Plugin* pluginInstance__mscHack;
Plugin* pluginInstance__Orbits;
Plugin* pluginInstance__PathSet;
Plugin* pluginInstance__Prism;
Plugin* pluginInstance__rackwindows;
Plugin* pluginInstance__repelzen;
Plugin* pluginInstance__sonusmodular;
Plugin* pluginInstance__StarlingVia;
Plugin* pluginInstance__stocaudio;
Plugin* pluginInstance__substation;
Plugin* pluginInstance__ValleyAudio;
Plugin* pluginInstance__ZetaCarinaeModules;
@@ -1281,6 +1310,27 @@ static void initStatic__BogaudioModules()
}
}

static void initStatic__CatroModulo()
{
Plugin* const p = new Plugin;
pluginInstance__CatroModulo = p;

const StaticPluginLoader spl(p, "CatroModulo");
if (spl.ok())
{
p->addModel(modelCM1Module);
p->addModel(modelCM2Module);
p->addModel(modelCM3Module);
p->addModel(modelCM4Module);
p->addModel(modelCM5Module);
p->addModel(modelCM6Module);
p->addModel(modelCM7Module);
p->addModel(modelCM8Module);
p->addModel(modelCM9Module);
p->addModel(modelCM10Module);
}
}

static void initStatic__cf()
{
Plugin* const p = new Plugin;
@@ -1348,6 +1398,26 @@ static void initStatic__ChowDSP()
}
}

static void initStatic__Dintree()
{
Plugin* const p = new Plugin;
pluginInstance__Dintree = p;

const StaticPluginLoader spl(p, "Dintree");
if (spl.ok())
{
p->addModel(modelV100_Scanner);
p->addModel(modelV101_Dual_Envelope);
p->addModel(modelV102_Output_Mixer);
p->addModel(modelV103_Reverb_Delay);
p->addModel(modelV104_Four_Vs);
p->addModel(modelV105_Quad_CV_Proc);
p->addModel(modelV107_Dual_Slew);
p->addModel(modelV201_Tri_Comparator);
p->addModel(modelV218_SH_Clock_Noise);
}
}

static void initStatic__DrumKit()
{
Plugin* const p = new Plugin;
@@ -1548,11 +1618,13 @@ static void initStatic__GrandeModular()
{
p->addModel(modelClip);
p->addModel(modelLFO3);
p->addModel(modelLogic);
p->addModel(modelMerge8);
p->addModel(modelMergeSplit4);
p->addModel(modelMicrotonalChords);
p->addModel(modelMicrotonalNotes);
p->addModel(modelNoteMT);
p->addModel(modelPeak);
p->addModel(modelPolyMergeResplit);
p->addModel(modelPolySplit);
p->addModel(modelQuant);
@@ -1741,6 +1813,25 @@ static void initStatic__JW()
}
}

static void initStatic__kocmoc()
{
Plugin* const p = new Plugin;
pluginInstance__kocmoc= p;

const StaticPluginLoader spl(p, "kocmoc");
if (spl.ok())
{
p->addModel(modelSVF_1);
p->addModel(modelTRG);
p->addModel(modelLADR);
p->addModel(modelOP);
p->addModel(modelPHASR);
p->addModel(modelMUL);
p->addModel(modelSKF);
p->addModel(modelDDLY);
}
}

static void initStatic__LifeFormModular()
{
Plugin* const p = new Plugin;
@@ -1765,6 +1856,18 @@ static void initStatic__LifeFormModular()
}
}

static void initStatic__LilacLoop()
{
Plugin* const p = new Plugin;
pluginInstance__LilacLoop = p;

const StaticPluginLoader spl(p, "LilacLoop");
if (spl.ok())
{
p->addModel(modelLooperOne);
}
}

static void initStatic__LittleUtils()
{
Plugin* const p = new Plugin;
@@ -2000,6 +2103,20 @@ static void initStatic__Orbits()
}
}

static void initStatic__PathSet()
{
Plugin* const p = new Plugin;
pluginInstance__PathSet = p;

const StaticPluginLoader spl(p, "PathSet");
if (spl.ok())
{
p->addModel(modelShiftyMod);
p->addModel(modelIceTray);
p->addModel(modelAstroVibe);
}
}

static void initStatic__Prism()
{
Plugin* const p = new Plugin;
@@ -2105,6 +2222,7 @@ static void initStatic__sonusmodular()
}
}


static void initStatic__StarlingVia()
{
Plugin* const p = new Plugin;
@@ -2127,6 +2245,20 @@ static void initStatic__StarlingVia()
}
}

static void initStatic__stocaudio()
{
Plugin* const p = new Plugin;
pluginInstance__stocaudio = p;

const StaticPluginLoader spl(p, "stocaudio");
if (spl.ok())
{
p->addModel(modelPolyturing);
p->addModel(modelPolydelay);
p->addModel(modelSpread);
}
}

static void initStatic__substation()
{
Plugin* const p = new Plugin;
@@ -2226,8 +2358,10 @@ void initStaticPlugins()
initStatic__Befaco();
initStatic__Bidoo();
initStatic__BogaudioModules();
initStatic__CatroModulo();
initStatic__cf();
initStatic__ChowDSP();
initStatic__Dintree();
initStatic__DrumKit();
initStatic__ESeries();
initStatic__ExpertSleepersEncoders();
@@ -2244,7 +2378,9 @@ void initStaticPlugins()
initStatic__ImpromptuModular();
initStatic__ihtsyn();
initStatic__JW();
initStatic__kocmoc();
initStatic__LifeFormModular();
initStatic__LilacLoop();
initStatic__LittleUtils();
initStatic__Lomas();
initStatic__Lyrae();
@@ -2254,11 +2390,13 @@ void initStaticPlugins()
initStatic__Mog();
initStatic__mscHack();
initStatic__Orbits();
initStatic__PathSet();
initStatic__Prism();
initStatic__rackwindows();
initStatic__repelzen();
initStatic__sonusmodular();
initStatic__StarlingVia();
initStatic__stocaudio();
initStatic__substation();
initStatic__ValleyAudio();
initStatic__ZetaCarinaeModules();


+ 1
- 0
plugins/stocaudio

@@ -0,0 +1 @@
Subproject commit ed5c85b0d9391c37f4ec4d9de4ef8aa30d94bcd6

+ 2
- 3
src/Makefile View File

@@ -36,7 +36,6 @@ ifeq ($(HAIKU),true)
BASE_FLAGS += -I../include/haiku-compat
endif

BASE_FLAGS += -fno-strict-aliasing
BASE_FLAGS += -DPRIVATE=
BASE_FLAGS += -I../dpf/dgl/src/nanovg
BASE_FLAGS += -I../dpf/distrho
@@ -95,8 +94,8 @@ BASE_FLAGS += -I../include/mingw-std-threads
endif

BUILD_C_FLAGS += -std=gnu11
BUILD_C_FLAGS += -fno-finite-math-only
BUILD_CXX_FLAGS += -fno-finite-math-only
BUILD_C_FLAGS += -fno-finite-math-only -fno-strict-aliasing
BUILD_CXX_FLAGS += -fno-finite-math-only -fno-strict-aliasing

# use our custom function to invert some colors
BUILD_CXX_FLAGS += -DnsvgParseFromFile=nsvgParseFromFileCardinal


+ 2
- 3
src/Makefile.cardinal.mk View File

@@ -129,7 +129,6 @@ else
BASE_FLAGS += -DARCH_LIN
endif

BASE_FLAGS += -fno-strict-aliasing
BASE_FLAGS += -DPRIVATE=
BASE_FLAGS += -I..
BASE_FLAGS += -I../../dpf/dgl/src/nanovg
@@ -170,8 +169,8 @@ BASE_FLAGS += -I../../include/mingw-std-threads
endif

BUILD_C_FLAGS += -std=gnu11
BUILD_C_FLAGS += -fno-finite-math-only
BUILD_CXX_FLAGS += -fno-finite-math-only
BUILD_C_FLAGS += -fno-finite-math-only -fno-strict-aliasing
BUILD_CXX_FLAGS += -fno-finite-math-only -fno-strict-aliasing

# Rack code is not tested for this flag, unset it
BUILD_CXX_FLAGS += -U_GLIBCXX_ASSERTIONS -Wp,-U_GLIBCXX_ASSERTIONS


+ 113
- 8
src/custom/dep.cpp View File

@@ -234,6 +234,8 @@ static const struct {
{ "/JW-Modules/res/Trigs.svg", {}, -1 },
{ "/JW-Modules/res/WavHeadPanel.svg", {}, -1 },
{ "/JW-Modules/res/XYPad.svg", {}, -1 },
// GPL3.0-or-later
{ "/LilacLoop/res/Looper.svg", {}, -1 },
// EUPL-1.2
{ "/LittleUtils/res/Bias_Semitone.svg", {}, -1 },
{ "/LittleUtils/res/ButtonModule.svg", {}, -1 },
@@ -241,16 +243,39 @@ static const struct {
{ "/LittleUtils/res/PulseGenerator.svg", {}, -1 },
{ "/LittleUtils/res/TeleportIn.svg", {}, -1 },
{ "/LittleUtils/res/TeleportOut.svg", {}, -1 },
// GPL-3.0-or-later
{ "/kocmoc/res/DDLY.svg", {}, -1 },
{ "/kocmoc/res/LADR.svg", {}, -1 },
{ "/kocmoc/res/MUL.svg", {}, -1 },
{ "/kocmoc/res/OP.svg", {}, -1 },
{ "/kocmoc/res/PHASR.svg", {}, -1 },
{ "/kocmoc/res/SKF.svg", {}, -1 },
{ "/kocmoc/res/SVF.svg", {}, -1 },
{ "/kocmoc/res/TRG.svg", {}, -1 },
// GPL-3.0-or-later
{ "/PathSet/res/AstroVibe.svg", {}, -1 },
{ "/PathSet/res/IceTray.svg", {}, -1 },
{ "/PathSet/res/ShiftyMod.svg", {}, -1 },
};

static inline bool invertPaint(NSVGpaint& paint, const char* const svgFileToInvert = nullptr)
static inline bool invertPaint(NSVGshape* const shape, NSVGpaint& paint, const char* const svgFileToInvert = nullptr)
{
// Special case for DrumKit background grandient
if (paint.type == NSVG_PAINT_LINEAR_GRADIENT && svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/DrumKit/", 9) == 0)
if (paint.type == NSVG_PAINT_LINEAR_GRADIENT && svgFileToInvert != nullptr)
{
paint.type = NSVG_PAINT_COLOR;
paint.color = 0xff191919;
return true;
// Special case for DrumKit background gradient
if (std::strncmp(svgFileToInvert, "/DrumKit/", 9) == 0)
{
paint.type = NSVG_PAINT_COLOR;
paint.color = 0xff191919;
return true;
}
// Special case for PathSet shifty gradient
if (std::strncmp(svgFileToInvert, "/PathSet/", 9) == 0)
{
paint.gradient->stops[0].color = 0xff7c4919; // 50% darker than main blue
paint.gradient->stops[1].color = 0xff5b3a1a; // 33.3% darker than main blue
return false;
}
}

if (paint.type == NSVG_PAINT_NONE)
@@ -303,6 +328,86 @@ static inline bool invertPaint(NSVGpaint& paint, const char* const svgFileToInve
}
}

// Special case for Lilac
if (svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/LilacLoop/", 11) == 0)
{
switch (paint.color)
{
// main bg (custom)
case 0xffd5d5da:
paint.color = 0xff242228;
return true;
// main color (do nothing)
case 0xffbfb7d7:
return false;
// screws (hide)
case 0xffc8c8cf:
case 0xffbcbcbc:
case 0xffb1b1bb:
case 0xffacacac:
case 0xff898991:
case 0xff727272:
paint.color = 0x00000000;
return true;
}
}

// Special case for PathSet colors
if (svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/PathSet/", 9) == 0)
{
switch (paint.color)
{
// main blue tone
case 0xffdf7a1a:
if (shape->opacity == 0.5f && std::strcmp(svgFileToInvert, "/PathSet/res/AstroVibe.svg") == 0)
{
shape->opacity = 0.2f;
return true;
}
if (shape->opacity == 0.25f)
shape->opacity = 0.75f;
return false;
// bottom logo stuff, set to full white
case 0xff000000:
if (shape->stroke.type != NSVG_PAINT_NONE)
{
paint.color = 0xffffffff;
return true;
}
break;
// pink step 2 (pink with 50% opacity on bg)
case 0xffef73ea:
paint.color = 0xff812d7d;
return true;
// pink step 3 (pink with 33.3% opacity on bg)
case 0xfff49ff0:
paint.color = 0xff4d234c;
return true;
// pink and orange
case 0xffe941e2:
case 0xff698efb:
return false;
// blue darker 1 (blue with 50% opacity on bg)
case 0xffde944f:
case 0xffe3b080:
case 0xffe4cbb3:
case 0xfff5c99f:
case 0xfff6d1b0:
paint.color = 0xff7c4919;
return true;
// blue darker 2 (blue with 33.3% opacity on bg)
case 0xffe5d9cd:
case 0xfff8dcc2:
case 0xffe1a265:
paint.color = 0xff5b3a1a;
return true;
// blue darker 3 (blue with 25% opacity on bg)
case 0xffe5cbb3:
paint.color = 0xff4b321a;
return true;
}
}

switch (paint.color)
{
// scopes or other special things (do nothing)
@@ -384,8 +489,8 @@ NSVGimage* nsvgParseFromFileCardinal(const char* const filename, const char* con
if (ignore)
continue;

if (invertPaint(shape->fill, svgFileToInvert))
invertPaint(shape->stroke, svgFileToInvert);
if (invertPaint(shape, shape->fill, svgFileToInvert))
invertPaint(shape, shape->stroke, svgFileToInvert);
}

return handle;


Loading…
Cancel
Save