tracktion-engine 3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications

« « « Anklang Documentation
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
tracktion::engine::EditPlaybackContext Class Reference

Classes

struct  ContextSyncroniser
 
struct  NodePlaybackContext
 
struct  RealtimePriorityDisabler
 Used to temporarily reduce the process priority if a long operation like a file save is taking place. More...
 
struct  ScopedDeviceListReleaser
 Releases and then optionally reallocates the context's device list safely. More...
 

Public Member Functions

 EditPlaybackContext (TransportControl &)
 
void removeInstanceForDevice (InputDevice &)
 
void addWaveInputDeviceInstance (InputDevice &)
 Note this doesn't check for device enablement.
 
void addMidiInputDeviceInstance (InputDevice &)
 
void clearNodes ()
 
void createPlayAudioNodes (TimePosition startTime)
 
void createPlayAudioNodesIfNeeded (TimePosition startTime)
 
void reallocate ()
 
bool isPlaybackGraphAllocated () const
 Returns true if a playback graph is currently allocated.
 
void prepareForPlaying (TimePosition startTime)
 
void prepareForRecording (TimePosition startTime, TimePosition punchIn)
 
void syncToContext (EditPlaybackContext *contextToSyncTo, TimePosition previousBarTime, TimeDuration syncInterval)
 
tl::expected< Clip::Array, juce::StringstopRecording (InputDeviceInstance &, bool discardRecordings)
 
tl::expected< Clip::Array, juce::StringstopRecording (TimePosition unloopedEnd, bool discardRecordings)
 
juce::Result applyRetrospectiveRecord (juce::Array< Clip * > *clipsCreated=nullptr, bool armedOnly=false)
 
juce::Array< InputDeviceInstance * > getAllInputs ()
 
InputDeviceInstancegetInputFor (InputDevice *) const
 
OutputDeviceInstancegetOutputFor (OutputDevice *) const
 
bool isPlaying () const
 
bool isLooping () const
 
bool isDragging () const
 
TimePosition getPosition () const
 
TimePosition getUnloopedPosition () const
 
TimeRange getLoopTimes () const
 
int getLatencySamples () const
 Returns the overall latency of the currently prepared graph.
 
TimePosition getAudibleTimelineTime ()
 
double getSampleRate () const
 
void updateNumCPUs ()
 
void setSpeedCompensation (double plusOrMinus)
 This will increase/decrease playback speed by resampling, pitching the output up or down.
 
void setTempoAdjustment (double plusOrMinusProportion)
 This will increase/decrease playback speed by changing the tempo, maintaining pitch where possible.
 
void postPosition (TimePosition positionToJumpTo, std::optional< TimePosition > whenToJump={})
 Posts a transport position change.
 
std::optional< TimePositiongetPendingPositionChange () const
 Returns a pending position change if there is one.
 
void play ()
 
void stop ()
 
std::optional< SyncPointgetSyncPoint () const
 Returns the last reference sample position and the edit time and beat that it corresponded to.
 
TimePosition globalStreamTimeToEditTime (double) const
 
TimePosition globalStreamTimeToEditTimeUnlooped (double) const
 
void resyncToGlobalStreamTime (juce::Range< double >, double sampleRate)
 
tracktion::graph::PlayHeadgetNodePlayHead () const
 
void blockUntilSyncPointChange ()
 
int getNumActivelyRecordingDevices () const
 
void incrementNumActivelyRecordingDevices ()
 
void decrementNumActivelyRecordingDevices ()
 

Static Public Member Functions

static bool shouldAddAntiDenormalisationNoise (Engine &)
 
static void setAddAntiDenormalisationNoise (Engine &, bool)
 
static void setThreadPoolStrategy (int)
 
static int getThreadPoolStrategy ()
 
static void enablePooledMemory (bool)
 Enables reusing of audio buffers during graph processing which may reduce the memory use at the cost of some additional overhead.
 
static void enableNodeMemorySharing (bool)
 Enables reusing of audio buffers during graph processing which may reduce the memory use at the cost of some additional overhead.
 
static void enableAudioWorkgroup (bool)
 Enables using AudioWorkgroups.
 

Public Attributes

Editedit
 
TransportControltransport
 
LevelMeasurer masterLevels
 
MidiNoteDispatcher midiDispatcher
 

Friends

class DeviceManager
 

Detailed Description

