1
Fork 0

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

This commit is contained in:
falkTX 2021-11-09 18:09:40 +00:00
parent 5465b44705
commit f5920faaa3
14 changed files with 93 additions and 20 deletions

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: |

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

View File

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

View File

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

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
src/CardinalFX/Makefile Normal file
View File

@ -0,0 +1,8 @@
#!/usr/bin/make -f
# Makefile for DISTRHO Plugins #
# ---------------------------- #
# Created by falkTX
#
NAME = CardinalFX
include ../Makefile.cardinal.mk

1
src/CardinalFX/MenuBar.cpp Symbolic link
View File

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

View File

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

View File

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

1
src/CardinalFX/Window.cpp Symbolic link
View File

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

1
src/CardinalFX/common.cpp Symbolic link
View File

@ -0,0 +1 @@
../override/common.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)
{

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

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