Parameter names only come up as 8 characters - in juce_VstWrapper.cpp getParameterName it’s explicitly set to 8. Is this necessary?
I have 3 bands on my current project, and a bunch of parameters. Not good math. I'm getting DOS flashbacks.
I'm setting it to 24, if my computer can count that high.
Yes, I think some hosts might crash if you use longer strings, so I made it 8 for safety. Annoying, I know, but it’s the fault of VST spec for hard-coding stuff like this.
the VST 2.4 confirms the 8 character limit. and encourage people to use vst_strncpy() to enure this, see below.
[code]
enum
{
//-------------------------------------------------------------------------------------------------------
kVstMaxProgNameLen = 24, ///< used for #effGetProgramName, #effSetProgramName, #effGetProgramNameIndexed
kVstMaxParamStrLen = 8, ///< used for #effGetParamLabel, #effGetParamDisplay, #effGetParamName
kVstMaxVendorStrLen = 64, ///< used for #effGetVendorString, #audioMasterGetVendorString
kVstMaxProductStrLen = 64, ///< used for #effGetProductString, #audioMasterGetProductString
kVstMaxEffectNameLen = 32 ///< used for #effGetEffectName
//-------------------------------------------------------------------------------------------------------
};
you might overcome limitation by using the VstParameterProperties structure, but I doubt many host really use it. There are so many plugin out there that don’t implement it.
enum Vst2StringConstants
{
//-------------------------------------------------------------------------------------------------------
kVstMaxNameLen = 64, ///< used for #MidiProgramName, #MidiProgramCategory, #MidiKeyName, #VstSpeakerProperties, #VstPinProperties
kVstMaxLabelLen = 64, ///< used for #VstParameterProperties->label, #VstPinProperties->label
kVstMaxShortLabelLen = 8, ///< used for #VstParameterProperties->shortLabel, #VstPinProperties->shortLabel
kVstMaxCategLabelLen = 24, ///< used for #VstParameterProperties->label
kVstMaxFileNameLen = 100 ///< used for #VstAudioFile->name
//-------------------------------------------------------------------------------------------------------
};
Well I tried more characters; showed garbage names in one host, OK in another, will buy a 3rd cheapie (Cubase SE) tomorrow, but 1 out of 2 isn’t cool.
I was just trying automation, and other plugins got longer names though those plugins are specific to Sonar.
I have little interest in supporting ancient hosts, but if it sounds fine and looks bad then longer names aren’t worth it, and detecting whether the host supports it could just be a major league hack.
At this point my main project handles parameter changes well enough internally, based on RMS, which I firmly believe every plugin should do - it sounds so much better if some parameters are tweaked based on RMS, which juce makes way too easy with AudioSampleBuffer::getRMSLevel(). Distortion threshold, mix level, feedback, whatever - it’s so much less digital sounding with a bit of controlled volatility…