Definition at line 16 of file tracktion_EditPlaybackContext.h.

Constructor & Destructor Documentation

◆ EditPlaybackContext()

tracktion::engine::EditPlaybackContext::EditPlaybackContext ( TransportControl tc)

Definition at line 469 of file tracktion_EditPlaybackContext.cpp.

◆ ~EditPlaybackContext()

tracktion::engine::EditPlaybackContext::~EditPlaybackContext ( )

Definition at line 496 of file tracktion_EditPlaybackContext.cpp.

Member Function Documentation

◆ addMidiInputDeviceInstance()

void tracktion::engine::EditPlaybackContext::addMidiInputDeviceInstance ( InputDevice device)

Definition at line 585 of file tracktion_EditPlaybackContext.cpp.

◆ addWaveInputDeviceInstance()

void tracktion::engine::EditPlaybackContext::addWaveInputDeviceInstance ( InputDevice device)

Note this doesn't check for device enablement.

Definition at line 577 of file tracktion_EditPlaybackContext.cpp.

◆ applyRetrospectiveRecord()

juce::Result tracktion::engine::EditPlaybackContext::applyRetrospectiveRecord ( juce::Array< Clip * > *  clipsCreated = nullptr,
bool  armedOnly = false 
)

Definition at line 827 of file tracktion_EditPlaybackContext.cpp.

◆ blockUntilSyncPointChange()

void tracktion::engine::EditPlaybackContext::blockUntilSyncPointChange ( )

Definition at line 1010 of file tracktion_EditPlaybackContext.cpp.

◆ clearNodes()

void tracktion::engine::EditPlaybackContext::clearNodes ( )

Definition at line 593 of file tracktion_EditPlaybackContext.cpp.

◆ createPlayAudioNodes()

void tracktion::engine::EditPlaybackContext::createPlayAudioNodes ( TimePosition  startTime)

Definition at line 653 of file tracktion_EditPlaybackContext.cpp.

◆ createPlayAudioNodesIfNeeded()

void tracktion::engine::EditPlaybackContext::createPlayAudioNodesIfNeeded ( TimePosition  startTime)

Definition at line 659 of file tracktion_EditPlaybackContext.cpp.

◆ decrementNumActivelyRecordingDevices()

void tracktion::engine::EditPlaybackContext::decrementNumActivelyRecordingDevices ( )

Definition at line 1219 of file tracktion_EditPlaybackContext.cpp.

◆ enableAudioWorkgroup()

void tracktion::engine::EditPlaybackContext::enableAudioWorkgroup ( bool  enable)
static

Enables using AudioWorkgroups.

Currently experimental and only on macOS.

Definition at line 1204 of file tracktion_EditPlaybackContext.cpp.

◆ enableNodeMemorySharing()

void tracktion::engine::EditPlaybackContext::enableNodeMemorySharing ( bool  enable)
static

Enables reusing of audio buffers during graph processing which may reduce the memory use at the cost of some additional overhead.

N.B. This is different from enablePooledMemory.

Definition at line 1199 of file tracktion_EditPlaybackContext.cpp.

◆ enablePooledMemory()

void tracktion::engine::EditPlaybackContext::enablePooledMemory ( bool  enable)
static

Enables reusing of audio buffers during graph processing which may reduce the memory use at the cost of some additional overhead.

Definition at line 1194 of file tracktion_EditPlaybackContext.cpp.

◆ getAllInputs()

juce::Array< InputDeviceInstance * > tracktion::engine::EditPlaybackContext::getAllInputs ( )

Definition at line 878 of file tracktion_EditPlaybackContext.cpp.

◆ getAudibleTimelineTime()

TimePosition tracktion::engine::EditPlaybackContext::getAudibleTimelineTime ( )

Definition at line 1074 of file tracktion_EditPlaybackContext.cpp.

◆ getInputFor()

InputDeviceInstance * tracktion::engine::EditPlaybackContext::getInputFor ( InputDevice d) const

Definition at line 936 of file tracktion_EditPlaybackContext.cpp.

◆ getLatencySamples()

int tracktion::engine::EditPlaybackContext::getLatencySamples ( ) const

Returns the overall latency of the currently prepared graph.

Definition at line 1068 of file tracktion_EditPlaybackContext.cpp.

◆ getLoopTimes()

TimeRange tracktion::engine::EditPlaybackContext::getLoopTimes ( ) const

Definition at line 1062 of file tracktion_EditPlaybackContext.cpp.

◆ getNodePlayHead()

tracktion::graph::PlayHead * tracktion::engine::EditPlaybackContext::getNodePlayHead ( ) const

Definition at line 1003 of file tracktion_EditPlaybackContext.cpp.

◆ getNumActivelyRecordingDevices()

int tracktion::engine::EditPlaybackContext::getNumActivelyRecordingDevices ( ) const

Definition at line 1209 of file tracktion_EditPlaybackContext.cpp.

◆ getOutputFor()

OutputDeviceInstance * tracktion::engine::EditPlaybackContext::getOutputFor ( OutputDevice d) const

Definition at line 951 of file tracktion_EditPlaybackContext.cpp.

◆ getPendingPositionChange()

std::optional< TimePosition > tracktion::engine::EditPlaybackContext::getPendingPositionChange ( ) const

Returns a pending position change if there is one.

Definition at line 1115 of file tracktion_EditPlaybackContext.cpp.

◆ getPosition()

TimePosition tracktion::engine::EditPlaybackContext::getPosition ( ) const

Definition at line 1050 of file tracktion_EditPlaybackContext.cpp.

◆ getSampleRate()

double tracktion::engine::EditPlaybackContext::getSampleRate ( ) const

Definition at line 1080 of file tracktion_EditPlaybackContext.cpp.

◆ getSyncPoint()

std::optional< SyncPoint > tracktion::engine::EditPlaybackContext::getSyncPoint ( ) const

Returns the last reference sample position and the edit time and beat that it corresponded to.

Definition at line 1135 of file tracktion_EditPlaybackContext.cpp.

◆ getThreadPoolStrategy()

int tracktion::engine::EditPlaybackContext::getThreadPoolStrategy ( )
static

◆ getUnloopedPosition()

TimePosition tracktion::engine::EditPlaybackContext::getUnloopedPosition ( ) const

Definition at line 1056 of file tracktion_EditPlaybackContext.cpp.

◆ globalStreamTimeToEditTime()

TimePosition tracktion::engine::EditPlaybackContext::globalStreamTimeToEditTime ( double  globalStreamTime) const

Definition at line 1143 of file tracktion_EditPlaybackContext.cpp.

◆ globalStreamTimeToEditTimeUnlooped()

TimePosition tracktion::engine::EditPlaybackContext::globalStreamTimeToEditTimeUnlooped ( double  globalStreamTime) const

Definition at line 1155 of file tracktion_EditPlaybackContext.cpp.

◆ incrementNumActivelyRecordingDevices()

void tracktion::engine::EditPlaybackContext::incrementNumActivelyRecordingDevices ( )

Definition at line 1214 of file tracktion_EditPlaybackContext.cpp.

◆ isDragging()

bool tracktion::engine::EditPlaybackContext::isDragging ( ) const

Definition at line 1045 of file tracktion_EditPlaybackContext.cpp.

◆ isLooping()

bool tracktion::engine::EditPlaybackContext::isLooping ( ) const

Definition at line 1040 of file tracktion_EditPlaybackContext.cpp.

◆ isPlaybackGraphAllocated()

bool tracktion::engine::EditPlaybackContext::isPlaybackGraphAllocated ( ) const

Returns true if a playback graph is currently allocated.

Definition at line 34 of file tracktion_EditPlaybackContext.h.

◆ isPlaying()

bool tracktion::engine::EditPlaybackContext::isPlaying ( ) const

Definition at line 1034 of file tracktion_EditPlaybackContext.cpp.

◆ play()

void tracktion::engine::EditPlaybackContext::play ( )

Definition at line 1123 of file tracktion_EditPlaybackContext.cpp.

◆ postPosition()

void tracktion::engine::EditPlaybackContext::postPosition ( TimePosition  positionToJumpTo,
std::optional< TimePosition whenToJump = {} 
)

Posts a transport position change.

Using the second parameter it's possible to delay position changes in order to quantise them to some musical sense. Pending changes will be cancelled automatically if:

  • The transport is stopped
  • The playhead reaches the end of a loop position
  • The playhead passes the jump position
Parameters
positionToJumpToThe position to jump to
whenToJumpThe position the playhead should be at when performing the jump

Definition at line 1104 of file tracktion_EditPlaybackContext.cpp.

◆ prepareForPlaying()

