Browse Source

Rename current Cardinal as CardinalFX and add 10cv+audio variant

tags/22.02
falkTX 4 years ago
parent
commit
f5920faaa3
14 changed files with 93 additions and 20 deletions
  1. +2
    -2
      .github/workflows/build.yml
  2. +2
    -2
      src/Cardinal/DistrhoPluginInfo.h
  3. +1
    -0
      src/CardinalFX/CardinalPlugin.cpp
  4. +1
    -0
      src/CardinalFX/CardinalUI.cpp
  5. +43
    -0
      src/CardinalFX/DistrhoPluginInfo.h
  6. +8
    -0
      src/CardinalFX/Makefile
  7. +1
    -0
      src/CardinalFX/MenuBar.cpp
  8. +1
    -0
      src/CardinalFX/RemoteNanoVG.cpp
  9. +1
    -0
      src/CardinalFX/RemoteWindow.cpp
  10. +1
    -0
      src/CardinalFX/Window.cpp
  11. +1
    -0
      src/CardinalFX/common.cpp
  12. +22
    -7
      src/CardinalPlugin.cpp
  13. +5
    -5
      src/Makefile.cardinal.mk
  14. +4
    -4
      src/PluginDriver.hpp

+ 2
- 2
.github/workflows/build.yml View File

@@ -356,14 +356,14 @@ jobs:
done
- name: Test VST2 plugin
run: |
for p in $(ls bin/ | grep vst.so); do \
for p in $(ls bin/ | grep vst); do \
env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \
valgrind \
--error-exitcode=255 \
--leak-check=no \
--track-origins=yes \
--suppressions=./dpf/utils/valgrind-dpf.supp \
/usr/lib/carla/carla-bridge-native vst2 ./bin/${p} "" 1>/dev/null; \
/usr/lib/carla/carla-bridge-native vst2 ./bin/${p}/*.so "" 1>/dev/null; \
done
# - name: Test VST3 plugin
# run: |


+ 2
- 2
src/Cardinal/DistrhoPluginInfo.h View File

@@ -30,8 +30,8 @@
#define DISTRHO_UI_USE_NANOVG 1
#define DISTRHO_UI_USER_RESIZABLE 1
#endif
#define DISTRHO_PLUGIN_NUM_INPUTS 2
#define DISTRHO_PLUGIN_NUM_OUTPUTS 2
#define DISTRHO_PLUGIN_NUM_INPUTS 12
#define DISTRHO_PLUGIN_NUM_OUTPUTS 12
#define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1
#define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 1
#define DISTRHO_PLUGIN_WANT_FULL_STATE 1


+ 1
- 0
src/CardinalFX/CardinalPlugin.cpp View File

@@ -0,0 +1 @@
../CardinalPlugin.cpp

+ 1
- 0
src/CardinalFX/CardinalUI.cpp View File

@@ -0,0 +1 @@
../CardinalUI.cpp

+ 43
- 0
src/CardinalFX/DistrhoPluginInfo.h View File

@@ -0,0 +1,43 @@
/*
* DISTRHO Cardinal Plugin
* Copyright (C) 2021 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.
*/

#ifndef DISTRHO_PLUGIN_INFO_H_INCLUDED
#define DISTRHO_PLUGIN_INFO_H_INCLUDED

#define DISTRHO_PLUGIN_BRAND "DISTRHO"
#define DISTRHO_PLUGIN_NAME "Cardinal"
#define DISTRHO_PLUGIN_URI "https://distrho.kx.studio/plugins/cardinal#fx"

#ifdef HEADLESS
#define DISTRHO_PLUGIN_HAS_UI 0
#else
#define DISTRHO_PLUGIN_HAS_UI 1
#define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 1
#define DISTRHO_UI_USE_NANOVG 1
#define DISTRHO_UI_USER_RESIZABLE 1
#endif
#define DISTRHO_PLUGIN_NUM_INPUTS 2
#define DISTRHO_PLUGIN_NUM_OUTPUTS 2
#define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1
#define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 1
#define DISTRHO_PLUGIN_WANT_FULL_STATE 1
#define DISTRHO_PLUGIN_WANT_STATE 1
#define DISTRHO_PLUGIN_WANT_TIMEPOS 1
// #define DISTRHO_PLUGIN_LV2_CATEGORY "lv2:AnalyserPlugin"
// #define DISTRHO_PLUGIN_VST3_CATEGORIES "Fx|Analyzer"

#endif // DISTRHO_PLUGIN_INFO_H_INCLUDED

+ 8
- 0
src/CardinalFX/Makefile View File

@@ -0,0 +1,8 @@
#!/usr/bin/make -f
# Makefile for DISTRHO Plugins #
# ---------------------------- #
# Created by falkTX
#

NAME = CardinalFX
include ../Makefile.cardinal.mk

+ 1
- 0
src/CardinalFX/MenuBar.cpp View File

@@ -0,0 +1 @@
../override/MenuBar.cpp

+ 1
- 0
src/CardinalFX/RemoteNanoVG.cpp View File

@@ -0,0 +1 @@
../override/RemoteNanoVG.cpp

+ 1
- 0
src/CardinalFX/RemoteWindow.cpp View File

@@ -0,0 +1 @@
../override/RemoteWindow.cpp

+ 1
- 0
src/CardinalFX/Window.cpp View File

@@ -0,0 +1 @@
../override/Window.cpp

+ 1
- 0
src/CardinalFX/common.cpp View File

@@ -0,0 +1 @@
../override/common.cpp

