JUCE v8.0.9
JUCE API
 
Loading...
Searching...
No Matches
juce::AudioChannelSet Class Reference

Represents a set of audio channel types. More...

#include <juce_AudioChannelSet.h>

Inheritance diagram for juce::AudioChannelSet:
Collaboration diagram for juce::AudioChannelSet:

Public Types

enum  { maxChannelsOfNamedLayout = 64 }
 
enum  ChannelType {
  unknown = 0 ,
  left = 1 ,
  right = 2 ,
  centre = 3 ,
  LFE = 4 ,
  leftSurround = 5 ,
  rightSurround = 6 ,
  leftCentre = 7 ,
  rightCentre = 8 ,
  centreSurround = 9 ,
  surround = centreSurround ,
  leftSurroundSide = 10 ,
  rightSurroundSide = 11 ,
  topMiddle = 12 ,
  topFrontLeft = 13 ,
  topFrontCentre = 14 ,
  topFrontRight = 15 ,
  topRearLeft = 16 ,
  topRearCentre = 17 ,
  topRearRight = 18 ,
  LFE2 = 19 ,
  leftSurroundRear = 20 ,
  rightSurroundRear = 21 ,
  wideLeft = 22 ,
  wideRight = 23 ,
  topSideLeft = 28 ,
  topSideRight = 29 ,
  ambisonicACN0 = 24 ,
  ambisonicACN1 = 25 ,
  ambisonicACN2 = 26 ,
  ambisonicACN3 = 27 ,
  ambisonicACN4 = 30 ,
  ambisonicACN5 = 31 ,
  ambisonicACN6 = 32 ,
  ambisonicACN7 = 33 ,
  ambisonicACN8 = 34 ,
  ambisonicACN9 = 35 ,
  ambisonicACN10 = 36 ,
  ambisonicACN11 = 37 ,
  ambisonicACN12 = 38 ,
  ambisonicACN13 = 39 ,
  ambisonicACN14 = 40 ,
  ambisonicACN15 = 41 ,
  ambisonicACN16 = 42 ,
  ambisonicACN17 = 43 ,
  ambisonicACN18 = 44 ,
  ambisonicACN19 = 45 ,
  ambisonicACN20 = 46 ,
  ambisonicACN21 = 47 ,
  ambisonicACN22 = 48 ,
  ambisonicACN23 = 49 ,
  ambisonicACN24 = 50 ,
  ambisonicACN25 = 51 ,
  ambisonicACN26 = 52 ,
  ambisonicACN27 = 53 ,
  ambisonicACN28 = 54 ,
  ambisonicACN29 = 55 ,
  ambisonicACN30 = 56 ,
  ambisonicACN31 = 57 ,
  ambisonicACN32 = 58 ,
  ambisonicACN33 = 59 ,
  ambisonicACN34 = 60 ,
  ambisonicACN35 = 61 ,
  ambisonicW = ambisonicACN0 ,
  ambisonicX = ambisonicACN3 ,
  ambisonicY = ambisonicACN1 ,
  ambisonicZ = ambisonicACN2 ,
  bottomFrontLeft = 62 ,
  bottomFrontCentre = 63 ,
  bottomFrontRight = 64 ,
  proximityLeft = 65 ,
  proximityRight = 66 ,
  bottomSideLeft = 67 ,
  bottomSideRight = 68 ,
  bottomRearLeft = 69 ,
  bottomRearCentre = 70 ,
  bottomRearRight = 71 ,
  ambisonicACN36 = 72 ,
  ambisonicACN37 = 73 ,
  ambisonicACN38 = 74 ,
  ambisonicACN39 = 75 ,
  ambisonicACN40 = 76 ,
  ambisonicACN41 = 77 ,
  ambisonicACN42 = 78 ,
  ambisonicACN43 = 79 ,
  ambisonicACN44 = 80 ,
  ambisonicACN45 = 81 ,
  ambisonicACN46 = 82 ,
  ambisonicACN47 = 83 ,
  ambisonicACN48 = 84 ,
  ambisonicACN49 = 85 ,
  ambisonicACN50 = 86 ,
  ambisonicACN51 = 87 ,
  ambisonicACN52 = 88 ,
  ambisonicACN53 = 89 ,
  ambisonicACN54 = 90 ,
  ambisonicACN55 = 91 ,
  ambisonicACN56 = 92 ,
  ambisonicACN57 = 93 ,
  ambisonicACN58 = 94 ,
  ambisonicACN59 = 95 ,
  ambisonicACN60 = 96 ,
  ambisonicACN61 = 97 ,
  ambisonicACN62 = 98 ,
  ambisonicACN63 = 99 ,
  discreteChannel0 = 128
}
 Represents different audio channel types. More...
 

Public Member Functions

 AudioChannelSet ()=default
 Creates an empty channel set.
 
void addChannel (ChannelType newChannelType)
 Adds a channel to the set.
 
int getAmbisonicOrder () const
 Returns the order of the ambisonic layout represented by this AudioChannelSet.
 
int getChannelIndexForType (ChannelType type) const noexcept
 Returns the index for a particular channel-type.
 
Array< ChannelTypegetChannelTypes () const
 Returns an array of all the types in this channel set.
 
String getDescription () const
 Returns the description of the current layout.
 
String getSpeakerArrangementAsString () const
 Returns a string containing a whitespace-separated list of speaker types corresponding to each channel.
 
ChannelType getTypeOfChannel (int channelIndex) const noexcept
 Returns the type of one of the channels in the set, by index.
 
int32 getWaveChannelMask () const noexcept
 Returns a WAVEFORMATEXTENSIBLE channelMask representation (typically used in .wav files) of the receiver.
 
