diff --git a/BREAKING-CHANGES.txt b/BREAKING-CHANGES.txt index 8881e6c93e..986381099b 100644 --- a/BREAKING-CHANGES.txt +++ b/BREAKING-CHANGES.txt @@ -7,14 +7,15 @@ Develop Branch Change ------ The method used to classify AudioUnit, VST3 and AAX plug-in parameters as -either continuous or discrete has changed. +either continuous or discrete has changed, and AudioUnit and AudioUnit v3 +parameters are marked as high precision by default. Possible Issues --------------- -Plug-ins: DAW projects with automation data written by an AudioUnit, VST3 or -AAX plug-in built with JUCE version 5.1.1 or earlier may load incorrectly when -opened by an AudioUnit, VST3 or AAX plug-in built with JUCE version 5.2.0 and -later. +Plug-ins: DAW projects with automation data written by an AudioUnit, AudioUnit +v3 VST3 or AAX plug-in built with JUCE version 5.1.1 or earlier may load +incorrectly when opened by an AudioUnit, AudioUnit v3, VST3 or AAX plug-in +built with JUCE version 5.2.0 and later. Hosts: The AudioPluginInstance::getParameterNumSteps method now returns correct values for AU and VST3 plug-ins. @@ -32,7 +33,10 @@ Rationale The old system for presenting plug-in parameters to a host as either continuous or discrete is inconsistent between plug-in types and lacks sufficient flexibility. This change harmonises the behaviour and allows individual -parameters to be marked as continuous or discrete. +parameters to be marked as continuous or discrete. If AudioUnit and AudioUnit +v3 parameters are not marked as high precision then hosts like Logic Pro only +offer a limited number of parameter values, which again produces different +behaviour for different plug-in types. Change diff --git a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm index 24eb820872..19b4ed209c 100644 --- a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm +++ b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm @@ -835,7 +835,7 @@ public: | kAudioUnitParameterFlag_HasCFNameString | kAudioUnitParameterFlag_ValuesHaveStrings); - #if JucePlugin_AUHighResolutionParameters + #if ! JUCE_FORCE_LEGACY_PARAMETER_AUTOMATION_TYPE outParameterInfo.flags |= (UInt32) kAudioUnitParameterFlag_IsHighResolution; #endif diff --git a/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm b/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm index c2fff35401..9c1700a6e4 100644 --- a/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm +++ b/modules/juce_audio_plugin_client/AU/juce_AUv3_Wrapper.mm @@ -1102,7 +1102,7 @@ private: | kAudioUnitParameterFlag_HasCFNameString | kAudioUnitParameterFlag_ValuesHaveStrings); - #if JucePlugin_AUHighResolutionParameters + #if ! JUCE_FORCE_LEGACY_PARAMETER_AUTOMATION_TYPE flags |= (UInt32) kAudioUnitParameterFlag_IsHighResolution; #endif