TracktionEngine
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
tracktion::engine::Edit Class Reference

The Tracktion Edit class! More...

Inheritance diagram for tracktion::engine::Edit:

Classes

struct  GlobalMacros
 Holds the global Macros for the Edit. More...
 
struct  LoadContext
 A context passed to the Options struct which will get updated about load process and can be signaled to stop loading the Edit. More...
 
struct  LoadFinishedCallback
 Calls an editFinishedLoading method on OwnerType once after the Edit has finished loading. More...
 
struct  Metadata
 Metadata for the Edit. More...
 
struct  Options
 Determines how the Edit will be created. More...
 
struct  ScopedRenderStatus
 Temporarily removes an Edit from the device manager, optionally re-adding it on destruction. More...
 
struct  UndoTransactionInhibitor
 Disables the creation of a new transaction. More...
 
struct  WastedMidiMessagesListener
 Interface for classes that need to know about unused MIDI messages. More...
 

Public Types

enum  EditRole {
  playDisabled = 1 , proxiesDisabled = 2 , pluginsDisabled = 4 , forEditing = 0 ,
  forRendering = playDisabled , forExporting = playDisabled + proxiesDisabled + pluginsDisabled , forExamining = playDisabled + proxiesDisabled + pluginsDisabled
}
 Enum used to determine what an Edit is being used for. More...
 
enum class  CountIn {
  none = 0 , oneBar = 1 , twoBar = 2 , twoBeat = 3 ,
  oneBeat = 4
}
 An enum to determine the duration of the count in. More...
 
- Public Types inherited from tracktion::engine::Selectable
using WeakRef = juce::WeakReference< Selectable >
 

Public Member Functions

 Edit (Options)
 Creates an Edit from a set of Options. More...
 
 Edit (Engine &, juce::ValueTree, EditRole, LoadContext *, int numUndoLevelsToStore)
 Legacy Edit constructor, will be deprecated soon, use the other consturctor that takes an Options. More...
 
 ~Edit () override
 Destructor. More...
 
juce::String getName ()
 Returns the name of the Edit if a ProjectItem can be found for it. More...
 
void setProjectItemID (ProjectItemID)
 Sets the ProjectItemID of the Edit, this is also stored in the state. More...
 
ProjectItemID getProjectItemID () const noexcept
 Returns the ProjectItemID of the Edit. More...
 
EditRole getEditRole () const noexcept
 Returns the EditRole. More...
 
bool shouldPlay () const noexcept
 Returns true if this Edit should be played back (or false if it was just opened for inspection). More...
 
bool canRenderProxies () const noexcept
 Returns true if this Edit can render proxy files. More...
 
bool shouldLoadPlugins () const noexcept
 Returns true if this Edit can load Plugin[s]. More...
 
bool getIsPreviewEdit () const noexcept
 Returns true if this Edit is a temporary Edit for previewing files/clips etc. More...
 
void flushState ()
 Saves the plugin, automap and ARA states to the state ValueTree. More...
 
void flushPluginStateIfNeeded (Plugin &)
 Saves the specified plugin state to the state ValueTree. More...
 
juce::Time getTimeOfLastChange () const
 Returns the time the last change occurred. More...
 
void resetChangedStatus ()
 Resets the changed status so hasChangedSinceSaved returns false. More...
 
bool hasChangedSinceSaved () const
 Returns true if the Edit has changed since it was last saved. More...
 
bool isLoading () const
 Returns true if the Edit's not yet fully loaded. More...
 
EditInputDevicesgetEditInputDevices () noexcept
 Returns the EditInputDevices for the Edit. More...
 
InputDeviceInstancegetCurrentInstanceForInputDevice (InputDevice *) const
 Returns an InputDeviceInstance for a global InputDevice. More...
 
juce::Array< InputDeviceInstance * > getAllInputDevices () const
 Returns all the active InputDeviceInstance[s] in the Edit. More...
 
TransportControlgetTransport () const noexcept
 Returns the TransportControl which is used to stop/stop/position playback and recording. More...
 
EditPlaybackContextgetCurrentPlaybackContext () const
 Returns the active EditPlaybackContext which is what is attached to the DeviceManager. More...
 
ParameterChangeHandlergetParameterChangeHandler () noexcept
 Returns the ParameterChangeHandler for the Edit. More...
 
ParameterControlMappingsgetParameterControlMappings () noexcept
 Returns the ParameterControlMappings for the Edit. More...
 
AutomationRecordManagergetAutomationRecordManager () noexcept
 Returns the AutomationRecordManager for the Edit. More...
 
AbletonLinkgetAbletonLink () const noexcept
 Returns the AbletonLink object. More...
 
bool isRendering () const noexcept
 Returns true if the Edit is currently being rendered. More...
 
void initialiseAllPlugins ()
 Initialises all the plugins. More...
 
juce::String getSelectableDescription () override
 Retuns the description of this Selectable. More...
 
juce::UndoManager & getUndoManager () noexcept
 Returns the juce::UndoManager used for this Edit. More...
 
void undo ()
 Undoes the most recent changes made. More...
 
void redo ()
 Redoes the changes undone by the last undo. More...
 
void restartPlayback ()
 Use this to tell the play engine to rebuild the audio graph if the toplogy has changed. More...
 
TrackListgetTrackList ()
 Returns the TrackList for the Edit which contains all the top level tracks. More...
 
void visitAllTracksRecursive (std::function< bool(Track &)>) const
 Visits all tracks in the Edit with the given function. More...
 