void intersect (const AudioChannelSet &other)
 Intersect two channel layouts.
 
bool isDisabled () const noexcept
 Returns true if there are no channels in the set.
 
bool isDiscreteLayout () const noexcept
 Returns if this is a channel layout made-up of discrete channels.
 
bool operator!= (const AudioChannelSet &) const noexcept
 
bool operator< (const AudioChannelSet &) const noexcept
 
bool operator== (const AudioChannelSet &) const noexcept
 
void removeChannel (ChannelType newChannelType)
 Removes a channel from the set.
 
int size () const noexcept
 Returns the number of channels in the set.
 

Static Public Member Functions

static AudioChannelSet ambisonic (int order=1)
 Creates a set for ACN, SN3D normalised ambisonic surround setups with a given order.
 
static AudioChannelSet canonicalChannelSet (int numChannels)
 Create a canonical channel set for a given number of channels.
 
static Array< AudioChannelSetchannelSetsWithNumberOfChannels (int numChannels)
 Return an array of channel sets which have a given number of channels.
 
static AudioChannelSet channelSetWithChannels (const Array< ChannelType > &)
 Creates a channel set for a list of channel types.
 
static AudioChannelSet create5point0 ()
 Creates a set for a 5.0 surround setup (left, right, centre, leftSurround, rightSurround).
 
static AudioChannelSet create5point0point2 ()
 Creates a set for a 5.0.2 surround setup (left, right, centre, leftSurround, rightSurround, topSideLeft, topSideRight).
 
static AudioChannelSet create5point0point4 ()
 Creates a set for a 5.0.4 surround setup (left, right, centre, leftSurround, rightSurround, topFrontLeft, topFrontRight, topRearLeft, topRearRight).
 
static AudioChannelSet create5point1 ()
 Creates a set for a 5.1 surround setup (left, right, centre, leftSurround, rightSurround, LFE).
 
static AudioChannelSet create5point1point2 ()
 Creates a set for a 5.1.2 surround setup (left, right, centre, LFE, leftSurround, rightSurround, topSideLeft, topSideRight).
 
static AudioChannelSet create5point1point4 ()
 Creates a set for a 5.1.4 surround setup (left, right, centre, LFE, leftSurround, rightSurround, topFrontLeft, topFrontRight, topRearLeft, topRearRight).
 
static AudioChannelSet create6point0 ()
 Creates a set for a 6.0 Cine surround setup (left, right, centre, leftSurround, rightSurround, centreSurround).
 
static AudioChannelSet create6point0Music ()
 Creates a set for a 6.0 Music surround setup (left, right, leftSurround, rightSurround, leftSurroundSide, rightSurroundSide).
 
static AudioChannelSet create6point1 ()
 Creates a set for a 6.1 Cine surround setup (left, right, centre, leftSurround, rightSurround, centreSurround, LFE).
 
static AudioChannelSet create6point1Music ()
 Creates a set for a 6.0 Music surround setup (left, right, leftSurround, rightSurround, leftSurroundSide, rightSurroundSide, LFE).
 
static AudioChannelSet create7point0 ()
 Creates a set for a DTS 7.0 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear).
 
static AudioChannelSet create7point0point2 ()
 Creates a set for Dolby Atmos 7.0.2 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, topSideLeft, topSideRight).
 
static AudioChannelSet create7point0point4 ()
 Creates a set for Dolby Atmos 7.0.4 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, topFrontLeft, topFrontRight, topRearLeft, topRearRight).
 
static AudioChannelSet create7point0point6 ()
 Creates a set for 7.0.6 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, topFrontLeft, topFrontRight, topSideLeft, topSideRight, topRearLeft, topRearRight).
 
static AudioChannelSet create7point0SDDS ()
 Creates a set for a SDDS 7.0 surround setup (left, right, centre, leftSurround, rightSurround, leftCentre, rightCentre).
 
static AudioChannelSet create7point1 ()
 Creates a set for a DTS 7.1 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, LFE).
 
static AudioChannelSet create7point1point2 ()
 Creates a set for Dolby Atmos 7.1.2 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, LFE, topSideLeft, topSideRight).
 
static AudioChannelSet create7point1point4 ()
 Creates a set for Dolby Atmos 7.1.4 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, LFE, topFrontLeft, topFrontRight, topRearLeft, topRearRight).
 
static AudioChannelSet create7point1point6 ()
 Creates a set for Dolby Atmos 7.1.6 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, LFE, topFrontLeft, topFrontRight, topSideLeft, topSideRight, topRearLeft, topRearRight).
 
static AudioChannelSet create7point1SDDS ()
 Creates a set for a 7.1 surround setup (left, right, centre, leftSurround, rightSurround, leftCentre, rightCentre, LFE).
 
static AudioChannelSet create9point0point4 ()
 Creates a set for a 9.0.4 Atmos surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topRearLeft, topRearRight).
 
static AudioChannelSet create9point0point4ITU ()
 Creates a set for a 9.0.4 ITU surround setup: left, right, centre, leftSurround, rightSurround, leftCentre, rightCentre, leftSurroundSide, rightSurroundSide, topFrontLeft, topFrontRight, topRearLeft, topRearRight.
 
static AudioChannelSet create9point0point6 ()
 Creates a set for a 9.0.6 Atmos surround setup (left, right, centre, LFE, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topSideLeft, topSideRight, topRearLeft, topRearRight).
 
static AudioChannelSet create9point0point6ITU ()
 Creates a set for a 9.0.6 ITU surround setup.
 
static AudioChannelSet create9point1point4 ()
 Creates a set for a 9.1.4 Atmos surround setup (left, right, centre, LFE, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topRearLeft, topRearRight).
 
