I want to develop a MIDI effect with JUCE and CMake, but I get an error when I add IS_MIDI_EFFECT TRUE
:
This is where it's defined:
juce_add_plugin(AudioPluginExample
COPY_PLUGIN_AFTER_BUILD TRUE
VST3_COPY_DIR C:/VST3
COMPANY_NAME Pau
PLUGIN_MANUFACTURER_CODE Juce
IS_MIDI_EFFECT TRUE
PLUGIN_CODE Mute
FORMATS VST3
PRODUCT_NAME "Mute")
This is PluginProcessor.cpp :
#include "PluginProcessor.h"
#include "PluginEditor.h"
AudioPluginAudioProcessor::AudioPluginAudioProcessor() :
AudioProcessor(BusesProperties()){}
AudioPluginAudioProcessor::~AudioPluginAudioProcessor(){}
const juce::String AudioPluginAudioProcessor::getName() const{
return "Name";
}
bool AudioPluginAudioProcessor::acceptsMidi() const
{
return true;
}
bool AudioPluginAudioProcessor::producesMidi() const
{
return true;
}
bool AudioPluginAudioProcessor::isMidiEffect() const
{
return true;
}
double AudioPluginAudioProcessor::getTailLengthSeconds() const
{
return 0.0;
}
int AudioPluginAudioProcessor::getNumPrograms()
{
return 1;
}
int AudioPluginAudioProcessor::getCurrentProgram()
{
return 0;
}
void AudioPluginAudioProcessor::setCurrentProgram(int index)
{
juce::ignoreUnused(index);
}
const juce::String AudioPluginAudioProcessor::getProgramName(int index)
{
juce::ignoreUnused(index);
return {};
}
void AudioPluginAudioProcessor::changeProgramName(int index, const juce::String &newName)
{
juce::ignoreUnused(index, newName);
}
void AudioPluginAudioProcessor::prepareToPlay(double sampleRate, int samplesPerBlock)
{
juce::ignoreUnused(sampleRate, samplesPerBlock);
}
void AudioPluginAudioProcessor::releaseResources(){}
bool AudioPluginAudioProcessor::isBusesLayoutSupported(const BusesLayout &layouts) const
{
juce::ignoreUnused(layouts);
}
void AudioPluginAudioProcessor::processBlock(juce::AudioBuffer<float> &buffer, juce::MidiBuffer &midiMessages)
{
buffer.clear();
midiMessages.clear();
}
bool AudioPluginAudioProcessor::hasEditor() const
{
return true; // (change this to false if you choose to not supply an editor)
}
juce::AudioProcessorEditor *AudioPluginAudioProcessor::createEditor()
{
return new AudioPluginAudioProcessorEditor(*this);
}
void AudioPluginAudioProcessor::getStateInformation(juce::MemoryBlock &destData)
{
juce::ignoreUnused(destData);
}
void AudioPluginAudioProcessor::setStateInformation(const void *data, int sizeInBytes)
{
juce::ignoreUnused(data, sizeInBytes);
}
juce::AudioProcessor *JUCE_CALLTYPE createPluginFilter()
{
return new AudioPluginAudioProcessor();
}
The build works fine, but when I load the VST, I get an error: