@@ -4,6 +4,38 @@ JUCE breaking changes | |||||
develop | develop | ||||
======= | ======= | ||||
Change | |||||
------ | |||||
The k91_4 and k90_4 VST3 layouts are now mapped to the canonical JUCE 9.1.4 and | |||||
9.0.4 AudioChannelSets. This has a different ChannelType layout than the | |||||
AudioChannelSet previously used with such VST3 SpeakerArrangements. | |||||
Possible Issues | |||||
--------------- | |||||
VST3 plugins that were prepared to work with the k91_4 and k90_4 | |||||
SpeakerArrangements may now have incorrect channel mapping. The channels | |||||
previously accessible through ChannelType::left and right are now accessible | |||||
through ChannelType::wideLeft and wideRight, and channels previously accessible | |||||
through ChannelType::leftCentre and rightCentre are now accessible through | |||||
ChannelType::left and right. | |||||
Workaround | |||||
---------- | |||||
Code that accesses the channels that correspond to the VST3 Speakers kSpeakerL, | |||||
kSpeakerR, kSpeakerLc and kSpeakerRc needs to be updated. These channels are now | |||||
accessible respectively through ChannelTypes wideLeft, wideRight, left and | |||||
right. Previously they were accessible respectively through left, right, | |||||
leftCentre and rightCentre. | |||||
Rationale | |||||
--------- | |||||
This change allows developers to handle the 9.1.4 and 9.0.4 surround layouts | |||||
with one codepath across all plugin formats. Previously the | |||||
AudioChannelSet::create9point1point4() and create9point0point4() layouts would | |||||
only be used in CoreAudio and AAX, but a different AudioChannelSet would be used | |||||
in VST3 even though they were functionally equivalent. | |||||
Change | Change | ||||
------ | ------ | ||||
The signatures of the ContentSharer member functions have been updated. The | The signatures of the ContentSharer member functions have been updated. The | ||||
@@ -258,19 +258,19 @@ public: | |||||
/** Creates a set for a 9.0.4 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topRearLeft, topRearRight). | /** Creates a set for a 9.0.4 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topRearLeft, topRearRight). | ||||
Is equivalent to: AAX_eStemFormat_9_0_4 (AAX). | |||||
Is equivalent to: k90_4 (VST3), AAX_eStemFormat_9_0_4 (AAX). | |||||
*/ | */ | ||||
static AudioChannelSet JUCE_CALLTYPE create9point0point4(); | static AudioChannelSet JUCE_CALLTYPE create9point0point4(); | ||||
/** Creates a set for a 9.1.4 surround setup (left, right, centre, LFE, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topRearLeft, topRearRight). | /** Creates a set for a 9.1.4 surround setup (left, right, centre, LFE, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topRearLeft, topRearRight). | ||||
Is equivalent to: AAX_eStemFormat_9_1_4 (AAX). | |||||
Is equivalent to: k91_4 (VST3), AAX_eStemFormat_9_1_4 (AAX). | |||||
*/ | */ | ||||
static AudioChannelSet JUCE_CALLTYPE create9point1point4(); | static AudioChannelSet JUCE_CALLTYPE create9point1point4(); | ||||
/** Creates a set for a 9.0.6 surround setup (left, right, centre, LFE, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topSideLeft, topSideRight, topRearLeft, topRearRight). | /** Creates a set for a 9.0.6 surround setup (left, right, centre, LFE, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topSideLeft, topSideRight, topRearLeft, topRearRight). | ||||
Is equivalent to: AAX_eStemFormat_9_0_6 (AAX). | |||||
Is equivalent to: k90_6 (VST3), AAX_eStemFormat_9_0_6 (AAX). | |||||
*/ | */ | ||||
static AudioChannelSet JUCE_CALLTYPE create9point0point6(); | static AudioChannelSet JUCE_CALLTYPE create9point0point6(); | ||||
@@ -416,6 +416,8 @@ namespace detail | |||||
{ k70_6, { X::left, X::right, X::centre, X::leftSurroundRear, X::rightSurroundRear, X::leftSurroundSide, X::rightSurroundSide, X::topFrontLeft, X::topFrontRight, X::topRearLeft, X::topRearRight, X::topSideLeft, X::topSideRight } }, | { k70_6, { X::left, X::right, X::centre, X::leftSurroundRear, X::rightSurroundRear, X::leftSurroundSide, X::rightSurroundSide, X::topFrontLeft, X::topFrontRight, X::topRearLeft, X::topRearRight, X::topSideLeft, X::topSideRight } }, | ||||
// The VST3 layout uses 'left/right' and 'left-of-center/right-of-center', but the JUCE layout uses 'left/right' and 'wide-left/wide-right'. | // The VST3 layout uses 'left/right' and 'left-of-center/right-of-center', but the JUCE layout uses 'left/right' and 'wide-left/wide-right'. | ||||
{ k91_4, { X::wideLeft, X::wideRight, X::centre, X::LFE, X::leftSurroundRear, X::rightSurroundRear, X::left, X::right, X::leftSurroundSide, X::rightSurroundSide, X::topFrontLeft, X::topFrontRight, X::topRearLeft, X::topRearRight } }, | |||||
{ k90_4, { X::wideLeft, X::wideRight, X::centre, X::leftSurroundRear, X::rightSurroundRear, X::left, X::right, X::leftSurroundSide, X::rightSurroundSide, X::topFrontLeft, X::topFrontRight, X::topRearLeft, X::topRearRight } }, | |||||
{ k91_6, { X::wideLeft, X::wideRight, X::centre, X::LFE, X::leftSurroundRear, X::rightSurroundRear, X::left, X::right, X::leftSurroundSide, X::rightSurroundSide, X::topFrontLeft, X::topFrontRight, X::topRearLeft, X::topRearRight, X::topSideLeft, X::topSideRight } }, | { k91_6, { X::wideLeft, X::wideRight, X::centre, X::LFE, X::leftSurroundRear, X::rightSurroundRear, X::left, X::right, X::leftSurroundSide, X::rightSurroundSide, X::topFrontLeft, X::topFrontRight, X::topRearLeft, X::topRearRight, X::topSideLeft, X::topSideRight } }, | ||||
{ k90_6, { X::wideLeft, X::wideRight, X::centre, X::leftSurroundRear, X::rightSurroundRear, X::left, X::right, X::leftSurroundSide, X::rightSurroundSide, X::topFrontLeft, X::topFrontRight, X::topRearLeft, X::topRearRight, X::topSideLeft, X::topSideRight } }, | { k90_6, { X::wideLeft, X::wideRight, X::centre, X::leftSurroundRear, X::rightSurroundRear, X::left, X::right, X::leftSurroundSide, X::rightSurroundSide, X::topFrontLeft, X::topFrontRight, X::topRearLeft, X::topRearRight, X::topSideLeft, X::topSideRight } }, | ||||
}; | }; | ||||