static AudioChannelSet create9point1point4ITU ()
 Creates a set for a 9.1.4 ITU surround setup.
 
static AudioChannelSet create9point1point6 ()
 Creates a set for a 9.1.6 Atmos surround setup (left, right, centre, LFE, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topSideLeft, topSideRight, topRearLeft, topRearRight).
 
static AudioChannelSet create9point1point6ITU ()
 Creates a set for a 9.1.6 ITU surround setup.
 
static AudioChannelSet createLCR ()
 Creates a set containing an LCR set (left, right, centre).
 
static AudioChannelSet createLCRS ()
 Creates a set containing an LCRS set (left, right, centre, surround).
 
static AudioChannelSet createLRS ()
 Creates a set containing an LRS set (left, right, surround).
 
static AudioChannelSet disabled ()
 Creates a zero-channel set which can be used to indicate that a bus is disabled.
 
static AudioChannelSet discreteChannels (int numChannels)
 Creates a set of untyped discrete channels.
 
static AudioChannelSet fromAbbreviatedString (const String &set)
 Returns an AudioChannelSet from a string returned by getSpeakerArrangementAsString.
 
static AudioChannelSet fromWaveChannelMask (int32 dwChannelMask)
 Create an AudioChannelSet from a WAVEFORMATEXTENSIBLE channelMask (typically used in .wav files).
 
static String getAbbreviatedChannelTypeName (ChannelType)
 Returns the abbreviated name of a channel type.
 
static int getAmbisonicOrderForNumChannels (int numChannels, int maxOrderToCheck=7)
 Returns the ambisonic order that includes exactly numChannels, or -1 if no supported ambisonic order contains exactly numChannels.
 
static ChannelType getChannelTypeFromAbbreviation (const String &abbreviation)
 Returns the channel type from an abbreviated name.
 
static String getChannelTypeName (ChannelType)
 Returns the name of a given channel type.
 
static AudioChannelSet hexagonal ()
 Creates a set for hexagonal surround setup (left, right, leftSurroundRear, rightSurroundRear, centre, surroundCentre).
 
static AudioChannelSet mono ()
 Creates a one-channel mono set (centre).
 
static AudioChannelSet namedChannelSet (int numChannels)
 Create a channel set for a given number of channels which is non-discrete.
 
static AudioChannelSet octagonal ()
 Creates a set for octagonal surround setup (left, right, leftSurround, rightSurround, centre, centreSurround, wideLeft, wideRight).
 
static AudioChannelSet pentagonal ()
 Creates a set for pentagonal surround setup (left, right, centre, leftSurroundRear, rightSurroundRear).
 
static AudioChannelSet quadraphonic ()
 Creates a set for quadraphonic surround setup (left, right, leftSurround, rightSurround)
 
static AudioChannelSet stereo ()
 Creates a set containing a stereo set (left, right).
 

Private Member Functions

 AudioChannelSet (const std::initializer_list< ChannelType > &)
 
 AudioChannelSet (uint32)
 

Private Attributes

BigInteger channels
 

Detailed Description

Represents a set of audio channel types.

For example, you might have a set of left + right channels, which is a stereo channel set. It is a collection of values from the AudioChannelSet::ChannelType enum, where each type may only occur once within the set.

The documentation below lists which AudioChannelSet corresponds to which native layouts used by AAX, VST2/VST3 and CoreAudio/AU. The layout tags in CoreAudio are particularly confusing. For example, the layout which is labeled as "7.1 SDDS" in Logic Pro, corresponds to CoreAudio/AU's kAudioChannelLayoutTag_DTS_7_0 tag, whereas AAX's DTS 7.1 Layout corresponds to CoreAudio/AU's kAudioChannelLayoutTag_MPEG_7_1_A format, etc. Please do not use the CoreAudio tag as an indication to the actual layout of the speakers.

See also
Bus

@tags{Audio}

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
maxChannelsOfNamedLayout 

◆ ChannelType

Represents different audio channel types.

Enumerator
unknown 

Unknown channel type.

left 

L channel.

right 

R channel.

centre 

C channel.

(Sometimes M for mono)

LFE 

LFE channel.

leftSurround 

Ls channel.


rightSurround 

Rs channel.


leftCentre 

Lc (AAX/VST), Lc used as Lss in AU for most layouts.

rightCentre 

Rc (AAX/VST), Rc used as Rss in AU for most layouts.

centreSurround 

Cs/S channel.

surround 

Same as Centre Surround channel.

leftSurroundSide 

Lss (AXX), Side Left "Sl" (VST), Left Centre "LC" (AU) channel.

rightSurroundSide 

Rss (AXX), Side right "Sr" (VST), Right Centre "Rc" (AU) channel.

topMiddle 

Top Middle channel.


topFrontLeft 

Top Front Left channel.


topFrontCentre 

Top Front Centre channel.

topFrontRight 

Top Front Right channel.


topRearLeft 

Top Rear Left channel.


topRearCentre 

Top Rear Centre channel.


topRearRight 

Top Rear Right channel.


LFE2 

Second LFE channel.


leftSurroundRear 

Lsr (AAX), Lcs (VST), Rls (AU) channel.

rightSurroundRear 

Rsr (AAX), Rcs (VST), Rrs (AU) channel.

wideLeft 

Wide Left channel.


wideRight 

Wide Right channel.

topSideLeft 

Lts (AAX), Tsl (VST), Ltm (AU) channel for Dolby Atmos.

topSideRight 

Rts (AAX), Tsr (VST), Rtm (AU) channel for Dolby Atmos.

ambisonicACN0 

Zero-th ambisonic channel number 0.


ambisonicACN1 

