JUCE  v6.1.6 (6.0.8-1114)
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
juce::AudioData Class Reference

This class a container which holds all the classes pertaining to the AudioData::Pointer audio sample format class. More...

#include <juce_AudioDataConverters.h>

Classes

struct  ChannelData
 
struct  ChannelDataSubtypes
 
struct  ChannelDataSubtypes< IsInterleaved, IsConst, DataFormat, Endianness >
 
struct  ChannelDataSubtypes< IsInterleaved, IsConst, Format< DataFormat, Endianness > >
 
class  Converter
 A base class for objects that are used to convert between two different sample formats. More...
 
class  ConverterInstance
 A class that converts between two templated AudioData::Pointer types, and which implements the AudioData::Converter interface. More...
 
struct  Format
 A struct that contains a SampleFormat and Endianness to be used with the source and destination types when calling the interleaveSamples() and deinterleaveSamples() helpers. More...
 
class  Pointer
 Used as a template parameter for AudioData::Pointer. More...
 

Public Types

template<typename... Format>
using InterleavedDest = ChannelData< true, false, Format... >
 A sequence of interleaved samples used as the destination for the interleaveSamples() method. More...
 
template<typename... Format>
using InterleavedSource = ChannelData< true, true, Format... >
 A sequence of interleaved samples used as the source for the deinterleaveSamples() method. More...
 
template<typename... Format>
using NonInterleavedDest = ChannelData< false, false, Format... >
 A sequence of non-interleaved samples used as the destination for the deinterleaveSamples() method. More...
 
template<typename... Format>
using NonInterleavedSource = ChannelData< false, true, Format... >
 A sequence of non-interleaved samples used as the source for the interleaveSamples() method. More...
 

Static Public Member Functions

template<typename... SourceFormat, typename... DestFormat>
static void deinterleaveSamples (InterleavedSource< SourceFormat... > source, NonInterleavedDest< DestFormat... > dest, int numSamples)
 A helper function for converting a sequence of samples from an interleaved source to a non-interleaved destination. More...
 
template<typename... SourceFormat, typename... DestFormat>
static void interleaveSamples (NonInterleavedSource< SourceFormat... > source, InterleavedDest< DestFormat... > dest, int numSamples)
 A helper function for converting a sequence of samples from a non-interleaved source to an interleaved destination. More...
 

Detailed Description

This class a container which holds all the classes pertaining to the AudioData::Pointer audio sample format class.

See also
AudioData::Pointer.

@tags{Audio}

Member Typedef Documentation

◆ InterleavedDest

template<typename... Format>
using juce::AudioData::InterleavedDest = ChannelData<true, false, Format...>

A sequence of interleaved samples used as the destination for the interleaveSamples() method.

◆ InterleavedSource

template<typename... Format>
using juce::AudioData::InterleavedSource = ChannelData<true, true, Format...>

A sequence of interleaved samples used as the source for the deinterleaveSamples() method.

◆ NonInterleavedDest

template<typename... Format>
using juce::AudioData::NonInterleavedDest = ChannelData<false, false, Format...>

A sequence of non-interleaved samples used as the destination for the deinterleaveSamples() method.

◆ NonInterleavedSource

template<typename... Format>
using juce::AudioData::NonInterleavedSource = ChannelData<false, true, Format...>

A sequence of non-interleaved samples used as the source for the interleaveSamples() method.

Member Function Documentation

◆ deinterleaveSamples()

template<typename... SourceFormat, typename... DestFormat>
static void juce::AudioData::deinterleaveSamples ( InterleavedSource< SourceFormat... >  source,
NonInterleavedDest< DestFormat... >  dest,
int  numSamples 
)
inlinestatic

A helper function for converting a sequence of samples from an interleaved source to a non-interleaved destination.

When calling this method you need to specify the source and destination data format and endianness from the AudioData SampleFormat and Endianness types and provide the data and number of channels for each. For example, to convert a floating-point stream of big endian samples to an non-interleaved, native endian stream of 16-bit integer samples you would do the following:

using SourceFormat = AudioData::Format<AudioData::Float32, AudioData::BigEndian>;
using DestFormat = AudioData::Format<AudioData::Int16, AudioData::NativeEndian>;
AudioData::deinterleaveSamples (AudioData::InterleavedSource<SourceFormat> { sourceData, numSourceChannels },
AudioData::NonInterleavedDest<DestFormat> { destData, numDestChannels },
numSamples);

References juce::addBytesToPointer(), juce::AudioData::ChannelData< IsInterleaved, IsConst, Format >::channels, juce::AudioData::ChannelData< IsInterleaved, IsConst, Format >::data, and juce::gl::source.

◆ interleaveSamples()

template<typename... SourceFormat, typename... DestFormat>
static void juce::AudioData::interleaveSamples ( NonInterleavedSource< SourceFormat... >  source,
InterleavedDest< DestFormat... >  dest,
int  numSamples 
)
inlinestatic

A helper function for converting a sequence of samples from a non-interleaved source to an interleaved destination.

When calling this method you need to specify the source and destination data format and endianness from the AudioData SampleFormat and Endianness types and provide the data and number of channels for each. For example, to convert a floating-point stream of big endian samples to an interleaved, native endian stream of 16-bit integer samples you would do the following:

using SourceFormat = AudioData::Format<AudioData::Float32, AudioData::BigEndian>;
using DestFormat = AudioData::Format<AudioData::Int16, AudioData::NativeEndian>;
AudioData::interleaveSamples (AudioData::NonInterleavedSource<SourceFormat> { sourceData, numSourceChannels },
AudioData::InterleavedDest<DestFormat> { destData, numDestChannels },
numSamples);

References juce::addBytesToPointer(), juce::AudioData::ChannelData< IsInterleaved, IsConst, Format >::channels, juce::AudioData::ChannelData< IsInterleaved, IsConst, Format >::data, and juce::gl::source.


The documentation for this class was generated from the following file:
juce::AudioData::deinterleaveSamples
static void deinterleaveSamples(InterleavedSource< SourceFormat... > source, NonInterleavedDest< DestFormat... > dest, int numSamples)
A helper function for converting a sequence of samples from an interleaved source to a non-interleave...
Definition: juce_AudioDataConverters.h:764
juce::AudioData::interleaveSamples
static void interleaveSamples(NonInterleavedSource< SourceFormat... > source, InterleavedDest< DestFormat... > dest, int numSamples)
A helper function for converting a sequence of samples from a non-interleaved source to an interleave...
Definition: juce_AudioDataConverters.h:720