Update: I have been messing around in pluginvaland have found the following. I have just freshly compiled “Plugin 2” to release, using the same code, to VST3 and to AU. When I validate the VST3, it says All tests passed, but when I try it on the AU it does not pass the first validation step:
....///End of the VST3 test
-----------------------------------------------------------------
Starting test: pluginval / Fuzz parameters...
Time taken to run test: 0
Time taken to run all tests: 12 secs
All tests completed successfully
Finished validating: /Users/dario/Library/Audio/Plug-Ins/VST3/PullUpMachine.vst3
ALL TESTS PASSED
pluginval v0.2.7 - JUCE v5.4.7
Started validating: /Users/dario/Library/Audio/Plug-Ins/Components/PullUpMachine.component
Random seed: 0x57a6979
Validation started: 9 Sep 2023 6:09:12pm
//START OF THE AU TEST
Strictness level: 5
-----------------------------------------------------------------
Starting test: pluginval / Scan for known types: /Users/dario/Library/Audio/Plug-Ins/Components/PullUpMachine.component...
Num types found: 0
!!! Test 1 failed: No types found
FAILED!! 1 test failed, out of a total of 1
Finished validating: /Users/dario/Library/Audio/Plug-Ins/Components/PullUpMachine.component
*** FAILED: 1 TESTS
This is not the same problem that is causing my plugins to crash but it is still very odd. Do
I have to set some specific flag for AU plugins such as Manufacture ID etc (I thought I had already done that).
Plugin 1 passes all tests on pluginval (VST3 and AU) on a strictness of 10, but still causes the Seg Fault in Ableton. I am pretty perplexed
Looking at older posts, specifically this one, it seems they are talking about using smart pointers for objects. So far I have just been using normal objects to hold all my audio processors and gui elements. So for my Attached Slider solution it looks like this:
struct AttachedSlider
{
using Slider = juce::Slider;
using Attachment = juce::SliderParameterAttachment;
AttachedSlider(juce::AudioParameterFloat* parameter) :
slider(),
attachment(*parameter, slider)
{
slider.setTextBoxStyle(juce::Slider::TextBoxBelow, false, 50, 16);
slider.setSliderStyle(juce::Slider::RotaryVerticalDrag);
}
~AttachedSlider()
{
}
Slider slider;
Attachment attachment;
};
And in my PluginProcessor.h:
private:
Clipper clipper;
juce::dsp::Oversampling<float> oversampling;
Should I be using unique_ptrs instead? and why?