First-order ambisonic channel number 1.

ambisonicACN2 

First-order ambisonic channel number 2.

ambisonicACN3 

First-order ambisonic channel number 3.

ambisonicACN4 

Second-order ambisonic channel number 4.

ambisonicACN5 

Second-order ambisonic channel number 5.

ambisonicACN6 

Second-order ambisonic channel number 6.

ambisonicACN7 

Second-order ambisonic channel number 7.

ambisonicACN8 

Second-order ambisonic channel number 8.

ambisonicACN9 

Third-order ambisonic channel number 9.


ambisonicACN10 

Third-order ambisonic channel number 10.

ambisonicACN11 

Third-order ambisonic channel number 11.

ambisonicACN12 

Third-order ambisonic channel number 12.

ambisonicACN13 

Third-order ambisonic channel number 13.

ambisonicACN14 

Third-order ambisonic channel number 14.

ambisonicACN15 

Third-order ambisonic channel number 15.

ambisonicACN16 

Fourth-order ambisonic channel number 16.

ambisonicACN17 

Fourth-order ambisonic channel number 17.

ambisonicACN18 

Fourth-order ambisonic channel number 18.

ambisonicACN19 

Fourth-order ambisonic channel number 19.

ambisonicACN20 

Fourth-order ambisonic channel number 20.

ambisonicACN21 

Fourth-order ambisonic channel number 21.

ambisonicACN22 

Fourth-order ambisonic channel number 22.

ambisonicACN23 

Fourth-order ambisonic channel number 23.

ambisonicACN24 

Fourth-order ambisonic channel number 24.

ambisonicACN25 

Fifth-order ambisonic channel number 25.

ambisonicACN26 

Fifth-order ambisonic channel number 26.

ambisonicACN27 

Fifth-order ambisonic channel number 27.

ambisonicACN28 

Fifth-order ambisonic channel number 28.

ambisonicACN29 

Fifth-order ambisonic channel number 29.

ambisonicACN30 

Fifth-order ambisonic channel number 30.

ambisonicACN31 

Fifth-order ambisonic channel number 31.

ambisonicACN32 

Fifth-order ambisonic channel number 32.

ambisonicACN33 

Fifth-order ambisonic channel number 33.

ambisonicACN34 

Fifth-order ambisonic channel number 34.

ambisonicACN35 

Fifth-order ambisonic channel number 35.

ambisonicW 

Same as zero-th ambisonic channel number 0.


ambisonicX 

Same as first-order ambisonic channel number 3.

ambisonicY 

Same as first-order ambisonic channel number 1.

ambisonicZ 

Same as first-order ambisonic channel number 2.

bottomFrontLeft 

Bottom Front Left (Bfl)

bottomFrontCentre 

Bottom Front Centre (Bfc)

bottomFrontRight 

Bottom Front Right (Bfr)

proximityLeft 

Proximity Left (Pl)

proximityRight 

Proximity Right (Pr)

bottomSideLeft 

Bottom Side Left (Bsl)

bottomSideRight 

Bottom Side Right (Bsr)

bottomRearLeft 

Bottom Rear Left (Brl)

bottomRearCentre 

Bottom Rear Center (Brc)

bottomRearRight 

Bottom Rear Right (Brr)

ambisonicACN36 

Sixth-order ambisonic channel number 36.

ambisonicACN37 

Sixth-order ambisonic channel number 37.

ambisonicACN38 

Sixth-order ambisonic channel number 38.

ambisonicACN39 

Sixth-order ambisonic channel number 39.

ambisonicACN40 

Sixth-order ambisonic channel number 40.

ambisonicACN41 

Sixth-order ambisonic channel number 41.

ambisonicACN42 

Sixth-order ambisonic channel number 42.

ambisonicACN43 

Sixth-order ambisonic channel number 43.

ambisonicACN44 

Sixth-order ambisonic channel number 44.

ambisonicACN45 

Sixth-order ambisonic channel number 45.

ambisonicACN46 

Sixth-order ambisonic channel number 46.

ambisonicACN47 

Sixth-order ambisonic channel number 47.

ambisonicACN48 

Sixth-order ambisonic channel number 48.

ambisonicACN49 

Seventh-order ambisonic channel number 49.

ambisonicACN50 

Seventh-order ambisonic channel number 50.

ambisonicACN51 

Seventh-order ambisonic channel number 51.

ambisonicACN52 

Seventh-order ambisonic channel number 52.

ambisonicACN53 

Seventh-order ambisonic channel number 53.

ambisonicACN54 

Seventh-order ambisonic channel number 54.

ambisonicACN55 

Seventh-order ambisonic channel number 55.

ambisonicACN56 

Seventh-order ambisonic channel number 56.

ambisonicACN57 

Seventh-order ambisonic channel number 57.

ambisonicACN58 

Seventh-order ambisonic channel number 58.

ambisonicACN59 

Seventh-order ambisonic channel number 59.

ambisonicACN60 

Seventh-order ambisonic channel number 60.

ambisonicACN61 

Seventh-order ambisonic channel number 61.

ambisonicACN62 

Seventh-order ambisonic channel number 62.

ambisonicACN63 

Seventh-order ambisonic channel number 63.

discreteChannel0 

Non-typed individual channels are indexed upwards from this value.

Constructor & Destructor Documentation

◆ AudioChannelSet() [1/3]

juce::AudioChannelSet::AudioChannelSet ( )
default

Creates an empty channel set.

You can call addChannel to add channels to the set.

◆ AudioChannelSet() [2/3]

juce::AudioChannelSet::AudioChannelSet ( uint32  )
explicitprivate

◆ AudioChannelSet() [3/3]