void visitAllTopLevelTracks (std::function< bool(Track &)>) const
 Visits all top-level tracks (i.e. More...
 
void visitAllTracks (std::function< bool(Track &)>, bool recursive) const
 Visits all tracks in the Edit with the given function. More...
 
juce::ReferenceCountedObjectPtr< AudioTrackinsertNewAudioTrack (TrackInsertPoint, SelectionManager *)
 Inserts a new AudioTrack in the Edit. More...
 
juce::ReferenceCountedObjectPtr< FolderTrackinsertNewFolderTrack (TrackInsertPoint, SelectionManager *, bool asSubmix)
 Inserts a new FolderTrack in the Edit, optionally as a submix. More...
 
juce::ReferenceCountedObjectPtr< AutomationTrackinsertNewAutomationTrack (TrackInsertPoint, SelectionManager *)
 Inserts a new AutomationTrack in the Edit. More...
 
Track::Ptr insertNewTrack (TrackInsertPoint, const juce::Identifier &xmlType, SelectionManager *)
 Inserts a new Track with the given type in the Edit. More...
 
Track::Ptr insertTrack (TrackInsertPoint, juce::ValueTree, SelectionManager *)
 Inserts a new Track with the given state in the Edit. More...
 
Track::Ptr insertTrack (juce::ValueTree, juce::ValueTree parent, juce::ValueTree preceeding, SelectionManager *)
 Inserts a new Track with the given state in the Edit. More...
 
void moveTrack (Track::Ptr, TrackInsertPoint)
 Moves a track to a new position. More...
 
void deleteTrack (Track *)
 Deletes a Track. More...
 
void ensureNumberOfAudioTracks (int minimumNumTracks)
 Creates new tracks to ensure the minimum number. More...
 
void ensureArrangerTrack ()
 Creates an ArrangerTrack if there isn't currently one. More...
 
void ensureTempoTrack ()
 Creates a TempoTrack if there isn't currently one. More...
 
void ensureMarkerTrack ()
 Creates a MarkerTrack if there isn't currently one. More...
 
void ensureChordTrack ()
 Creates a ChordTrack if there isn't currently one. More...
 
void ensureMasterTrack ()
 Creates a ChordTrack if there isn't currently one. More...
 
ArrangerTrackgetArrangerTrack () const
 Returns the global ArrangerTrack. More...
 
MarkerTrackgetMarkerTrack () const
 Returns the global MarkerTrack. More...
 
TempoTrackgetTempoTrack () const
 Returns the global TempoTrack. More...
 
ChordTrackgetChordTrack () const
 Returns the global ChordTrack. More...
 
MasterTrackgetMasterTrack () const
 Returns the global MasterTrack. More...
 
bool areAnyTracksMuted () const
 Returns true if any tracks are muted. More...
 
bool areAnyTracksSolo () const
 Returns true if any tracks are soloed. More...
 
bool areAnyTracksSoloIsolate () const
 Returns true if any tracks are solo isolated. More...
 
void updateMuteSoloStatuses ()
 Updates all the tracks and external controller mute/solo statuses. More...
 
EditItemID createNewItemID () const
 Returns a new EditItemID to use for a new EditItem. More...
 
EditItemID createNewItemID (const std::vector< EditItemID > &idsToAvoid) const
 Returns a new EditItemID to use for a new EditItem, avoiding some IDs. More...
 
juce::Array< Clip * > findClipsInLinkGroup (juce::String linkGroupID) const
 Returns and Clip[s] with the given linkGroupID. More...
 
void updateMirroredPlugin (Plugin &)
 Adds this plugin to a list so mirrored Plugin[s] are updated asyncronously. More...
 
void sendMirrorUpdateToAllPlugins (Plugin &) const
 Syncronously updates all Plugins[s] mirroring this one. More...
 
void sendStartStopMessageToPlugins ()
 Calls Plugin::playStartedOrStopped to handle automation reacording. More...
 
PluginListgetMasterPluginList () const noexcept
 Returns the master PluginList. More...
 
void addModifierTimer (ModifierTimer &)
 Adds a ModifierTimer to be updated each block. More...
 
void removeModifierTimer (ModifierTimer &)
 Removes a ModifierTimer previously added. More...
 
void updateModifierTimers (TimePosition editTime, int numSamples) const
 Updates all the ModifierTimers with a given edit time and number of samples. More...
 
MacroParameterElementgetGlobalMacros () const
 Returns global MacroParameterElement. More...
 
void setLowLatencyMonitoring (bool enabled, const juce::Array< EditItemID > &plugins)
 Toggles low latency monitoring for a set of plugins. More...
 
bool getLowLatencyMonitoring () const noexcept
 Returns true if in low latency monitoring mode. More...
 
void setLowLatencyDisabledPlugins (const juce::Array< EditItemID > &plugins)
 First enables all currently disabled latency plugins and then disables the new set. More...
 
juce::Array< EditItemIDgetLowLatencyDisabledPlugins ()
 Returns the current set of diabled plugins. More...
 
RackTypeListgetRackList () const noexcept
 Returns the RackTypeList which contains all the RackTypes for the Edit. More...
 
TrackCompManagergetTrackCompManager () const noexcept
 Returns the TrackCompManager for the Edit. More...
 
juce::String getAuxBusName (int bus) const
 Returns the name of an aux bus. More...
 
void setAuxBusName (int bus, const juce::String &name)
 Sets the name of an aux bus. More...
 
juce::Array< AutomatableParameter * > getAllAutomatableParams (bool includeTrackParams) const
 Returns all automatiabel parameters in an Edit. More...
 
juce::File getVideoFile () const
 Returns the currently set video file. More...
 
void setVideoFile (const juce::File &, juce::String importDesc)
 Sets a video file to display. More...
 
TimePosition getNextTimeOfInterest (TimePosition afterThisTime)
 Finds the next marker or start/end of a clip after a certain time. More...
 
TimePosition getPreviousTimeOfInterest (TimePosition beforeThisTime)
 Finds the previous marker or start/end of a clip after a certain time. More...
 
PluginCachegetPluginCache () noexcept
 Returns the PluginCache which manages all active Plugin[s] for this Edit. More...
 
TimePosition getFirstClipTime () const
 Returns the time of first clip. More...
 
TimeDuration getLength () const
 Returns the end time of last clip. More...
 
VolumeAndPanPlugin::Ptr getMasterVolumePlugin () const
 Returns the master VolumeAndPanPlugin. More...
 
AutomatableParameter::Ptr getMasterSliderPosParameter () const
 Returns the master volume AutomatableParameter. More...
 
AutomatableParameter::Ptr getMasterPanParameter () const
 Returns the master pan AutomatableParameter. More...
 
void setMasterVolumeSliderPos (float)
 Sets the master volume level. More...
 
void setMasterPanPos (float)
 Returns the master pan position. More...
 
void pluginChanged (Plugin &) noexcept
 Plugins should call this when one of their parameters or state changes to mark the edit as unsaved. More...
 
TimecodeDisplayFormat getTimecodeFormat () const
 Returns the current TimecodeDisplayFormat. More...
 
void setTimecodeFormat (TimecodeDisplayFormat)
 Sets the TimecodeDisplayFormat to use. More...
 
void toggleTimecodeMode ()
 Toggles the TimecodeDisplayFormat through the available TimecodeType[s]. More...
 
void sendTempoOrPitchSequenceChangedUpdates ()
 Sends a message to all the clips to let them know the tempo or pitch sequence has changed. More...
 
MidiInputDevicegetCurrentMidiTimecodeSource () const
 Returns the MidiInputDevice being used as the MIDI timecode source. More...
 
void setCurrentMidiTimecodeSource (MidiInputDevice *newDevice)
 Sets the MidiInputDevice being to be used as the MIDI timecode source. More...
 
void enableTimecodeSync (bool)
 Toggles syncing to MIDI timecode. More...
 
bool isTimecodeSyncEnabled () const noexcept
 Returns true if syncing to MIDI timecode is enabled. More...
 
TimeDuration getTimecodeOffset () const noexcept
 Returns the offset to apply to MIDI timecode. More...
 
void setTimecodeOffset (TimeDuration newOffset)
 Sets the offset to apply to MIDI timecode. More...
 
bool isMidiTimecodeIgnoringHours () const
 Returns true if hours are ignored when syncing to MIDI timecode. More...
 
void setMidiTimecodeIgnoringHours (bool shouldIgnore)
 Sets whether hours are ignored when syncing to MIDI timecode. More...
 
MidiInputDevicegetCurrentMidiMachineControlSource () const
 Returns the MidiInputDevice being used as an MMC source. More...
 
void setCurrentMidiMachineControlSource (MidiInputDevice *)
 Sets the MidiInputDevice to be used as an MMC source. More...
 
MidiOutputDevicegetCurrentMidiMachineControlDest () const
 Returns the MidiInputDevice being used as an MMC destination. More...
 
void setCurrentMidiMachineControlDest (MidiOutputDevice *)
 Sets the MidiInputDevice to be used as an MMC destination. More...
 
void updateMidiTimecodeDevices ()
 Updates the MIDI timecode/MMC devices. More...
 
void setClickTrackRange (TimeRange) noexcept
 Sets a range for the click track to be audible within. More...
 
TimeRange getClickTrackRange () const noexcept
 Returns the range the click track will be audible within. More...
 
float getClickTrackVolume () const noexcept
 Returns the click track volume. More...
 
juce::String getClickTrackDevice () const
 Returns the name of the device being used as the click track output. More...
 
bool isClickTrackDevice (OutputDevice &) const
 Returns true if the given OutputDevice is being used as the click track output. More...
 
void setClickTrackOutput (const juce::String &deviceName)
 Sets the device to use as the click track output. More...
 
void setClickTrackVolume (float gain)
 Sets the volume of the click track. More...
 
void setCountInMode (CountIn)
 Sets the duration of the count in. More...
 
CountIn getCountInMode () const
 Returns the duration of the count in. More...
 
int getNumCountInBeats () const
 Returns the number of beats of the count in. More...
 
void sendSourceFileUpdate ()
 Sends a 'sourceMediaChanged' call to all the clips. More...
 
void markAsChanged ()
 Marks the edit as being significantly changed and should therefore be saved. More...
 
void invalidateStoredLength () noexcept
 Invalidates the stored length so the next call to getLength will update form the Edit contents. More...
 
void dispatchPendingUpdatesSynchronously ()
 If there's a change to send out to the listeners, do it now rather than waiting for the next timer message. More...
 
bool areAnyClipsUsingFile (const AudioFile &)
 Returns true if any clips are using this file. More...
 
void cancelAllProxyGeneratorJobs () const
 Stops all proxy generator jobs clips may be performing. More...
 
juce::File getTempDirectory (bool createIfNonExistent) const
 Returns the temp directory the Edit it using. More...
 
void setTempDirectory (const juce::File &)
 Sets the temp directory for the Edit to use. More...
 
Metadata getEditMetadata ()
 Returns the current Metadata for the Edit. More...
 
void setEditMetadata (Metadata)
 Sets the Metadata for the Edit. More...
 
juce::ValueTree getAutomapState () const
 Returns the ValueTree used as the Auotmap state. More...
 
MarkerManagergetMarkerManager () const noexcept
 Returns the MarkerManager. More...
 
void addWastedMidiMessagesListener (WastedMidiMessagesListener *)
 Add a WastedMidiMessagesListener to be notified of wasted MIDI messages. More...
 
void removeWastedMidiMessagesListener (WastedMidiMessagesListener *)
 Removes a previously added WastedMidiMessagesListener. More...
 
void warnOfWastedMidiMessages (InputDevice *, Track *)
 Triggers a callback to any registered WastedMidiMessagesListener[s]. More...
 
SharedLevelMeasurer::Ptr getPreviewLevelMeasurer ()
 Returns a previously set SharedLevelMeasurer. More...
 
void setPreviewLevelMeasurer (SharedLevelMeasurer::Ptr p)
 Sets a SharedLevelMeasurer to use. More...
 
- Public Member Functions inherited from tracktion::engine::Selectable
 Selectable ()
 
virtual ~Selectable ()
 
virtual void selectionStatusChanged (bool isNowSelected)
 Can be overridden to tell this object that it has just been selected or deselected. More...
 
virtual void changed ()
 This should be called to send a change notification to any SelectableListeners that are registered with this object. More...
 
virtual void selectableAboutToBeDeleted ()
 Called just before the selectable is about to be deleted so any subclasses should still be valid at this point. More...
 
void addSelectableListener (SelectableListener *)
 
void removeSelectableListener (SelectableListener *)
 
void cancelAnyPendingUpdates ()
 If changed() has been called, this will cancel any pending async change notificaions. More...
 
void deselect ()
 
void propertiesChanged ()
 
void notifyListenersOfDeletion ()
 
WeakRef getWeakRef ()
 

Static Public Member Functions

static TimeDuration getMaximumLength ()
 Returns the maximum length an Edit can be. More...
 
static TimeRange getMaximumEditTimeRange ()
 Returns the maximum length an Edit can be. More...
 
static TimePosition getMaximumEditEnd ()
 
static std::unique_ptr< EditcreateEditForPreviewingFile (Engine &, const juce::File &, const Edit *editToMatch, bool tryToMatchTempo, bool tryToMatchPitch, bool *couldMatchTempo, juce::ValueTree midiPreviewPlugin, juce::ValueTree midiDrumPreviewPlugin={}, bool forceMidiToDrums=false, Edit *editToUpdate={})
 Creates an Edit for previewing a file. More...
 
static std::unique_ptr< EditcreateEditForPreviewingPreset (Engine &engine, juce::ValueTree, const Edit *editToMatch, bool tryToMatchTempo, bool *couldMatchTempo, juce::ValueTree midiPreviewPlugin, juce::ValueTree midiDrumPreviewPlugin={}, bool forceMidiToDrums=false, Edit *editToUpdate={})
 Creates an Edit for previewing a preset. More...
 
static std::unique_ptr< EditcreateEditForPreviewingClip (Clip &)
 Creates an Edit for previewing a Clip. More...
 
static std::unique_ptr< EditcreateSingleTrackEdit (Engine &)
 Creates an Edit with a single AudioTrack. More...
 
static int getDefaultNumUndoLevels () noexcept
 Returns the default number of undo levels that should be used. More...
 
- Static Public Member Functions inherited from tracktion::engine::Selectable
static void initialise ()
 
static bool isSelectableValid (const Selectable *) noexcept
 checks whether this object has been deleted. More...
 

Public Attributes

Engineengine
 A reference to the Engine. More...
 
std::function< juce::File()> editFileRetriever
 This callback can be set to return the file for this Edit. More...
 
std::function< juce::File(const juce::String &)> filePathResolver
 This callback can be set to resolve file paths. More...
 
EditItemCache< TracktrackCache
 Quick way to find and iterate all Track[s] in the Edit. More...
 
EditItemCache< ClipclipCache
 Quick way to find and iterate all Clip[s] in the Edit. More...
 
TempoSequence tempoSequence
 The global TempoSequence of this Edit. More...
 
PitchSequence pitchSequence
 The global PitchSequence of this Edit. More...
 
juce::CachedValue< juce::String > lastSignificantChange
 The last time a change was made to the Edit. More...
 
juce::CachedValue< TimeDuration > masterFadeIn
 The duration in seconds of the fade in. More...
 
juce::CachedValue< TimeDuration > masterFadeOut
 The duration in seconds of the fade out. More...
 
juce::CachedValue< TimeDuration > timecodeOffset
 The duration in seconds of the timecode offset. More...
 
juce::CachedValue< TimeDuration > videoOffset
 The duration in seconds of the video offset. More...
 
juce::CachedValue< AudioFadeCurve::TypemasterFadeInType
 The curve type of the fade in. More...
 
juce::CachedValue< AudioFadeCurve::TypemasterFadeOutType
 The curve type of the fade out. More...
 
juce::CachedValue< bool > midiTimecodeSourceDeviceEnabled
 Whether a MIDI timecode source is enabled. More...
 
juce::CachedValue< bool > midiTimecodeIgnoringHours
 Whether the MIDI timecode source ignores hours. More...
 
juce::CachedValue< bool > videoMuted
 Whether the video source is muted. More...
 
juce::CachedValue< bool > clickTrackEnabled
 Whether the click track is enabled. More...
 
juce::CachedValue< bool > clickTrackEmphasiseBars
 Whether the click track should emphasise bars. More...
 
juce::CachedValue< bool > clickTrackRecordingOnly
 Whether the click track should be audible only when recording. More...
 
juce::CachedValue< bool > recordingPunchInOut
 Whether recoridng only happens within the in/out markers. More...
 
juce::CachedValue< bool > playInStopEnabled
 Whether the audio engine should run when playback is stopped. More...
 
juce::CachedValue< float > clickTrackGain
 The gain of the click track. More...
 
juce::CachedValue< ProjectItemIDvideoSource
 The ProjectItemID of the video source. More...
 
juce::ValueTree state { IDs::EDIT }
 The ValueTree of the Edit state. More...
 
juce::ValueTree inputDeviceState
 The ValueTree of the input device states. More...
 
std::unique_ptr< ARADocumentHolderaraDocument
 Holds the ARA state. More...
 
- Public Attributes inherited from tracktion::engine::Selectable
WeakRef::Master masterReference
 

Static Public Attributes

static constexpr double maximumLength = 48.0 * 60.0 * 60.0
 The maximum length an Edit can be. More...
 
static const int ticksPerQuarterNote = 960
 The number of ticks per quarter note. More...
 

Detailed Description

The Tracktion Edit class!

An Edit is the containing class for an arrangement that can be played back. It contains all the per-session objects such as tracks, tempo sequences, pitches, input devices, Racks, master plugins etc. and any per-Edit management objects such as UndoManager, PluginCache etc.

Most sub-objects such as Tracks, Clips etc. will all know which Edit they belong to by having a reference to this Edit.

To create an Edit to you need construct one with an Edit::Options instance supplying at least the Engine to use, the ValueTree state and a ProjectItemID to uniquely identify this Edit.

This is a high level overview of the Edit structure and the relevant objects. Note that this isn't an exhaustive list but should help you find the most relevant classes.

See also
EditFileOperations, tracktion_EditUtilities.h

Member Enumeration Documentation

◆ EditRole

Enum used to determine what an Edit is being used for.

Enumerator
playDisabled 

Determines if an EditPlaybackContext is created.

proxiesDisabled 

Determines if clips and create proxies.

pluginsDisabled 

Determines if plugins should be loaded.

forEditing 

Creates an Edit for normal use.

forRendering 

Creates an Edit for rendering, not output device playback.

forExporting 

Creates an Edit for exporting/archiving, not playback/rendering.

forExamining 

Creates an Edit for examining (listing source files etc).

◆ CountIn

An enum to determine the duration of the count in.

Enumerator
none 

No count in, play starts immidiately.

oneBar 

One bar count in.

twoBar 

Two bars count in.

twoBeat 

Two beats count in.

oneBeat 

One beat count in.

Constructor & Destructor Documentation

◆ Edit() [1/2]

tracktion::engine::Edit::Edit ( Options  )

Creates an Edit from a set of Options.

◆ Edit() [2/2]

tracktion::engine::Edit::Edit ( Engine ,
juce::ValueTree  ,
EditRole  ,
LoadContext ,
int  numUndoLevelsToStore 
)

Legacy Edit constructor, will be deprecated soon, use the other consturctor that takes an Options.

◆ ~Edit()

tracktion::engine::Edit::~Edit ( )
override

Destructor.

Member Function Documentation

◆ getName()

juce::String tracktion::engine::Edit::getName ( )

Returns the name of the Edit if a ProjectItem can be found for it.

Referenced by getSelectableDescription().

◆ setProjectItemID()

void tracktion::engine::Edit::setProjectItemID ( ProjectItemID  )

Sets the ProjectItemID of the Edit, this is also stored in the state.

◆ getProjectItemID()

ProjectItemID tracktion::engine::Edit::getProjectItemID ( ) const
noexcept

Returns the ProjectItemID of the Edit.

◆ getEditRole()

EditRole tracktion::engine::Edit::getEditRole ( ) const
noexcept

Returns the EditRole.

◆ shouldPlay()

bool tracktion::engine::Edit::shouldPlay ( ) const
noexcept

Returns true if this Edit should be played back (or false if it was just opened for inspection).

References playDisabled.

◆ canRenderProxies()

bool tracktion::engine::Edit::canRenderProxies ( ) const
noexcept

Returns true if this Edit can render proxy files.

References proxiesDisabled.

Referenced by tracktion::engine::AudioClipBase::canUseProxy().

◆ shouldLoadPlugins()

bool tracktion::engine::Edit::shouldLoadPlugins ( ) const
noexcept

Returns true if this Edit can load Plugin[s].

References pluginsDisabled.

◆ getIsPreviewEdit()

bool tracktion::engine::Edit::getIsPreviewEdit ( ) const
noexcept

Returns true if this Edit is a temporary Edit for previewing files/clips etc.

◆ getMaximumLength()

static TimeDuration tracktion::engine::Edit::getMaximumLength ( )
static

Returns the maximum length an Edit can be.

References maximumLength.

◆ getMaximumEditTimeRange()

static TimeRange tracktion::engine::Edit::getMaximumEditTimeRange ( )
static

Returns the maximum length an Edit can be.

References maximumLength.

Referenced by getMaximumEditEnd().

◆ getMaximumEditEnd()

static TimePosition tracktion::engine::Edit::getMaximumEditEnd ( )
static

◆ flushState()

void tracktion::engine::Edit::flushState ( )

Saves the plugin, automap and ARA states to the state ValueTree.

◆ flushPluginStateIfNeeded()

void tracktion::engine::Edit::flushPluginStateIfNeeded ( Plugin )

Saves the specified plugin state to the state ValueTree.

◆ getTimeOfLastChange()

juce::Time tracktion::engine::Edit::getTimeOfLastChange ( ) const

Returns the time the last change occurred.

If no modifications occurred since this object was initialised, this returns the Time the Edit was last saved.

◆ resetChangedStatus()

void tracktion::engine::Edit::resetChangedStatus ( )

Resets the changed status so hasChangedSinceSaved returns false.

◆ hasChangedSinceSaved()

bool tracktion::engine::Edit::hasChangedSinceSaved ( ) const

Returns true if the Edit has changed since it was last saved.

◆ isLoading()

bool tracktion::engine::Edit::isLoading ( ) const

Returns true if the Edit's not yet fully loaded.

Referenced by tracktion::engine::Edit::LoadFinishedCallback< OwnerType >::timerCallback().

◆ createEditForPreviewingFile()

static std::unique_ptr<Edit> tracktion::engine::Edit::createEditForPreviewingFile ( Engine ,
const juce::File &  ,
const Edit editToMatch,
bool  tryToMatchTempo,
bool  tryToMatchPitch,
bool *  couldMatchTempo,
juce::ValueTree  midiPreviewPlugin,
juce::ValueTree  midiDrumPreviewPlugin = {},
bool  forceMidiToDrums = false,
Edit editToUpdate = {} 
)
static

Creates an Edit for previewing a file.

◆ createEditForPreviewingPreset()

static std::unique_ptr<Edit> tracktion::engine::Edit::createEditForPreviewingPreset ( Engine engine,
juce::ValueTree  ,
const Edit editToMatch,
bool  tryToMatchTempo,
bool *  couldMatchTempo,
juce::ValueTree  midiPreviewPlugin,
juce::ValueTree  midiDrumPreviewPlugin = {},
bool  forceMidiToDrums = false,
Edit editToUpdate = {} 
)
static

Creates an Edit for previewing a preset.

◆ createEditForPreviewingClip()

static std::unique_ptr<Edit> tracktion::engine::Edit::createEditForPreviewingClip ( Clip )
static

Creates an Edit for previewing a Clip.

◆ createSingleTrackEdit()

static std::unique_ptr<Edit> tracktion::engine::Edit::createSingleTrackEdit ( Engine )
static

Creates an Edit with a single AudioTrack.

◆ getEditInputDevices()

EditInputDevices& tracktion::engine::Edit::getEditInputDevices ( )
noexcept

Returns the EditInputDevices for the Edit.

◆ getCurrentInstanceForInputDevice()

InputDeviceInstance* tracktion::engine::Edit::getCurrentInstanceForInputDevice ( InputDevice ) const

Returns an InputDeviceInstance for a global InputDevice.

◆ getAllInputDevices()

juce::Array<InputDeviceInstance*> tracktion::engine::Edit::getAllInputDevices ( ) const

Returns all the active InputDeviceInstance[s] in the Edit.

◆ getTransport()

TransportControl& tracktion::engine::Edit::getTransport ( ) const
noexcept

Returns the TransportControl which is used to stop/stop/position playback and recording.

◆ getCurrentPlaybackContext()

EditPlaybackContext* tracktion::engine::Edit::getCurrentPlaybackContext ( ) const

Returns the active EditPlaybackContext which is what is attached to the DeviceManager.

◆ getParameterChangeHandler()

ParameterChangeHandler& tracktion::engine::Edit::getParameterChangeHandler ( )
noexcept

Returns the ParameterChangeHandler for the Edit.

◆ getParameterControlMappings()

ParameterControlMappings& tracktion::engine::Edit::getParameterControlMappings ( )
noexcept

Returns the ParameterControlMappings for the Edit.

◆ getAutomationRecordManager()

AutomationRecordManager& tracktion::engine::Edit::getAutomationRecordManager ( )
noexcept

Returns the AutomationRecordManager for the Edit.

Used to change automation read/write modes and start/stop automation recording.

◆ getAbletonLink()

AbletonLink& tracktion::engine::Edit::getAbletonLink ( ) const
noexcept

Returns the AbletonLink object.

Used to sync an Edit's playback with an AbletonLink session.

◆ isRendering()

bool tracktion::engine::Edit::isRendering ( ) const
noexcept

Returns true if the Edit is currently being rendered.

◆ initialiseAllPlugins()

void tracktion::engine::Edit::initialiseAllPlugins ( )

Initialises all the plugins.

Usually you'd call this once after loading an Edit.

◆ getSelectableDescription()

juce::String tracktion::engine::Edit::getSelectableDescription ( )
overridevirtual

Retuns the description of this Selectable.

Implements tracktion::engine::Selectable.

References getName().

◆ getUndoManager()

juce::UndoManager& tracktion::engine::Edit::getUndoManager ( )
noexcept

Returns the juce::UndoManager used for this Edit.

◆ undo()

void tracktion::engine::Edit::undo ( )

Undoes the most recent changes made.

◆ redo()

void tracktion::engine::Edit::redo ( )

Redoes the changes undone by the last undo.

◆ getDefaultNumUndoLevels()

static int tracktion::engine::Edit::getDefaultNumUndoLevels ( )
staticnoexcept

Returns the default number of undo levels that should be used.

Referenced by tracktion::engine::benchmark_utilities::loadEditFromValueTree().

◆ restartPlayback()

void tracktion::engine::Edit::restartPlayback ( )

Use this to tell the play engine to rebuild the audio graph if the toplogy has changed.

You shouldn't normally need to use this as it's called automatically as track/clips/plugins etc. are added/removed/changed.

◆ getTrackList()

TrackList& tracktion::engine::Edit::getTrackList ( )

Returns the TrackList for the Edit which contains all the top level tracks.

◆ visitAllTracksRecursive()

void tracktion::engine::Edit::visitAllTracksRecursive ( std::function< bool(Track &)>  ) const

Visits all tracks in the Edit with the given function.

Return false to stop the traversal.

◆ visitAllTopLevelTracks()

void tracktion::engine::Edit::visitAllTopLevelTracks ( std::function< bool(Track &)>  ) const

Visits all top-level tracks (i.e.

non-recursively) in the Edit with the given function.

◆ visitAllTracks()

void tracktion::engine::Edit::visitAllTracks ( std::function< bool(Track &)>  ,
bool  recursive 
) const

Visits all tracks in the Edit with the given function.

Parameters
recursiveWhether to visit nested tracks or just top level tracks.

◆ insertNewAudioTrack()

juce::ReferenceCountedObjectPtr<AudioTrack> tracktion::engine::Edit::insertNewAudioTrack ( TrackInsertPoint  ,
SelectionManager  
)

Inserts a new AudioTrack in the Edit.

◆ insertNewFolderTrack()

juce::ReferenceCountedObjectPtr<FolderTrack> tracktion::engine::Edit::insertNewFolderTrack ( TrackInsertPoint  ,
SelectionManager ,
bool  asSubmix 
)

Inserts a new FolderTrack in the Edit, optionally as a submix.

◆ insertNewAutomationTrack()

juce::ReferenceCountedObjectPtr<AutomationTrack> tracktion::engine::Edit::insertNewAutomationTrack ( TrackInsertPoint  ,
SelectionManager  
)

Inserts a new AutomationTrack in the Edit.

◆ insertNewTrack()

Track::Ptr tracktion::engine::Edit::insertNewTrack ( TrackInsertPoint  ,
const juce::Identifier &  xmlType,
SelectionManager  
)

Inserts a new Track with the given type in the Edit.

◆ insertTrack() [1/2]

Track::Ptr tracktion::engine::Edit::insertTrack ( TrackInsertPoint  ,
juce::ValueTree  ,
SelectionManager  
)

Inserts a new Track with the given state in the Edit.

◆ insertTrack() [2/2]

Track::Ptr tracktion::engine::Edit::insertTrack ( juce::ValueTree  ,
juce::ValueTree  parent,
juce::ValueTree  preceeding,
SelectionManager  
)

Inserts a new Track with the given state in the Edit.

Parameters
parentThe track the new track should be nested in to. If this is invalid, it will be a top-level track.
preceedingThe track new track should go after. If this is invalid, it will go at the end of the list.

◆ moveTrack()

void tracktion::engine::Edit::moveTrack ( Track::Ptr  ,
TrackInsertPoint   
)

Moves a track to a new position.

◆ deleteTrack()

void tracktion::engine::Edit::deleteTrack ( Track )

Deletes a Track.

◆ ensureNumberOfAudioTracks()

void tracktion::engine::Edit::ensureNumberOfAudioTracks ( int  minimumNumTracks)

Creates new tracks to ensure the minimum number.

◆ ensureArrangerTrack()

void tracktion::engine::Edit::ensureArrangerTrack ( )

Creates an ArrangerTrack if there isn't currently one.

◆ ensureTempoTrack()

void tracktion::engine::Edit::ensureTempoTrack ( )

Creates a TempoTrack if there isn't currently one.

◆ ensureMarkerTrack()

void tracktion::engine::Edit::ensureMarkerTrack ( )

Creates a MarkerTrack if there isn't currently one.

◆ ensureChordTrack()

void tracktion::engine::Edit::ensureChordTrack ( )

Creates a ChordTrack if there isn't currently one.

◆ ensureMasterTrack()

void tracktion::engine::Edit::ensureMasterTrack ( )

Creates a ChordTrack if there isn't currently one.

◆ getArrangerTrack()

ArrangerTrack* tracktion::engine::Edit::getArrangerTrack ( ) const

Returns the global ArrangerTrack.

◆ getMarkerTrack()

MarkerTrack* tracktion::engine::Edit::getMarkerTrack ( ) const

Returns the global MarkerTrack.

◆ getTempoTrack()

TempoTrack* tracktion::engine::Edit::getTempoTrack ( ) const

Returns the global TempoTrack.

◆ getChordTrack()

ChordTrack* tracktion::engine::Edit::getChordTrack ( ) const

Returns the global ChordTrack.

◆ getMasterTrack()

MasterTrack* tracktion::engine::Edit::getMasterTrack ( ) const

Returns the global MasterTrack.

◆ areAnyTracksMuted()

bool tracktion::engine::Edit::areAnyTracksMuted ( ) const

Returns true if any tracks are muted.

◆ areAnyTracksSolo()

bool tracktion::engine::Edit::areAnyTracksSolo ( ) const

Returns true if any tracks are soloed.

◆ areAnyTracksSoloIsolate()

bool tracktion::engine::Edit::areAnyTracksSoloIsolate ( ) const

Returns true if any tracks are solo isolated.

◆ updateMuteSoloStatuses()

void tracktion::engine::Edit::updateMuteSoloStatuses ( )

Updates all the tracks and external controller mute/solo statuses.

You shouldn't normally need to call this, it's internally updated when solo/mute properties change.

◆ createNewItemID() [1/2]

EditItemID tracktion::engine::Edit::createNewItemID ( ) const

Returns a new EditItemID to use for a new EditItem.

◆ createNewItemID() [2/2]

EditItemID tracktion::engine::Edit::createNewItemID ( const std::vector< EditItemID > &  idsToAvoid) const

Returns a new EditItemID to use for a new EditItem, avoiding some IDs.

◆ findClipsInLinkGroup()

juce::Array<Clip*> tracktion::engine::Edit::findClipsInLinkGroup ( juce::String  linkGroupID) const

Returns and Clip[s] with the given linkGroupID.

See also
Clip::setLinkGroupID

◆ updateMirroredPlugin()

void tracktion::engine::Edit::updateMirroredPlugin ( Plugin )

Adds this plugin to a list so mirrored Plugin[s] are updated asyncronously.

◆ sendMirrorUpdateToAllPlugins()

void tracktion::engine::Edit::sendMirrorUpdateToAllPlugins ( Plugin ) const

Syncronously updates all Plugins[s] mirroring this one.

◆ sendStartStopMessageToPlugins()

void tracktion::engine::Edit::sendStartStopMessageToPlugins ( )

Calls Plugin::playStartedOrStopped to handle automation reacording.

Not intended for public use as it will be called automatically by the TransportControl.

◆ getMasterPluginList()

PluginList& tracktion::engine::Edit::getMasterPluginList ( ) const
noexcept

Returns the master PluginList.

◆ addModifierTimer()

void tracktion::engine::Edit::addModifierTimer ( ModifierTimer )

Adds a ModifierTimer to be updated each block.

◆ removeModifierTimer()

void tracktion::engine::Edit::removeModifierTimer ( ModifierTimer )

Removes a ModifierTimer previously added.

◆ updateModifierTimers()

void tracktion::engine::Edit::updateModifierTimers ( TimePosition  editTime,
int  numSamples 
) const

Updates all the ModifierTimers with a given edit time and number of samples.

◆ getGlobalMacros()

MacroParameterElement& tracktion::engine::Edit::getGlobalMacros ( ) const

Returns global MacroParameterElement.

◆ setLowLatencyMonitoring()

void tracktion::engine::Edit::setLowLatencyMonitoring ( bool  enabled,
const juce::Array< EditItemID > &  plugins 
)

Toggles low latency monitoring for a set of plugins.

◆ getLowLatencyMonitoring()

bool tracktion::engine::Edit::getLowLatencyMonitoring ( ) const
noexcept

Returns true if in low latency monitoring mode.

◆ setLowLatencyDisabledPlugins()

void tracktion::engine::Edit::setLowLatencyDisabledPlugins ( const juce::Array< EditItemID > &  plugins)

First enables all currently disabled latency plugins and then disables the new set.

Don't call directly, use setLowLatencyMonitoring as you might be in low latency mode but not actually have to disable any plugins.

◆ getLowLatencyDisabledPlugins()

juce::Array<EditItemID> tracktion::engine::Edit::getLowLatencyDisabledPlugins ( )

Returns the current set of diabled plugins.

◆ getRackList()

RackTypeList& tracktion::engine::Edit::getRackList ( ) const
noexcept

Returns the RackTypeList which contains all the RackTypes for the Edit.

◆ getTrackCompManager()

TrackCompManager& tracktion::engine::Edit::getTrackCompManager ( ) const
noexcept

Returns the TrackCompManager for the Edit.

◆ getAuxBusName()

juce::String tracktion::engine::Edit::getAuxBusName ( int  bus) const

Returns the name of an aux bus.

◆ setAuxBusName()

void tracktion::engine::Edit::setAuxBusName ( int  bus,
const juce::String &  name 
)

Sets the name of an aux bus.

◆ getAllAutomatableParams()

juce::Array<AutomatableParameter*> tracktion::engine::Edit::getAllAutomatableParams ( bool  includeTrackParams) const

Returns all automatiabel parameters in an Edit.

Parameters
includeTrackParamsWhether to include plugins on tracks and clips

◆ getVideoFile()

juce::File tracktion::engine::Edit::getVideoFile ( ) const

Returns the currently set video file.

◆ setVideoFile()

void tracktion::engine::Edit::setVideoFile ( const juce::File &  ,
juce::String  importDesc 
)

Sets a video file to display.

◆ getNextTimeOfInterest()

TimePosition tracktion::engine::Edit::getNextTimeOfInterest ( TimePosition  afterThisTime)

Finds the next marker or start/end of a clip after a certain time.

◆ getPreviousTimeOfInterest()

TimePosition tracktion::engine::Edit::getPreviousTimeOfInterest ( TimePosition  beforeThisTime)

Finds the previous marker or start/end of a clip after a certain time.

◆ getPluginCache()

PluginCache& tracktion::engine::Edit::getPluginCache ( )
noexcept

Returns the PluginCache which manages all active Plugin[s] for this Edit.

◆ getFirstClipTime()

TimePosition tracktion::engine::Edit::getFirstClipTime ( ) const

Returns the time of first clip.

◆ getLength()

TimeDuration tracktion::engine::Edit::getLength ( ) const

Returns the end time of last clip.

Referenced by tracktion::engine::benchmark_utilities::renderEdit().

◆ getMasterVolumePlugin()

VolumeAndPanPlugin::Ptr tracktion::engine::Edit::getMasterVolumePlugin ( ) const

Returns the master VolumeAndPanPlugin.

◆ getMasterSliderPosParameter()

AutomatableParameter::Ptr tracktion::engine::Edit::getMasterSliderPosParameter ( ) const

Returns the master volume AutomatableParameter.

N.B. this is in slider position, not dB

◆ getMasterPanParameter()

AutomatableParameter::Ptr tracktion::engine::Edit::getMasterPanParameter ( ) const

Returns the master pan AutomatableParameter.

◆ setMasterVolumeSliderPos()

void tracktion::engine::Edit::setMasterVolumeSliderPos ( float  )

Sets the master volume level.

N.B. this is in slider position, not dB

◆ setMasterPanPos()

void tracktion::engine::Edit::setMasterPanPos ( float  )

Returns the master pan position.

◆ pluginChanged()

void tracktion::engine::Edit::pluginChanged ( Plugin )
noexcept

Plugins should call this when one of their parameters or state changes to mark the edit as unsaved.

◆ getTimecodeFormat()

TimecodeDisplayFormat tracktion::engine::Edit::getTimecodeFormat ( ) const

Returns the current TimecodeDisplayFormat.

◆ setTimecodeFormat()

void tracktion::engine::Edit::setTimecodeFormat ( TimecodeDisplayFormat  )

Sets the TimecodeDisplayFormat to use.

◆ toggleTimecodeMode()

void tracktion::engine::Edit::toggleTimecodeMode ( )

Toggles the TimecodeDisplayFormat through the available TimecodeType[s].

See also
TimecodeType

◆ sendTempoOrPitchSequenceChangedUpdates()

void tracktion::engine::Edit::sendTempoOrPitchSequenceChangedUpdates ( )

Sends a message to all the clips to let them know the tempo or pitch sequence has changed.

@seee Clip::pitchTempoTrackChanged

◆ getCurrentMidiTimecodeSource()

MidiInputDevice* tracktion::engine::Edit::getCurrentMidiTimecodeSource ( ) const

Returns the MidiInputDevice being used as the MIDI timecode source.

◆ setCurrentMidiTimecodeSource()

void tracktion::engine::Edit::setCurrentMidiTimecodeSource ( MidiInputDevice newDevice)

Sets the MidiInputDevice being to be used as the MIDI timecode source.

◆ enableTimecodeSync()

void tracktion::engine::Edit::enableTimecodeSync ( bool  )

Toggles syncing to MIDI timecode.

See also
midiTimecodeSourceDeviceEnabled

◆ isTimecodeSyncEnabled()

bool tracktion::engine::Edit::isTimecodeSyncEnabled ( ) const
noexcept

Returns true if syncing to MIDI timecode is enabled.

References midiTimecodeSourceDeviceEnabled.

◆ getTimecodeOffset()

TimeDuration tracktion::engine::Edit::getTimecodeOffset ( ) const
noexcept

Returns the offset to apply to MIDI timecode.

References timecodeOffset.

◆ setTimecodeOffset()

void tracktion::engine::Edit::setTimecodeOffset ( TimeDuration  newOffset)

Sets the offset to apply to MIDI timecode.

◆ isMidiTimecodeIgnoringHours()

bool tracktion::engine::Edit::isMidiTimecodeIgnoringHours ( ) const

Returns true if hours are ignored when syncing to MIDI timecode.

References midiTimecodeIgnoringHours.

◆ setMidiTimecodeIgnoringHours()

void tracktion::engine::Edit::setMidiTimecodeIgnoringHours ( bool  shouldIgnore)

Sets whether hours are ignored when syncing to MIDI timecode.

◆ getCurrentMidiMachineControlSource()

MidiInputDevice* tracktion::engine::Edit::getCurrentMidiMachineControlSource ( ) const

Returns the MidiInputDevice being used as an MMC source.

◆ setCurrentMidiMachineControlSource()

void tracktion::engine::Edit::setCurrentMidiMachineControlSource ( MidiInputDevice )

Sets the MidiInputDevice to be used as an MMC source.

◆ getCurrentMidiMachineControlDest()

MidiOutputDevice* tracktion::engine::Edit::getCurrentMidiMachineControlDest ( ) const

Returns the MidiInputDevice being used as an MMC destination.

◆ setCurrentMidiMachineControlDest()

void tracktion::engine::Edit::setCurrentMidiMachineControlDest ( MidiOutputDevice )

Sets the MidiInputDevice to be used as an MMC destination.

◆ updateMidiTimecodeDevices()

void tracktion::engine::Edit::updateMidiTimecodeDevices ( )

Updates the MIDI timecode/MMC devices.

You shouldn't normally need to call this as it will be called automatically when one of the setter methods are called.

◆ setClickTrackRange()

void tracktion::engine::Edit::setClickTrackRange ( TimeRange  )
noexcept

Sets a range for the click track to be audible within.

◆ getClickTrackRange()

TimeRange tracktion::engine::Edit::getClickTrackRange ( ) const
noexcept

Returns the range the click track will be audible within.

◆ getClickTrackVolume()

float tracktion::engine::Edit::getClickTrackVolume ( ) const
noexcept

Returns the click track volume.

References clickTrackGain.

◆ getClickTrackDevice()

juce::String tracktion::engine::Edit::getClickTrackDevice ( ) const

Returns the name of the device being used as the click track output.

◆ isClickTrackDevice()

bool tracktion::engine::Edit::isClickTrackDevice ( OutputDevice ) const

Returns true if the given OutputDevice is being used as the click track output.

◆ setClickTrackOutput()

void tracktion::engine::Edit::setClickTrackOutput ( const juce::String &  deviceName)

Sets the device to use as the click track output.

◆ setClickTrackVolume()

void tracktion::engine::Edit::setClickTrackVolume ( float  gain)

Sets the volume of the click track.

◆ setCountInMode()

void tracktion::engine::Edit::setCountInMode ( CountIn  )

Sets the duration of the count in.

◆ getCountInMode()

CountIn tracktion::engine::Edit::getCountInMode ( ) const

Returns the duration of the count in.

◆ getNumCountInBeats()

int tracktion::engine::Edit::getNumCountInBeats ( ) const

Returns the number of beats of the count in.

◆ sendSourceFileUpdate()

void tracktion::engine::Edit::sendSourceFileUpdate ( )

Sends a 'sourceMediaChanged' call to all the clips.

◆ markAsChanged()

void tracktion::engine::Edit::markAsChanged ( )

Marks the edit as being significantly changed and should therefore be saved.

◆ invalidateStoredLength()

void tracktion::engine::Edit::invalidateStoredLength ( )
noexcept

Invalidates the stored length so the next call to getLength will update form the Edit contents.

You shouldn't normally need to call this as it will happen automatically as clips are added/removed.

◆ dispatchPendingUpdatesSynchronously()

void tracktion::engine::Edit::dispatchPendingUpdatesSynchronously ( )

If there's a change to send out to the listeners, do it now rather than waiting for the next timer message.

◆ areAnyClipsUsingFile()

bool tracktion::engine::Edit::areAnyClipsUsingFile ( const AudioFile )

Returns true if any clips are using this file.

◆ cancelAllProxyGeneratorJobs()

void tracktion::engine::Edit::cancelAllProxyGeneratorJobs ( ) const

Stops all proxy generator jobs clips may be performing.

◆ getTempDirectory()

juce::File tracktion::engine::Edit::getTempDirectory ( bool  createIfNonExistent) const

Returns the temp directory the Edit it using.

◆ setTempDirectory()

void tracktion::engine::Edit::setTempDirectory ( const juce::File &  )

Sets the temp directory for the Edit to use.

◆ getEditMetadata()

Metadata tracktion::engine::Edit::getEditMetadata ( )

Returns the current Metadata for the Edit.

◆ setEditMetadata()

void tracktion::engine::Edit::setEditMetadata ( Metadata  )

Sets the Metadata for the Edit.

◆ getAutomapState()

juce::ValueTree tracktion::engine::Edit::getAutomapState ( ) const

Returns the ValueTree used as the Auotmap state.

You shouldn't normally need this as it's onyl called by the Automap system.

See also
NovationAutomap

◆ getMarkerManager()

MarkerManager& tracktion::engine::Edit::getMarkerManager ( ) const
noexcept

Returns the MarkerManager.

◆ addWastedMidiMessagesListener()

void tracktion::engine::Edit::addWastedMidiMessagesListener ( WastedMidiMessagesListener )

Add a WastedMidiMessagesListener to be notified of wasted MIDI messages.

◆ removeWastedMidiMessagesListener()

void tracktion::engine::Edit::removeWastedMidiMessagesListener ( WastedMidiMessagesListener )

Removes a previously added WastedMidiMessagesListener.

◆ warnOfWastedMidiMessages()

void tracktion::engine::Edit::warnOfWastedMidiMessages ( InputDevice ,
Track  
)

Triggers a callback to any registered WastedMidiMessagesListener[s].

◆ getPreviewLevelMeasurer()

SharedLevelMeasurer::Ptr tracktion::engine::Edit::getPreviewLevelMeasurer ( )

Returns a previously set SharedLevelMeasurer.

◆ setPreviewLevelMeasurer()

void tracktion::engine::Edit::setPreviewLevelMeasurer ( SharedLevelMeasurer::Ptr  p)

Sets a SharedLevelMeasurer to use.

Member Data Documentation

◆ engine

Engine& tracktion::engine::Edit::engine

◆ editFileRetriever

std::function<juce::File()> tracktion::engine::Edit::editFileRetriever

This callback can be set to return the file for this Edit.

By default this uses ProjectManager to find a matching file for the Edit's ProjectItemID but this can be overriden for custom behaviour.

◆ filePathResolver

std::function<juce::File (const juce::String&)> tracktion::engine::Edit::filePathResolver

This callback can be set to resolve file paths.

By default:

  1. If the path is an absolute path it will simply return it
  2. If it is a relative path, the editFileRetriever will be used to try and find a File for the Edit and the path will be resolved against that

You can set a custom resolver here in case the Edit is in memory or the files directory is different to the Edit file's location.

◆ maximumLength

constexpr double tracktion::engine::Edit::maximumLength = 48.0 * 60.0 * 60.0
staticconstexpr

The maximum length an Edit can be.

Referenced by getMaximumEditTimeRange(), and getMaximumLength().

◆ ticksPerQuarterNote

const int tracktion::engine::Edit::ticksPerQuarterNote = 960
static

The number of ticks per quarter note.

◆ trackCache

EditItemCache<Track> tracktion::engine::Edit::trackCache

Quick way to find and iterate all Track[s] in the Edit.

◆ clipCache

EditItemCache<Clip> tracktion::engine::Edit::clipCache

Quick way to find and iterate all Clip[s] in the Edit.

◆ tempoSequence

TempoSequence tracktion::engine::Edit::tempoSequence

◆ pitchSequence

PitchSequence tracktion::engine::Edit::pitchSequence

The global PitchSequence of this Edit.

◆ lastSignificantChange

juce::CachedValue<juce::String> tracktion::engine::Edit::lastSignificantChange

The last time a change was made to the Edit.

See also
getTimeOfLastChange

◆ masterFadeIn

juce::CachedValue<TimeDuration> tracktion::engine::Edit::masterFadeIn

The duration in seconds of the fade in.

◆ masterFadeOut

juce::CachedValue<TimeDuration> tracktion::engine::Edit::masterFadeOut

The duration in seconds of the fade out.

◆ timecodeOffset

juce::CachedValue<TimeDuration> tracktion::engine::Edit::timecodeOffset

The duration in seconds of the timecode offset.

Referenced by getTimecodeOffset().

◆ videoOffset

juce::CachedValue<TimeDuration> tracktion::engine::Edit::videoOffset

The duration in seconds of the video offset.

◆ masterFadeInType

juce::CachedValue<AudioFadeCurve::Type> tracktion::engine::Edit::masterFadeInType

The curve type of the fade in.

◆ masterFadeOutType

juce::CachedValue<AudioFadeCurve::Type> tracktion::engine::Edit::masterFadeOutType

The curve type of the fade out.

◆ midiTimecodeSourceDeviceEnabled

juce::CachedValue<bool> tracktion::engine::Edit::midiTimecodeSourceDeviceEnabled

Whether a MIDI timecode source is enabled.

Referenced by isTimecodeSyncEnabled().

◆ midiTimecodeIgnoringHours

juce::CachedValue<bool> tracktion::engine::Edit::midiTimecodeIgnoringHours

Whether the MIDI timecode source ignores hours.

Referenced by isMidiTimecodeIgnoringHours().

◆ videoMuted

juce::CachedValue<bool> tracktion::engine::Edit::videoMuted

Whether the video source is muted.

◆ clickTrackEnabled

juce::CachedValue<bool> tracktion::engine::Edit::clickTrackEnabled

Whether the click track is enabled.

◆ clickTrackEmphasiseBars

juce::CachedValue<bool> tracktion::engine::Edit::clickTrackEmphasiseBars

Whether the click track should emphasise bars.

◆ clickTrackRecordingOnly

juce::CachedValue<bool> tracktion::engine::Edit::clickTrackRecordingOnly

Whether the click track should be audible only when recording.

◆ recordingPunchInOut

juce::CachedValue<bool> tracktion::engine::Edit::recordingPunchInOut

Whether recoridng only happens within the in/out markers.

◆ playInStopEnabled

juce::CachedValue<bool> tracktion::engine::Edit::playInStopEnabled

Whether the audio engine should run when playback is stopped.

◆ clickTrackGain

juce::CachedValue<float> tracktion::engine::Edit::clickTrackGain

The gain of the click track.

Referenced by getClickTrackVolume().

◆ videoSource

juce::CachedValue<ProjectItemID> tracktion::engine::Edit::videoSource

The ProjectItemID of the video source.

◆ state

juce::ValueTree tracktion::engine::Edit::state { IDs::EDIT }

The ValueTree of the Edit state.

◆ inputDeviceState

juce::ValueTree tracktion::engine::Edit::inputDeviceState

The ValueTree of the input device states.

◆ araDocument

std::unique_ptr<ARADocumentHolder> tracktion::engine::Edit::araDocument

Holds the ARA state.


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