+ 22
- 7
src/CardinalPlugin.cpp View File

@@ -510,6 +510,8 @@ protected:
{
#if DISTRHO_PLUGIN_IS_SYNTH
return "CardinalSynth";
#elif DISTRHO_PLUGIN_NUM_INPUTS == 2
return "CardinalFX";
#else
return "Cardinal";
#endif
@@ -546,6 +548,8 @@ protected:
{
#if DISTRHO_PLUGIN_IS_SYNTH
return d_cconst('d', 'C', 'n', 'S');
#elif DISTRHO_PLUGIN_NUM_INPUTS == 2
return d_cconst('d', 'C', 'n', 'F');
#else
return d_cconst('d', 'C', 'd', 'n');
#endif
@@ -554,6 +558,17 @@ protected:
/* --------------------------------------------------------------------------------------------------------
* Init */
void initAudioPort(const bool input, uint32_t index, AudioPort& port) override
{
if (index >= 2)
{
port.hints = kAudioPortIsCV | kCVPortHasPositiveUnipolarRange | kCVPortHasScaledRange;
index -= 2;
}
CardinalBasePlugin::initAudioPort(input, index, port);
}
void initParameter(const uint32_t index, Parameter& parameter) override
{
if (index < kModuleParameters)
@@ -769,11 +784,11 @@ protected:
void activate() override
{
const uint32_t bufferSize = getBufferSize() * DISTRHO_PLUGIN_NUM_OUTPUTS;
fAudioBufferOut = new float[bufferSize];
const uint32_t bufferSize = getBufferSize();
fAudioBufferOut = new float[bufferSize * DISTRHO_PLUGIN_NUM_OUTPUTS];
#if DISTRHO_PLUGIN_NUM_INPUTS != 0
fAudioBufferIn = new float[bufferSize];
std::memset(fAudioBufferIn, 0, sizeof(float)*bufferSize);
fAudioBufferIn = new float[bufferSize * DISTRHO_PLUGIN_NUM_INPUTS];
std::memset(fAudioBufferIn, 0, sizeof(float)*bufferSize * DISTRHO_PLUGIN_NUM_INPUTS);
#endif
fPreviousFrame = 0;
@@ -856,7 +871,7 @@ protected:
fAudioBufferIn[j++] = inputs[0][i];
fAudioBufferIn[j++] = inputs[1][i];
}
fCurrentAudioDevice->processInput(fAudioBufferIn, DISTRHO_PLUGIN_NUM_INPUTS, frames);
fCurrentAudioDevice->processInput(fAudioBufferIn, 2, frames);
#endif
}
@@ -864,8 +879,8 @@ protected:
if (fCurrentAudioDevice != nullptr)
{
std::memset(fAudioBufferOut, 0, sizeof(float)*frames*DISTRHO_PLUGIN_NUM_OUTPUTS);
fCurrentAudioDevice->processOutput(fAudioBufferOut, DISTRHO_PLUGIN_NUM_OUTPUTS, frames);
std::memset(fAudioBufferOut, 0, sizeof(float)*frames*2);
fCurrentAudioDevice->processOutput(fAudioBufferOut, 2, frames);
for (uint32_t i=0, j=0; i<frames; ++i)
{


+ 5
- 5
src/Makefile.cardinal.mk View File

@@ -226,14 +226,12 @@ endif
BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"'

# --------------------------------------------------------------
# Enable all possible plugin types

all: jack lv2 vst2 vst3 resources

# --------------------------------------------------------------
# Enable all possible plugin types and setup resources

ifeq ($(NAME),Cardinal)

all: jack lv2 resources

CORE_RESOURCES = $(filter-out icon.png,$(subst ../Rack/res/,,$(wildcard ../Rack/res/*))) template.vcv

PLUGIN_RESOURCES += $(CORE_RESOURCES:%=$(TARGET_DIR)/Cardinal.lv2/resources/%)
@@ -246,6 +244,8 @@ PLUGIN_RESOURCES += $(CORE_RESOURCES:%=$(TARGET_DIR)/Cardinal.vst3/Contents/Reso

else

all: jack lv2 vst2 vst3 resources

PLUGIN_RESOURCES += $(TARGET_DIR)/$(NAME).lv2/resources
ifeq ($(MACOS),true)
PLUGIN_RESOURCES += $(TARGET_DIR)/$(NAME).vst/Contents/Resources


+ 4
- 4
src/PluginDriver.hpp View File

@@ -37,12 +37,12 @@ struct CardinalAudioDevice : rack::audio::Device

int getNumInputs() override
{
return DISTRHO_PLUGIN_NUM_INPUTS;
return std::min(2, DISTRHO_PLUGIN_NUM_INPUTS);
}

int getNumOutputs() override
{
return DISTRHO_PLUGIN_NUM_OUTPUTS;
return std::min(2, DISTRHO_PLUGIN_NUM_OUTPUTS);
}

int getBlockSize() override
@@ -109,12 +109,12 @@ struct CardinalAudioDriver : rack::audio::Driver

int getDeviceNumInputs(int) override
{
return DISTRHO_PLUGIN_NUM_INPUTS;
return std::min(2, DISTRHO_PLUGIN_NUM_INPUTS);
}

int getDeviceNumOutputs(int) override
{
return DISTRHO_PLUGIN_NUM_OUTPUTS;
return std::min(2, DISTRHO_PLUGIN_NUM_OUTPUTS);
}

rack::audio::Device* subscribe(int, rack::audio::Port* const port) override


Loading…
Cancel
Save