juce::AudioChannelSet::AudioChannelSet ( const std::initializer_list< ChannelType > &  )
explicitprivate

Member Function Documentation

◆ addChannel()

void juce::AudioChannelSet::addChannel ( ChannelType  newChannelType)

Adds a channel to the set.

◆ ambisonic()

static AudioChannelSet juce::AudioChannelSet::ambisonic ( int  order = 1)
static

Creates a set for ACN, SN3D normalised ambisonic surround setups with a given order.

Is equivalent to: kAmbiXXXOrderACN (VST), AAX_eStemFormat_Ambi_XXX_ACN (AAX), kAudioChannelLayoutTag_HOA_ACN_SN3D (CoreAudio)

◆ canonicalChannelSet()

static AudioChannelSet juce::AudioChannelSet::canonicalChannelSet ( int  numChannels)
static

Create a canonical channel set for a given number of channels.

For example, numChannels = 1 will return mono, numChannels = 2 will return stereo, etc.

◆ channelSetsWithNumberOfChannels()

static Array< AudioChannelSet > juce::AudioChannelSet::channelSetsWithNumberOfChannels ( int  numChannels)
static

Return an array of channel sets which have a given number of channels.

◆ channelSetWithChannels()

static AudioChannelSet juce::AudioChannelSet::channelSetWithChannels ( const Array< ChannelType > &  )
static

Creates a channel set for a list of channel types.

This function will assert if you supply a duplicate channel.

Note that this method ignores the order in which the channels are given, i.e. two arrays with the same elements but in a different order will still result in the same channel set.

◆ create5point0()

static AudioChannelSet juce::AudioChannelSet::create5point0 ( )
static

Creates a set for a 5.0 surround setup (left, right, centre, leftSurround, rightSurround).

Is equivalent to: k50 (VST), AAX_eStemFormat_5_0 (AAX), kAudioChannelLayoutTag_MPEG_5_0_A (CoreAudio)

This format is referred to as "5.0" in Cubase. This format is referred to as "5.0" in Pro Tools.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ create5point0point2()

static AudioChannelSet juce::AudioChannelSet::create5point0point2 ( )
static

Creates a set for a 5.0.2 surround setup (left, right, centre, leftSurround, rightSurround, topSideLeft, topSideRight).

Is equivalent to: AAX_eStemFormat_5_0_2 (AAX).

◆ create5point0point4()

static AudioChannelSet juce::AudioChannelSet::create5point0point4 ( )
static

Creates a set for a 5.0.4 surround setup (left, right, centre, leftSurround, rightSurround, topFrontLeft, topFrontRight, topRearLeft, topRearRight).

Is equivalent to: AAX_eStemFormat_5_0_4 (AAX).

◆ create5point1()

static AudioChannelSet juce::AudioChannelSet::create5point1 ( )
static

Creates a set for a 5.1 surround setup (left, right, centre, leftSurround, rightSurround, LFE).

Is equivalent to: k51 (VST), AAX_eStemFormat_5_1 (AAX), kAudioChannelLayoutTag_MPEG_5_1_A (CoreAudio)

This format is referred to as "5.1 (ITU 775)" in Logic Pro. This format is referred to as "5.1" in Cubase. This format is referred to as "5.1" in Pro Tools.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ create5point1point2()

static AudioChannelSet juce::AudioChannelSet::create5point1point2 ( )
static

Creates a set for a 5.1.2 surround setup (left, right, centre, LFE, leftSurround, rightSurround, topSideLeft, topSideRight).

Is equivalent to: kAudioChannelLayoutTag_Atmos_5_1_2 (CoreAudio).

◆ create5point1point4()

static AudioChannelSet juce::AudioChannelSet::create5point1point4 ( )
static

Creates a set for a 5.1.4 surround setup (left, right, centre, LFE, leftSurround, rightSurround, topFrontLeft, topFrontRight, topRearLeft, topRearRight).

Is equivalent to: kAudioChannelLayoutTag_Atmos_5_1_4 (CoreAudio).

◆ create6point0()

static AudioChannelSet juce::AudioChannelSet::create6point0 ( )
static

Creates a set for a 6.0 Cine surround setup (left, right, centre, leftSurround, rightSurround, centreSurround).

Is equivalent to: k60Cine (VST), AAX_eStemFormat_6_0 (AAX), kAudioChannelLayoutTag_AudioUnit_6_0 (CoreAudio)

Logic Pro incorrectly uses this for the surround format labeled "6.1 (ES/EX)". This format is referred to as "6.0 Cine" in Cubase. This format is referred to as "6.0" in Pro Tools.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ create6point0Music()

static AudioChannelSet juce::AudioChannelSet::create6point0Music ( )
static

Creates a set for a 6.0 Music surround setup (left, right, leftSurround, rightSurround, leftSurroundSide, rightSurroundSide).

Is equivalent to: k60Music (VST), n/a (AAX), kAudioChannelLayoutTag_DTS_6_0_A (CoreAudio)

This format is referred to as "6.0 Music" in Cubase.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ create6point1()

static AudioChannelSet juce::AudioChannelSet::create6point1 ( )
static

Creates a set for a 6.1 Cine surround setup (left, right, centre, leftSurround, rightSurround, centreSurround, LFE).

Is equivalent to: k61Cine (VST), AAX_eStemFormat_6_1 (AAX), kAudioChannelLayoutTag_MPEG_6_1_A (CoreAudio)

This format is referred to as "6.1" in Pro Tools.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ create6point1Music()

static AudioChannelSet juce::AudioChannelSet::create6point1Music ( )
static

Creates a set for a 6.0 Music surround setup (left, right, leftSurround, rightSurround, leftSurroundSide, rightSurroundSide, LFE).

