JUCE: ARARenderer Class Reference

JUCE

Public Types | Public Member Functions | List of all members
ARARenderer Class Referenceabstract
juce_audio_processors » utilities

Base class for a renderer fulfilling either the ARAPlaybackRenderer or the ARAEditorRenderer role. More...

`#include <juce_ARAPlugInInstanceRoles.h>`

Inheritance diagram for ARARenderer:

## Public Types
enum class | AlwaysNonRealtime { no , yes }

## Public Member Functions
virtual | ~ARARenderer ()=default
virtual void | prepareToPlay (double sampleRate, int maximumSamplesPerBlock, int numChannels, AudioProcessor::ProcessingPrecision precision, AlwaysNonRealtime alwaysNonRealtime=AlwaysNonRealtime::no)
| Initialises the renderer for playback. More...
virtual void | releaseResources ()
| Frees render resources allocated in prepareToPlay(). More...
virtual void | reset ()
| Resets the internal state variables of the renderer. More...
virtual bool | processBlock (AudioBuffer< float > &buffer, AudioProcessor::Realtime realtime, const AudioPlayHead::PositionInfo &positionInfo) noexcept=0
| Renders the output into the given buffer. More...
virtual bool | processBlock (AudioBuffer< double > &buffer, AudioProcessor::Realtime realtime, const AudioPlayHead::PositionInfo &positionInfo) noexcept
| Renders the output into the given buffer. More...

## Detailed Description

Base class for a renderer fulfilling either the ARAPlaybackRenderer or the ARAEditorRenderer role.

Instances of either subclass are constructed by the DocumentController.

## Member Enumeration Documentation

## ◆ AlwaysNonRealtime

enum class ARARenderer::AlwaysNonRealtime
| strong

Enumerator
no |
yes |

## Constructor & Destructor Documentation

## ◆ ~ARARenderer()

virtual ARARenderer::~ARARenderer | ( |  | ) |
| virtualdefault

## Member Function Documentation

## ◆ prepareToPlay()

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

Initialises the renderer for playback.

Parameters

  sampleRate | The sample rate that will be used for the data that is sent to the renderer
  maximumSamplesPerBlock | The maximum number of samples that will be in the blocks sent to process() method
  numChannels | The number of channels that the process() method will be expected to handle
  precision | This should be the same as the result of getProcessingPrecision() for the enclosing AudioProcessor
  alwaysNonRealtime | yes if this renderer is never used in realtime (e.g. if providing data for views only)

References ignoreUnused(), and gl::precision.

## ◆ releaseResources()

virtual void ARARenderer::releaseResources | ( |  | ) |
| virtual

Frees render resources allocated in prepareToPlay().

## ◆ reset()

virtual void ARARenderer::reset | ( |  | ) |
| virtual

Resets the internal state variables of the renderer.

## ◆ processBlock() [1/2]

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

Renders the output into the given buffer.

Returns true if rendering executed without error, false otherwise.

Parameters

  buffer | The output buffer for the rendering. ARAPlaybackRenderers will replace the sample data, while ARAEditorRenderer will add to it.
  realtime | Indicates 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.
  positionInfo | Current 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.

Implemented in ARAEditorRenderer, ARAPlaybackRenderer, ARAPlaybackRenderer, and ARAEditorRenderer.

## ◆ processBlock() [2/2]

virtual bool 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

  buffer | The output buffer for the rendering. ARAPlaybackRenderers will replace the sample data, while ARAEditorRenderer will add to it.
  realtime | Indicates 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.
  positionInfo | Current 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 in ARAPlaybackRenderer, and ARAEditorRenderer.

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

- juce_ARAPlugInInstanceRoles.h