Browse Source

Continue work on LV2 export, add a few plugins

Signed-off-by: falkTX <falktx@falktx.com>
tags/22.06
falkTX 2 years ago
parent
commit
d9c9c5d19c
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
9 changed files with 1401 additions and 214 deletions
  1. +21
    -21
      lv2export/Makefile
  2. +1201
    -191
      lv2export/includes/rack.hpp
  3. +27
    -0
      lv2export/lv2plugin.cpp
  4. +60
    -0
      lv2export/plugins/aubileinstruments-macro-osc-2.cpp
  5. +40
    -0
      lv2export/plugins/aubileinstruments-macro-osc.cpp
  6. +25
    -0
      lv2export/plugins/fundamental-quantizer.cpp
  7. +25
    -0
      lv2export/plugins/fundamental-seq3.cpp
  8. +1
    -1
      plugins/AudibleInstruments
  9. +1
    -1
      plugins/Fundamental

+ 21
- 21
lv2export/Makefile View File

@@ -34,16 +34,12 @@ ifeq ($(DEBUG),true)
BASE_FLAGS += -UDEBUG
endif

# BASE_FLAGS += -DHEADLESS
# BASE_FLAGS += -DPRIVATE=
#
# BASE_FLAGS += -fno-finite-math-only
# # BASE_FLAGS += -I../dpf/dgl
# BASE_FLAGS += -I../dpf/dgl/src/nanovg
# BASE_FLAGS += -I../dpf/distrho
# BASE_FLAGS += -I../include
BASE_FLAGS += -DHEADLESS
BASE_FLAGS += -fno-finite-math-only
BASE_FLAGS += -pthread

# might be needed later
# BASE_FLAGS += -I../include/neon-compat
# BASE_FLAGS += -I../src/Rack/include
# ifeq ($(SYSDEPS),true)
# BASE_FLAGS += -DCARDINAL_SYSDEPS
# BASE_FLAGS += $(shell pkg-config --cflags jansson libarchive samplerate speexdsp)
@@ -58,14 +54,13 @@ endif
# # BASE_FLAGS += -IRack/dep/osdialog
# BASE_FLAGS += -I../src/Rack/dep/oui-blendish
# BASE_FLAGS += -I../src/Rack/dep/pffft
# BASE_FLAGS += -pthread
#
# ifeq ($(WINDOWS),true)
# BASE_FLAGS += -D_USE_MATH_DEFINES
# BASE_FLAGS += -DWIN32_LEAN_AND_MEAN
# BASE_FLAGS += -I../include/mingw-compat
# BASE_FLAGS += -I../include/mingw-std-threads
# endif

ifeq ($(WINDOWS),true)
BASE_FLAGS += -D_USE_MATH_DEFINES
BASE_FLAGS += -DWIN32_LEAN_AND_MEAN
BASE_FLAGS += -I../include/mingw-compat
BASE_FLAGS += -I../include/mingw-std-threads
endif

# --------------------------------------------------------------
# lots of warnings from VCV side
@@ -121,10 +116,15 @@ clean:

# --------------------------------------------------------------

# $(BUILD_DIR)/valleyaudio-plateau.cpp.o: plugins/valleyaudio-plateau.cpp
# -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
# @echo "Compiling $<"
# $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DSLUG='"$*"' -c -o $@
$(BUILD_DIR)/aubileinstruments-%.cpp.o: plugins/aubileinstruments-%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -DSLUG='"aubileinstruments-$*"' \
-DTEST \
-I../plugins/AudibleInstruments/eurorack \
-Wno-class-memaccess \
-Wno-unused-local-typedefs \
-c -o $@

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


+ 1201
- 191
lv2export/includes/rack.hpp
File diff suppressed because it is too large
View File


+ 27
- 0
lv2export/lv2plugin.cpp View File

@@ -35,6 +35,9 @@ static constexpr const bool kCvOutputs[] = PLUGIN_CV_OUTPUTS;

#include "DistrhoUtils.hpp"

#include <time.h>
#include <sys/time.h>

namespace rack {

static thread_local Context* threadContext = nullptr;
@@ -51,6 +54,15 @@ void contextSet(Context* context) {
threadContext = context;
}

namespace random {

Xoroshiro128Plus& local() {
static Xoroshiro128Plus rng;
return rng;
}

} // namespace random

}