Is equivalent to: k61Music (VST), n/a (AAX), kAudioChannelLayoutTag_DTS_6_1_A (CoreAudio)

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ create7point0()

static AudioChannelSet juce::AudioChannelSet::create7point0 ( )
static

Creates a set for a DTS 7.0 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear).

Is equivalent to: k70Music (VST), AAX_eStemFormat_7_0_DTS (AAX), kAudioChannelLayoutTag_AudioUnit_7_0 (CoreAudio)

This format is referred to as "7.0" in Pro Tools.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ create7point0point2()

static AudioChannelSet juce::AudioChannelSet::create7point0point2 ( )
static

Creates a set for Dolby Atmos 7.0.2 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, topSideLeft, topSideRight).

Is equivalent to: n/a (VST), AAX_eStemFormat_7_0_2 (AAX), n/a (CoreAudio)

◆ create7point0point4()

static AudioChannelSet juce::AudioChannelSet::create7point0point4 ( )
static

Creates a set for Dolby Atmos 7.0.4 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, topFrontLeft, topFrontRight, topRearLeft, topRearRight).

Is equivalent to: n/a (VST), n/a (AAX), n/a (CoreAudio)

◆ create7point0point6()

static AudioChannelSet juce::AudioChannelSet::create7point0point6 ( )
static

Creates a set for 7.0.6 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, topFrontLeft, topFrontRight, topSideLeft, topSideRight, topRearLeft, topRearRight).

Is equivalent to: AAX_eStemFormat_7_0_6 (AAX).

◆ create7point0SDDS()

static AudioChannelSet juce::AudioChannelSet::create7point0SDDS ( )
static

Creates a set for a SDDS 7.0 surround setup (left, right, centre, leftSurround, rightSurround, leftCentre, rightCentre).

Is equivalent to: k70Cine (VST), AAX_eStemFormat_7_0_SDDS (AAX), kAudioChannelLayoutTag_AudioUnit_7_0_Front (CoreAudio)

This format is referred to as "7.0 SDDS" in Pro Tools.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ create7point1()

static AudioChannelSet juce::AudioChannelSet::create7point1 ( )
static

Creates a set for a DTS 7.1 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, LFE).

Is equivalent to: k71CineSideFill (VST), AAX_eStemFormat_7_1_DTS (AAX), kAudioChannelLayoutTag_MPEG_7_1_C/kAudioChannelLayoutTag_ITU_3_4_1 (CoreAudio)

This format is referred to as "7.1 (3/4.1)" in Logic Pro. This format is referred to as "7.1" in Pro Tools.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ create7point1point2()

static AudioChannelSet juce::AudioChannelSet::create7point1point2 ( )
static

Creates a set for Dolby Atmos 7.1.2 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, LFE, topSideLeft, topSideRight).

Is equivalent to: k71_2 (VST), AAX_eStemFormat_7_1_2 (AAX), kAudioChannelLayoutTag_Atmos_7_1_2 (CoreAudio)

◆ create7point1point4()

static AudioChannelSet juce::AudioChannelSet::create7point1point4 ( )
static

Creates a set for Dolby Atmos 7.1.4 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, LFE, topFrontLeft, topFrontRight, topRearLeft, topRearRight).

Is equivalent to: k71_4 (VST), n/a (AAX), kAudioChannelLayoutTag_Atmos_7_1_4 (CoreAudio)

◆ create7point1point6()

static AudioChannelSet juce::AudioChannelSet::create7point1point6 ( )
static

Creates a set for Dolby Atmos 7.1.6 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, LFE, topFrontLeft, topFrontRight, topSideLeft, topSideRight, topRearLeft, topRearRight).

Is equivalent to: k71_6 (VST), n/a (AAX), n/a (CoreAudio)

◆ create7point1SDDS()

static AudioChannelSet juce::AudioChannelSet::create7point1SDDS ( )
static

Creates a set for a 7.1 surround setup (left, right, centre, leftSurround, rightSurround, leftCentre, rightCentre, LFE).

Is equivalent to: k71Cine (VST), AAX_eStemFormat_7_1_SDDS (AAX), kAudioChannelLayoutTag_MPEG_7_1_A (CoreAudio)

This format is referred to as "7.1 (SDDS)" in Logic Pro. This format is referred to as "7.1 SDDS" in Pro Tools.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ create9point0point4()

static AudioChannelSet juce::AudioChannelSet::create9point0point4 ( )
static

Creates a set for a 9.0.4 Atmos surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topRearLeft, topRearRight).

Is equivalent to: k90_4_W (VST3), AAX_eStemFormat_9_0_4 (AAX).

See also
create9point0point4ITU()

◆ create9point0point4ITU()

static AudioChannelSet juce::AudioChannelSet::create9point0point4ITU ( )
static

Creates a set for a 9.0.4 ITU surround setup: left, right, centre, leftSurround, rightSurround, leftCentre, rightCentre, leftSurroundSide, rightSurroundSide, topFrontLeft, topFrontRight, topRearLeft, topRearRight.

◆ create9point0point6()

static AudioChannelSet juce::AudioChannelSet::create9point0point6 ( )
static

Creates a set for a 9.0.6 Atmos surround setup (left, right, centre, LFE, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topSideLeft, topSideRight, topRearLeft, topRearRight).

Is equivalent to: k90_6_W (VST3), AAX_eStemFormat_9_0_6 (AAX).

See also
create9point0point6ITU()

◆ create9point0point6ITU()

static AudioChannelSet juce::AudioChannelSet::create9point0point6ITU ( )
static

Creates a set for a 9.0.6 ITU surround setup.

