@@ -23,11 +23,12 @@ Cardinal provides 3 plugin variants - "main", Synth and FX. | |||||
They are all equivalent in performance and behaviour, with only the IO and metadata that changes. | They are all equivalent in performance and behaviour, with only the IO and metadata that changes. | ||||
This is because some hosts are very strict on which plugins are allowed as instruments vs FX, so separate variants of the same plugin are needed. | This is because some hosts are very strict on which plugins are allowed as instruments vs FX, so separate variants of the same plugin are needed. | ||||
All variants have 2 audio outputs and MIDI support. | |||||
FX and Synth variants both have 2 audio outputs, while "main" has 8. | |||||
All variants have MIDI input and output support. | |||||
### Main | ### Main | ||||
This variant provides 2 audio inputs and outputs and 10 CV inputs and outputs. | |||||
This variant provides 8 audio inputs and outputs and 10 CV inputs and outputs. | |||||
NOTE: Due to VST2 format not supporting CV ports, this variant is not available for VST2. | NOTE: Due to VST2 format not supporting CV ports, this variant is not available for VST2. | ||||
@@ -28,7 +28,7 @@ Bellow follows a list of features comparing the official plugin to Cardinal. | |||||
| Supports ARM systems | No | Yes | This means Apple M1 too, yes | | | Supports ARM systems | No | Yes | This means Apple M1 too, yes | | ||||
| Synth plugin variant | 16 ins, 16 outs | 2 ins, 2 outs | | | | Synth plugin variant | 16 ins, 16 outs | 2 ins, 2 outs | | | ||||
| FX plugin variant | 16 ins, 16 outs | 2 ins, 2 outs | | | | FX plugin variant | 16 ins, 16 outs | 2 ins, 2 outs | | | ||||
| Raw-CV plugin variant | Unsupported | 2 audio IO + 10 CV IO | Available in JACK, LV2 and VST3 formats, not possible in VST2 | | |||||
| Raw-CV plugin variant | Unsupported | 8 audio IO + 10 CV IO | Available in JACK, LV2 and VST3 formats, not possible in VST2 | | |||||
| Arbitrary parameter automation | Yes | No | Unsupported in Cardinal, tricky to do for many plugin formats at once | | | Arbitrary parameter automation | Yes | No | Unsupported in Cardinal, tricky to do for many plugin formats at once | | ||||
| Integrated plugin host | No, Host payed separately | Yes, using Carla or Ildaeil | | | | Integrated plugin host | No, Host payed separately | Yes, using Carla or Ildaeil | | | ||||
| Host sync/timing | Using MIDI signals | Using dedicated module | | | | Host sync/timing | Using MIDI signals | Using dedicated module | | | ||||
@@ -30,8 +30,8 @@ | |||||
#define DISTRHO_UI_USE_NANOVG 1 | #define DISTRHO_UI_USE_NANOVG 1 | ||||
#define DISTRHO_UI_USER_RESIZABLE 1 | #define DISTRHO_UI_USER_RESIZABLE 1 | ||||
#endif | #endif | ||||
#define DISTRHO_PLUGIN_NUM_INPUTS 12 | |||||
#define DISTRHO_PLUGIN_NUM_OUTPUTS 12 | |||||
#define DISTRHO_PLUGIN_NUM_INPUTS 18 | |||||
#define DISTRHO_PLUGIN_NUM_OUTPUTS 18 | |||||
#define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1 | #define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1 | ||||
#define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 1 | #define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 1 | ||||
#define DISTRHO_PLUGIN_WANT_FULL_STATE 1 | #define DISTRHO_PLUGIN_WANT_FULL_STATE 1 | ||||
@@ -604,10 +604,10 @@ protected: | |||||
void initAudioPort(const bool input, uint32_t index, AudioPort& port) override | void initAudioPort(const bool input, uint32_t index, AudioPort& port) override | ||||
{ | { | ||||
if (index >= 2) | |||||
if (index >= 8) | |||||
{ | { | ||||
port.hints = kAudioPortIsCV | kCVPortHasPositiveUnipolarRange | kCVPortHasScaledRange; | port.hints = kAudioPortIsCV | kCVPortHasPositiveUnipolarRange | kCVPortHasScaledRange; | ||||
index -= 2; | |||||
index -= 8; | |||||
} | } | ||||
CardinalBasePlugin::initAudioPort(input, index, port); | CardinalBasePlugin::initAudioPort(input, index, port); | ||||