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

Base class for a renderer fulfilling the ARAPlaybackRenderer role as described in the ARA SDK. More...

#include <juce_ARAPlugInInstanceRoles.h>

Inheritance diagram for juce::ARAPlaybackRenderer:
Collaboration diagram for juce::ARAPlaybackRenderer:

Public Types

enum class  AlwaysNonRealtime {
  no ,
  yes
}
 

Public Member Functions

template<typename PlaybackRegion_t = ARAPlaybackRegion>
std::vector< PlaybackRegion_t * > const & getPlaybackRegions () const noexcept
 Returns the PlaybackRegions.
 
virtual void prepareToPlay (double sampleRate, int maximumSamplesPerBlock, int numChannels, AudioProcessor::ProcessingPrecision precision, AlwaysNonRealtime alwaysNonRealtime=AlwaysNonRealtime::no)
 Initialises the renderer for playback.
 
virtual bool processBlock (AudioBuffer< double > &buffer, AudioProcessor::Realtime realtime, const AudioPlayHead::PositionInfo &positionInfo) noexcept
 Renders the output into the given buffer.
 
bool processBlock (AudioBuffer< float > &buffer, AudioProcessor::Realtime realtime, const AudioPlayHead::PositionInfo &positionInfo) noexcept override
 Renders the output into the given buffer.
 
virtual bool processBlock (AudioBuffer< float > &buffer, AudioProcessor::Realtime realtime, const AudioPlayHead::PositionInfo &positionInfo) noexcept=0
 Renders the output into the given buffer.
 
virtual void releaseResources ()
 Frees render resources allocated in prepareToPlay().
 
virtual void reset ()
 Resets the internal state variables of the renderer.
 

Detailed Description

Base class for a renderer fulfilling the ARAPlaybackRenderer role as described in the ARA SDK.

Instances of this class are constructed by the DocumentController. If you are subclassing ARAPlaybackRenderer, make sure to call the base class implementation of any overridden function, except for processBlock.

@tags{ARA}

Member Enumeration Documentation

◆ AlwaysNonRealtime

enum class juce::ARARenderer::AlwaysNonRealtime
stronginherited
Enumerator
no 
yes 

Member Function Documentation

◆ getPlaybackRegions()

template<typename PlaybackRegion_t = ARAPlaybackRegion>
std::vector< PlaybackRegion_t * > const & juce::ARAPlaybackRenderer::getPlaybackRegions ( ) const
inlinenoexcept

Returns the PlaybackRegions.

Template Parameters
PlaybackRegion_t
Returns

◆ prepareToPlay()

virtual void juce::ARARenderer::prepareToPlay ( double  sampleRate,
int  maximumSamplesPerBlock,
int  numChannels,
AudioProcessor::ProcessingPrecision  precision,
AlwaysNonRealtime  alwaysNonRealtime = AlwaysNonRealtime::no 
)
virtualinherited

Initialises the renderer for playback.

Parameters
sampleRateThe sample rate that will be used for the data that is sent to the renderer
maximumSamplesPerBlockThe maximum number of samples that will be in the blocks sent to process() method
numChannelsThe number of channels that the process() method will be expected to handle
precisionThis should be the same as the result of getProcessingPrecision() for the enclosing AudioProcessor
alwaysNonRealtimeyes if this renderer is never used in realtime (e.g. if providing data for views only)

◆ processBlock() [1/3]

virtual bool juce::ARARenderer::processBlock ( AudioBuffer< double > &  buffer,
AudioProcessor::Realtime  realtime,
const AudioPlayHead::PositionInfo positionInfo 
)
virtualnoexcept

Renders the output into the given buffer.

Returns true if rendering executed without error, false otherwise.

Parameters
bufferThe output buffer for the rendering. ARAPlaybackRenderers will replace the sample data, while ARAEditorRenderer will add to it.
realtimeIndicates whether the call is executed under real time constraints. The value of this parameter may change from one call to the next, and if the value is yes, the rendering may fail if the required samples cannot be obtained in time.
positionInfoCurrent song position, playback state and playback loop location. There should be no need to access the bpm, timeSig and ppqPosition members in any ARA renderer since ARA provides that information with random access in its model graph.

Returns false if non-ARA fallback rendering is required and true otherwise.

Reimplemented from juce::ARARenderer.

◆ processBlock() [2/3]

bool juce::ARAPlaybackRenderer::processBlock ( AudioBuffer< float > &  buffer,
AudioProcessor::Realtime  realtime,
const AudioPlayHead::PositionInfo positionInfo 
)
overridevirtualnoexcept

Renders the output into the given buffer.

Returns true if rendering executed without error, false otherwise.

Parameters
bufferThe output buffer for the rendering. ARAPlaybackRenderers will replace the sample data, while ARAEditorRenderer will add to it.
realtimeIndicates whether the call is executed under real time constraints. The value of this parameter may change from one call to the next, and if the value is yes, the rendering may fail if the required samples cannot be obtained in time.
positionInfoCurrent song position, playback state and playback loop location. There should be no need to access the bpm, timeSig and ppqPosition members in any ARA renderer since ARA provides that information with random access in its model graph.

Returns false if non-ARA fallback rendering is required and true otherwise.

Implements juce::ARARenderer.

◆ processBlock() [3/3]

virtual bool juce::ARARenderer::processBlock ( AudioBuffer< float > &  buffer,
AudioProcessor::Realtime  realtime,
const AudioPlayHead::PositionInfo positionInfo 
)
virtualnoexcept

Renders the output into the given buffer.

Returns true if rendering executed without error, false otherwise.

Parameters
bufferThe output buffer for the rendering. ARAPlaybackRenderers will replace the sample data, while ARAEditorRenderer will add to it.
realtimeIndicates whether the call is executed under real time constraints. The value of this parameter may change from one call to the next, and if the value is yes, the rendering may fail if the required samples cannot be obtained in time.
positionInfoCurrent song position, playback state and playback loop location. There should be no need to access the bpm, timeSig and ppqPosition members in any ARA renderer since ARA provides that information with random access in its model graph.

Returns false if non-ARA fallback rendering is required and true otherwise.

Implements juce::ARARenderer.

◆ releaseResources()

virtual void juce::ARARenderer::releaseResources ( )
inlinevirtualinherited

Frees render resources allocated in prepareToPlay().

◆ reset()

virtual void juce::ARARenderer::reset ( )
inlinevirtualinherited

Resets the internal state variables of the renderer.


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