left, right, centre, leftSurround, rightSurround, leftCentre, rightCentre, leftSurroundSide, rightSurroundSide, topFrontLeft, topFrontRight, topRearLeft, topRearRight, topSideLeft, topSideRight

◆ create9point1point4()

static AudioChannelSet juce::AudioChannelSet::create9point1point4 ( )
static

Creates a set for a 9.1.4 Atmos surround setup (left, right, centre, LFE, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topRearLeft, topRearRight).

Is equivalent to: k91_4_W (VST3), AAX_eStemFormat_9_1_4 (AAX).

See also
create9point1point4ITU()

◆ create9point1point4ITU()

static AudioChannelSet juce::AudioChannelSet::create9point1point4ITU ( )
static

Creates a set for a 9.1.4 ITU surround setup.

left, right, centre, LFE, leftSurround, rightSurround, leftCentre, rightCentre, leftSurroundSide, rightSurroundSide, topFrontLeft, topFrontRight, topRearLeft, topRearRight

◆ create9point1point6()

static AudioChannelSet juce::AudioChannelSet::create9point1point6 ( )
static

Creates a set for a 9.1.6 Atmos surround setup (left, right, centre, LFE, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, wideLeft, wideRight, topFrontLeft, topFrontRight, topSideLeft, topSideRight, topRearLeft, topRearRight).

Older versions of the VST3 SDK only supported ITU versions of the 9.0.4, 9.1.4, 9.0.6, and 9.1.6 layouts, which have the front-channel ordering "L Lc C Rc R". To maintain the correct relative channel ordering, JUCE would perform the following mapping: L -> wideLeft, Lc -> left, Rc -> right, R -> wideRight

The version of the VST3 SDK bundled with JUCE now supports Atmos versions of the above layouts, which have the front-channel ordering "Lw L C R Rw". This order matches the JUCE ordering, so no remapping is required.

create9point0point4(), create9point1point4(), create9point0point6(), and create9point1point6() now correspond to the VST3 k90_4_W, k91_4_W, k90_6_W, and k91_6_W Atmos layouts respectively.

If you need to support the old ITU layouts, use create9point0point4ITU(), create9point1point4ITU(), create9point0point6ITU(), and create9point1point6ITU() instead.

Is equivalent to: k91_6_W (VST3), kAudioChannelLayoutTag_Atmos_9_1_6 (CoreAudio).

See also
create9point1point6ITU()

◆ create9point1point6ITU()

static AudioChannelSet juce::AudioChannelSet::create9point1point6ITU ( )
static

Creates a set for a 9.1.6 ITU surround setup.

left, right, centre, LFE, leftSurround, rightSurround, leftCentre, rightCentre, leftSurroundSide, rightSurroundSide, topFrontLeft, topFrontRight, topRearLeft, topRearRight, topSideLeft, topSideRight

◆ createLCR()

static AudioChannelSet juce::AudioChannelSet::createLCR ( )
static

Creates a set containing an LCR set (left, right, centre).

Is equivalent to: k30Cine (VST), AAX_eStemFormat_LCR (AAX), kAudioChannelLayoutTag_MPEG_3_0_A (CoreAudio)

This format is referred to as "LRC" in Cubase. This format is referred to as "LCR" in Pro Tools.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ createLCRS()

static AudioChannelSet juce::AudioChannelSet::createLCRS ( )
static

Creates a set containing an LCRS set (left, right, centre, surround).

Is equivalent to: k40Cine (VST), AAX_eStemFormat_LCRS (AAX), kAudioChannelLayoutTag_MPEG_4_0_A (CoreAudio)

This format is referred to as "LCRS (Pro Logic)" in Logic Pro. This format is referred to as "LRCS" in Cubase. This format is referred to as "LCRS" in Pro Tools.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ createLRS()

static AudioChannelSet juce::AudioChannelSet::createLRS ( )
static

Creates a set containing an LRS set (left, right, surround).

Is equivalent to: k30Music (VST), n/a (AAX), kAudioChannelLayoutTag_ITU_2_1 (CoreAudio)

This format is referred to as "LRS" in Cubase.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ disabled()

static AudioChannelSet juce::AudioChannelSet::disabled ( )
static

Creates a zero-channel set which can be used to indicate that a bus is disabled.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ discreteChannels()

static AudioChannelSet juce::AudioChannelSet::discreteChannels ( int  numChannels)
static

Creates a set of untyped discrete channels.

Referenced by juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ fromAbbreviatedString()

static AudioChannelSet juce::AudioChannelSet::fromAbbreviatedString ( const String set)
static

Returns an AudioChannelSet from a string returned by getSpeakerArrangementAsString.

See also
getSpeakerArrangementAsString

◆ fromWaveChannelMask()

static AudioChannelSet juce::AudioChannelSet::fromWaveChannelMask ( int32  dwChannelMask)
static

Create an AudioChannelSet from a WAVEFORMATEXTENSIBLE channelMask (typically used in .wav files).

◆ getAbbreviatedChannelTypeName()

static String juce::AudioChannelSet::getAbbreviatedChannelTypeName ( ChannelType  )
static

Returns the abbreviated name of a channel type.

For example, this method may return "Ls".

◆ getAmbisonicOrder()

int juce::AudioChannelSet::getAmbisonicOrder ( ) const

Returns the order of the ambisonic layout represented by this AudioChannelSet.

If the AudioChannelSet is not an ambisonic layout, then this method will return -1.

◆ getAmbisonicOrderForNumChannels()

static int juce::AudioChannelSet::getAmbisonicOrderForNumChannels ( int  numChannels,
int  maxOrderToCheck = 7 
)
static