struct PluginLv2 {
@@ -62,6 +74,21 @@ struct PluginLv2 {

PluginLv2(double sr)
{
rack::random::Xoroshiro128Plus& rng(rack::random::local());

if (! rng.isSeeded())
{
struct timeval tv;
gettimeofday(&tv, NULL);
uint64_t usec = uint64_t(tv.tv_sec) * 1000 * 1000 + tv.tv_usec;

static uint64_t globalCounter = 1;
rng.seed(usec, globalCounter++);

for (int i = 0; i < 4; i++)
rng();
}

context._engine.sampleRate = sr;
contextSet(&context);
module = PLUGIN_MODEL->createModule();


+ 60
- 0
lv2export/plugins/aubileinstruments-macro-osc-2.cpp View File

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

#define PLAITS_ALWAYS_LOW_CPU_MODE
#include "AudibleInstruments/src/Plaits.cpp"
#include "AudibleInstruments/eurorack/stmlib/utils/random.cc"
#include "AudibleInstruments/eurorack/stmlib/dsp/units.cc"

#include "AudibleInstruments/eurorack/plaits/dsp/voice.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/additive_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/bass_drum_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/chord_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/fm_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/grain_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/hi_hat_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/modal_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/noise_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/particle_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/snare_drum_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/speech_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/string_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/swarm_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/virtual_analog_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/waveshaping_engine.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/engine/wavetable_engine.cc"

#include "AudibleInstruments/eurorack/plaits/dsp/physical_modelling/modal_voice.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/physical_modelling/resonator.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/physical_modelling/string.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/physical_modelling/string_voice.cc"

#include "AudibleInstruments/eurorack/plaits/dsp/speech/lpc_speech_synth.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/speech/lpc_speech_synth_controller.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/speech/lpc_speech_synth_phonemes.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/speech/lpc_speech_synth_words.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/speech/naive_speech_synth.cc"
#include "AudibleInstruments/eurorack/plaits/dsp/speech/sam_speech_synth.cc"

#include "AudibleInstruments/eurorack/plaits/resources.cc"

#define PLUGIN_MODEL modelPlaits
#define PLUGIN_CV_INPUTS {1,1,1,1,1,1,1,1}
#define PLUGIN_CV_OUTPUTS {0,0}

#include "lv2plugin.cpp"
#include "export.cpp"

+ 40
- 0
lv2export/plugins/aubileinstruments-macro-osc.cpp View File

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

#define BRAIDS_ALWAYS_LOW_CPU_MODE
#include "AudibleInstruments/src/Braids.cpp"
#include "AudibleInstruments/eurorack/stmlib/utils/random.cc"

#define kHighestNote kHighestNoteAnalog
#define kPitchTableStart kPitchTableStartAnalog
#define kOctave kOctaveAnalog
#include "AudibleInstruments/eurorack/braids/analog_oscillator.cc"
#undef kHighestNote
#undef kPitchTableStart
#undef kOctave

#include "AudibleInstruments/eurorack/braids/digital_oscillator.cc"
#include "AudibleInstruments/eurorack/braids/macro_oscillator.cc"
// #include "AudibleInstruments/eurorack/braids/quantizer.cc"
#include "AudibleInstruments/eurorack/braids/resources.cc"

#define PLUGIN_MODEL modelBraids
#define PLUGIN_CV_INPUTS {1,1,1,1,1}
#define PLUGIN_CV_OUTPUTS {0}

#include "lv2plugin.cpp"
#include "export.cpp"

+ 25
- 0
lv2export/plugins/fundamental-quantizer.cpp 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.
*/

#include "Fundamental/src/Quantizer.cpp"

#define PLUGIN_MODEL modelQuantizer
#define PLUGIN_CV_INPUTS {1}
#define PLUGIN_CV_OUTPUTS {1}

#include "lv2plugin.cpp"
#include "export.cpp"

+ 25
- 0
lv2export/plugins/fundamental-seq3.cpp 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.
*/

#include "Fundamental/src/SEQ3.cpp"

#define PLUGIN_MODEL modelSEQ3
#define PLUGIN_CV_INPUTS {1,1,1,1,1}
#define PLUGIN_CV_OUTPUTS {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}

#include "lv2plugin.cpp"
#include "export.cpp"

+ 1
- 1
plugins/AudibleInstruments

@@ -1 +1 @@
Subproject commit 6833adeb7141a06151c9ee7059cc43d3c854c96d
Subproject commit 2a19bb25c0da725756390ad96dca55632800c74d

+ 1
- 1
plugins/Fundamental

@@ -1 +1 @@
Subproject commit 612b0dba4634c365b98f96da2459ba58124bbcf0
Subproject commit 5ad6f48a006beedda1465208aab8f9296d39c48a

Loading…
Cancel
Save