void tracktion::engine::EditPlaybackContext::prepareForPlaying ( TimePosition  startTime)

Definition at line 766 of file tracktion_EditPlaybackContext.cpp.

◆ prepareForRecording()

void tracktion::engine::EditPlaybackContext::prepareForRecording ( TimePosition  startTime,
TimePosition  punchIn 
)

Definition at line 771 of file tracktion_EditPlaybackContext.cpp.

◆ reallocate()

void tracktion::engine::EditPlaybackContext::reallocate ( )

Definition at line 665 of file tracktion_EditPlaybackContext.cpp.

◆ removeInstanceForDevice()

void tracktion::engine::EditPlaybackContext::removeInstanceForDevice ( InputDevice device)

Definition at line 560 of file tracktion_EditPlaybackContext.cpp.

◆ resyncToGlobalStreamTime()

void tracktion::engine::EditPlaybackContext::resyncToGlobalStreamTime ( juce::Range< double globalStreamTime,
double  sampleRate 
)

Definition at line 1167 of file tracktion_EditPlaybackContext.cpp.

◆ setAddAntiDenormalisationNoise()

void tracktion::engine::EditPlaybackContext::setAddAntiDenormalisationNoise ( Engine e,
bool  b 
)
static

Definition at line 996 of file tracktion_EditPlaybackContext.cpp.

◆ setSpeedCompensation()

void tracktion::engine::EditPlaybackContext::setSpeedCompensation ( double  plusOrMinus)

This will increase/decrease playback speed by resampling, pitching the output up or down.

Definition at line 1092 of file tracktion_EditPlaybackContext.cpp.

◆ setTempoAdjustment()

void tracktion::engine::EditPlaybackContext::setTempoAdjustment ( double  plusOrMinusProportion)

This will increase/decrease playback speed by changing the tempo, maintaining pitch where possible.

Definition at line 1098 of file tracktion_EditPlaybackContext.cpp.

◆ setThreadPoolStrategy()

void tracktion::engine::EditPlaybackContext::setThreadPoolStrategy ( int  type)
static

◆ shouldAddAntiDenormalisationNoise()

bool tracktion::engine::EditPlaybackContext::shouldAddAntiDenormalisationNoise ( Engine e)
static

Definition at line 983 of file tracktion_EditPlaybackContext.cpp.

◆ stop()

void tracktion::engine::EditPlaybackContext::stop ( )

Definition at line 1129 of file tracktion_EditPlaybackContext.cpp.

◆ stopRecording() [1/2]

tl::expected< Clip::Array, juce::String > tracktion::engine::EditPlaybackContext::stopRecording ( InputDeviceInstance in,
bool  discardRecordings 
)

Definition at line 790 of file tracktion_EditPlaybackContext.cpp.

◆ stopRecording() [2/2]

tl::expected< Clip::Array, juce::String > tracktion::engine::EditPlaybackContext::stopRecording ( TimePosition  unloopedEnd,
bool  discardRecordings 
)

Definition at line 803 of file tracktion_EditPlaybackContext.cpp.

◆ syncToContext()

void tracktion::engine::EditPlaybackContext::syncToContext ( EditPlaybackContext contextToSyncTo,
TimePosition  previousBarTime,
TimeDuration  syncInterval 
)

Definition at line 966 of file tracktion_EditPlaybackContext.cpp.

◆ updateNumCPUs()

void tracktion::engine::EditPlaybackContext::updateNumCPUs ( )

Definition at line 1086 of file tracktion_EditPlaybackContext.cpp.

Friends And Related Symbol Documentation

◆ DeviceManager

friend class DeviceManager
friend

Definition at line 190 of file tracktion_EditPlaybackContext.h.

Member Data Documentation

◆ edit

Edit& tracktion::engine::EditPlaybackContext::edit

Definition at line 51 of file tracktion_EditPlaybackContext.h.

◆ masterLevels

LevelMeasurer tracktion::engine::EditPlaybackContext::masterLevels

Definition at line 53 of file tracktion_EditPlaybackContext.h.

◆ midiDispatcher

MidiNoteDispatcher tracktion::engine::EditPlaybackContext::midiDispatcher

Definition at line 54 of file tracktion_EditPlaybackContext.h.

◆ transport

TransportControl& tracktion::engine::EditPlaybackContext::transport

Definition at line 52 of file tracktion_EditPlaybackContext.h.


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