Returns the ambisonic order that includes exactly numChannels, or -1 if no supported ambisonic order contains exactly numChannels.

◆ getChannelIndexForType()

int juce::AudioChannelSet::getChannelIndexForType ( ChannelType  type) const
noexcept

Returns the index for a particular channel-type.

Will return -1 if the this set does not contain a channel of this type.

◆ getChannelTypeFromAbbreviation()

static ChannelType juce::AudioChannelSet::getChannelTypeFromAbbreviation ( const String abbreviation)
static

Returns the channel type from an abbreviated name.

◆ getChannelTypeName()

static String juce::AudioChannelSet::getChannelTypeName ( ChannelType  )
static

Returns the name of a given channel type.

For example, this method may return "Surround Left".

◆ getChannelTypes()

Array< ChannelType > juce::AudioChannelSet::getChannelTypes ( ) const

Returns an array of all the types in this channel set.

◆ getDescription()

String juce::AudioChannelSet::getDescription ( ) const

Returns the description of the current layout.

For example, this method may return "Quadraphonic". Note that the returned string may not be unique.

◆ getSpeakerArrangementAsString()

String juce::AudioChannelSet::getSpeakerArrangementAsString ( ) const

Returns a string containing a whitespace-separated list of speaker types corresponding to each channel.

For example in a 5.1 arrangement, the string may be "L R C Lfe Ls Rs". If the speaker arrangement is unknown, the returned string will be empty.

◆ getTypeOfChannel()

ChannelType juce::AudioChannelSet::getTypeOfChannel ( int  channelIndex) const
noexcept

Returns the type of one of the channels in the set, by index.

◆ getWaveChannelMask()

int32 juce::AudioChannelSet::getWaveChannelMask ( ) const
noexcept

Returns a WAVEFORMATEXTENSIBLE channelMask representation (typically used in .wav files) of the receiver.

Returns -1 if the receiver cannot be represented in a WAVEFORMATEXTENSIBLE channelMask representation.

◆ hexagonal()

static AudioChannelSet juce::AudioChannelSet::hexagonal ( )
static

Creates a set for hexagonal surround setup (left, right, leftSurroundRear, rightSurroundRear, centre, surroundCentre).

Is equivalent to: n/a (VST), n/a (AAX), kAudioChannelLayoutTag_Hexagonal (CoreAudio)

◆ intersect()

void juce::AudioChannelSet::intersect ( const AudioChannelSet other)
inline

Intersect two channel layouts.

◆ isDisabled()

bool juce::AudioChannelSet::isDisabled ( ) const
inlinenoexcept

Returns true if there are no channels in the set.

◆ isDiscreteLayout()

bool juce::AudioChannelSet::isDiscreteLayout ( ) const
noexcept

Returns if this is a channel layout made-up of discrete channels.

◆ mono()

static AudioChannelSet juce::AudioChannelSet::mono ( )
static

Creates a one-channel mono set (centre).

Is equivalent to: kMonoAAX (VST), AAX_eStemFormat_Mono (AAX), kAudioChannelLayoutTag_Mono (CoreAudio)

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ namedChannelSet()

static AudioChannelSet juce::AudioChannelSet::namedChannelSet ( int  numChannels)
static

Create a channel set for a given number of channels which is non-discrete.

If numChannels is larger than the number of channels of the surround format with the maximum amount of channels (currently 7.1 Surround), then this function returns an empty set.

◆ octagonal()

static AudioChannelSet juce::AudioChannelSet::octagonal ( )
static

Creates a set for octagonal surround setup (left, right, leftSurround, rightSurround, centre, centreSurround, wideLeft, wideRight).

Is equivalent to: n/a (VST), n/a (AAX), kAudioChannelLayoutTag_Octagonal (CoreAudio)

◆ operator!=()

bool juce::AudioChannelSet::operator!= ( const AudioChannelSet ) const
noexcept

◆ operator<()

bool juce::AudioChannelSet::operator< ( const AudioChannelSet ) const
noexcept

◆ operator==()

bool juce::AudioChannelSet::operator== ( const AudioChannelSet ) const
noexcept

◆ pentagonal()

static AudioChannelSet juce::AudioChannelSet::pentagonal ( )
static

Creates a set for pentagonal surround setup (left, right, centre, leftSurroundRear, rightSurroundRear).

Is equivalent to: n/a (VST), n/a (AAX), kAudioChannelLayoutTag_Pentagonal (CoreAudio)

◆ quadraphonic()

static AudioChannelSet juce::AudioChannelSet::quadraphonic ( )
static

Creates a set for quadraphonic surround setup (left, right, leftSurround, rightSurround)

Is equivalent to: k40Music (VST), AAX_eStemFormat_Quad (AAX), kAudioChannelLayoutTag_Quadraphonic (CoreAudio)

This format is referred to as "Quadraphonic" in Logic Pro. This format is referred to as "Quadro" in Cubase. This format is referred to as "Quad" in Pro Tools.

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

◆ removeChannel()

void juce::AudioChannelSet::removeChannel ( ChannelType  newChannelType)

Removes a channel from the set.

◆ size()

int juce::AudioChannelSet::size ( ) const
noexcept

Returns the number of channels in the set.

◆ stereo()

static AudioChannelSet juce::AudioChannelSet::stereo ( )
static

Creates a set containing a stereo set (left, right).

Is equivalent to: kStereo (VST), AAX_eStemFormat_Stereo (AAX), kAudioChannelLayoutTag_Stereo (CoreAudio)

Referenced by juce::SpeakerMappings::channelSetToVstArrangementType(), and juce::SpeakerMappings::vstArrangementTypeToChannelSet().

Member Data Documentation

◆ channels


The documentation for this class was generated from the following file: