|
tracktion-engine 3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications
« « « Anklang Documentation |
Provides custom handlers to control various aspects of the engine's behaviour. More...
#include "tracktion_EngineBehaviour.h"
Classes | |
| struct | ClipDefaults |
| Determines the default properties of clips. More... | |
| struct | ControlSurfaces |
| struct | LevelMeterSettings |
Public Member Functions | |
| virtual juce::ReferenceCountedObjectPtr< RackType > | createPresetRackType (int, Edit &) |
| virtual Plugin::Ptr | createCustomPlugin (PluginCreationInfo) |
| This will be called if the PluginManager doesn't know how to create a Plugin for the given info. | |
| virtual std::unique_ptr< juce::PluginDescription > | findDescriptionForFileOrID (const juce::String &) |
| Gives an opportunity to load custom plugins for those that have been registered as custom formats but not added to the list. | |
| virtual bool | isPluginDisabled (const juce::String &) |
| Should return if the given plugin is disabled or not. | |
| virtual void | setPluginDisabled (const juce::String &, bool) |
| Should implement a way of saving if plugin is disabled or not. | |
| virtual bool | shouldLoadPlugin (ExternalPlugin &p) |
| Should the plugin be loaded. | |
| virtual void | doAdditionalInitialisation (ExternalPlugin &) |
| Gives the host a chance to do any extra configuration after a plugin is loaded. | |
| virtual juce::Array< Exportable::ReferencedItem > | getReferencedItems (ExternalPlugin &) |
| If you have any special plugins that access items in the Edit, you need to return them. | |
| virtual void | reassignReferencedItem (Clip &, const Exportable::ReferencedItem &, ProjectItemID, double) |
| If you have any special plugins that access items in the Edit, you need to reassign them. | |
| virtual juce::Array< Exportable::ReferencedItem > | getReferencedItems (Clip &) |
| If you have any special clips that access items in the Edit, you need to return them. | |
| virtual void | reassignReferencedItem (ExternalPlugin &, const Exportable::ReferencedItem &, ProjectItemID, double) |
| If you have any special clips that access items in the Edit, you need to reassign them. | |
| virtual bool | shouldBypassedPluginsBeRemovedFromPlaybackGraph () |
| Should return if plugins which have been bypassed should be included in the playback graph. | |
| virtual bool | shouldProcessAuxSendWhenTrackIsMuted (AuxSendPlugin &) |
| Whether or not to include muted track contents in aux send plugins. | |
| virtual bool | areClipSlotsEnabled () |
| If this returns false, ClipSlot Clips won't be included in the playback graph and arranger track clips will always be audible. | |
| virtual bool | enableReadAheadForTimeStretchNodes () |
| TEMPORARY: If enabled, real-time time-stretch Nodes will use a larger buffer and background thread to reduce audio CPU use. | |
| virtual void | saveCustomPluginProperties (juce::ValueTree &, juce::AudioPluginInstance &, juce::UndoManager *) |
| Gives plugins an opportunity to save custom data when the plugin state gets flushed. | |
| virtual bool | canScanPluginsOutOfProcess () |
| Return true if your application supports scanning plugins out of process. | |
| virtual bool | autoInitialiseDeviceManager () |
| You may want to disable auto initialisation of the device manager if you are using the engine in a plugin. | |
| virtual bool | addSystemAudioIODeviceTypes () |
| In plugin builds, you might want to avoid adding the system audio devices and only use the host inputs. | |
| virtual int | getMiddleCOctave () |
| virtual void | setMiddleCOctave (int) |
| virtual int | getDefaultNoteColour () |
| virtual void | editHasBeenSaved (Edit &, juce::File) |
| virtual bool | isMidiDriverUsedForIncommingMessageTiming () |
| Should return true if the incoming timestamp for MIDI messages should be used. | |
| virtual void | setMidiDriverUsedForIncommingMessageTiming (bool) |
| virtual bool | shouldPlayMidiGuideNotes () |
| virtual bool | ignoreBWavTimestamps () |
| virtual int | getNumberOfCPUsToUseForAudio () |
| virtual bool | shouldProcessMutedTracks () |
| Should muted tracks processing be disabled to save CPU. | |
| virtual bool | muteTrackContentsWhilstRecording () |
| Should track contents be audible whilst a recording is in progress. | |
| virtual bool | areAudioClipsRemappedWhenTempoChanges () |
| virtual void | setAudioClipsRemappedWhenTempoChanges (bool) |
| virtual bool | areAutoTempoClipsRemappedWhenTempoChanges () |
| virtual void | setAutoTempoClipsRemappedWhenTempoChanges (bool) |
| virtual bool | areMidiClipsRemappedWhenTempoChanges () |
| virtual void | setMidiClipsRemappedWhenTempoChanges (bool) |
| virtual bool | arePluginsRemappedWhenTempoChanges () |
| virtual void | setPluginsRemappedWhenTempoChanges (bool) |
| virtual EditLimits | getEditLimits () |
| Should return the maximum number of elements that can be added to an Edit. | |
| virtual bool | lengthOfOneBeatDependsOnTimeSignature () |
| If this returns true, it means that the length (in seconds) of one "beat" at any point in an edit is considered to be the length of one division in the current bar's time signature. | |
| virtual LevelMeterSettings | getLevelMeterSettings () |
| virtual void | setLevelMeterSettings (LevelMeterSettings) |
| virtual void | setProcessPriority (int) |
| virtual bool | isDescriptionOfWaveDevicesSupported () |
| If this returns true, you must implement describeWaveDevices to determine the wave devices for a given device. | |
| virtual void | describeWaveDevices (std::vector< WaveDeviceDescription > &, juce::AudioIODevice &, bool) |
| If isDescriptionOfWaveDevicesSupported returns true, this should be implemented to describe the wave devices for a given audio device. | |
| virtual juce::MidiMessageSequence | createPlaybackMidiSequence (const MidiList &list, MidiClip &clip, MidiList::TimeBase tb, bool generateMPE) |
| Called by the MidiList to create a MidiMessageSequence for playback. | |
| virtual int | getDefaultLoopedSequenceType () |
| Must return the default looped sequence type to use. | |
| virtual bool | autoAddClipEdgeFades () |
| If this returns true, it means that newly inserted clips will automatically have a fade-in and fade-out of 3ms applied. | |
| virtual bool | interpolateAutomation () |
| Interpolate automation at 10ms intervals (faster) or calculate actual value (slower) | |
| virtual ClipDefaults | getClipDefaults () |
| Returns the defaults to be applied to new clips. | |
| virtual void | newClipAdded (Clip &, bool fromRecording) |
| Returns the defaults to be applied to new clips. | |
| virtual ControlSurfaces | getDesiredControlSurfaces () |
| Return the control surfaces you want enabled in the engine. | |
| virtual ControlSurface * | getCustomControlSurfaceForXML (ExternalControllerManager &, const juce::XmlElement &) |
| Restore a custom control surface from custom XML. | |
Provides custom handlers to control various aspects of the engine's behaviour.
Create a subclass of EngineBehaviour to customise how the engine operates
Definition at line 31 of file tracktion_EngineBehaviour.h.
| struct tracktion::engine::EngineBehaviour::ClipDefaults |
Determines the default properties of clips.
Definition at line 237 of file tracktion_EngineBehaviour.h.
| Class Members | ||
|---|---|---|
| ResamplingQuality | resamplingQuality |
|
| bool | useProxyFile |
|
| struct tracktion::engine::EngineBehaviour::ControlSurfaces |
Definition at line 249 of file tracktion_EngineBehaviour.h.
| Class Members | ||
|---|---|---|
| bool | alphaTrack | |
| bool | automap | |
| bool | iconProG2 | |
| bool | mackieC4 | |
| bool | mackieMCU | |
| bool | remoteSL | |
| bool | remoteSLCompact | |
| bool | tranzport | |
| struct tracktion::engine::EngineBehaviour::LevelMeterSettings |
Definition at line 190 of file tracktion_EngineBehaviour.h.
| Class Members | ||
|---|---|---|
| float | decaySpeed | |
| int | maxPeakAgeMs | |
|
virtual |
In plugin builds, you might want to avoid adding the system audio devices and only use the host inputs.
Definition at line 127 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 162 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 164 of file tracktion_EngineBehaviour.h.
|
virtual |
If this returns false, ClipSlot Clips won't be included in the playback graph and arranger track clips will always be audible.
Definition at line 94 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 166 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 168 of file tracktion_EngineBehaviour.h.
|
virtual |
If this returns true, it means that newly inserted clips will automatically have a fade-in and fade-out of 3ms applied.
Definition at line 231 of file tracktion_EngineBehaviour.h.
|
virtual |
You may want to disable auto initialisation of the device manager if you are using the engine in a plugin.
Definition at line 122 of file tracktion_EngineBehaviour.h.
|
virtual |
Return true if your application supports scanning plugins out of process.
If you want to support scanning out of process, the allowing should be added to you JUCEApplication::initialise() function:
void initialise (const juce::String& commandLine) override { if (PluginManager::startChildProcessPluginScan (commandLine)) return;
continue like normal
Definition at line 117 of file tracktion_EngineBehaviour.h.
|
virtual |
This will be called if the PluginManager doesn't know how to create a Plugin for the given info.
Definition at line 41 of file tracktion_EngineBehaviour.h.
|
virtual |
Called by the MidiList to create a MidiMessageSequence for playback.
You can override this to add your own messages but should generally follow the procedure in MidiList::createDefaultPlaybackMidiSequence.
Definition at line 217 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 38 of file tracktion_EngineBehaviour.h.
|
virtual |
If isDescriptionOfWaveDevicesSupported returns true, this should be implemented to describe the wave devices for a given audio device.
Definition at line 210 of file tracktion_EngineBehaviour.h.
|
virtual |
Gives the host a chance to do any extra configuration after a plugin is loaded.
Definition at line 63 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 139 of file tracktion_EngineBehaviour.h.
|
virtual |
TEMPORARY: If enabled, real-time time-stretch Nodes will use a larger buffer and background thread to reduce audio CPU use.
Definition at line 99 of file tracktion_EngineBehaviour.h.
|
virtual |
Gives an opportunity to load custom plugins for those that have been registered as custom formats but not added to the list.
Definition at line 44 of file tracktion_EngineBehaviour.h.
|
virtual |
Returns the defaults to be applied to new clips.
Definition at line 244 of file tracktion_EngineBehaviour.h.
|
virtual |
Restore a custom control surface from custom XML.
Definition at line 265 of file tracktion_EngineBehaviour.h.
|
virtual |
Must return the default looped sequence type to use.
Current options are: 0: loopRangeDefinesAllRepetitions // The looped sequence is the same for all repetitions including the first. 1: loopRangeDefinesSubsequentRepetitions // The first section is the whole sequence, subsequent repitions are determined by the loop range.
Definition at line 228 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 136 of file tracktion_EngineBehaviour.h.
|
virtual |
Return the control surfaces you want enabled in the engine.
Definition at line 262 of file tracktion_EngineBehaviour.h.
|
virtual |
Should return the maximum number of elements that can be added to an Edit.
Definition at line 172 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 196 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 131 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 154 of file tracktion_EngineBehaviour.h.
|
virtual |
If you have any special clips that access items in the Edit, you need to return them.
Definition at line 72 of file tracktion_EngineBehaviour.h.
|
virtual |
If you have any special plugins that access items in the Edit, you need to return them.
Definition at line 66 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 152 of file tracktion_EngineBehaviour.h.
|
virtual |
Interpolate automation at 10ms intervals (faster) or calculate actual value (slower)
Definition at line 234 of file tracktion_EngineBehaviour.h.
|
virtual |
If this returns true, you must implement describeWaveDevices to determine the wave devices for a given device.
If it's false, a standard, stereo pair layout will be automatically generated.
Definition at line 205 of file tracktion_EngineBehaviour.h.
|
virtual |
Should return true if the incoming timestamp for MIDI messages should be used.
If this returns false, the current system time will be used (which could be less accurate). N.B. this is called from multiple threads, including the MIDI thread for every incoming message so should be thread safe and quick to return.
Definition at line 147 of file tracktion_EngineBehaviour.h.
|
virtual |
Should return if the given plugin is disabled or not.
ExternalPlugins will use this to determine if they should load themselves or not. This can be called often so should be quick to execute.
Definition at line 50 of file tracktion_EngineBehaviour.h.
|
virtual |
If this returns true, it means that the length (in seconds) of one "beat" at any point in an edit is considered to be the length of one division in the current bar's time signature.
So for example at 120BPM, in a bar of 4/4, one beat would be the length of a quarter-note (0.5s), but in a bar of 4/8, one beat would be the length of an eighth-note (0.25s)
If false, then the length of one beat always depends only the current BPM at that point in the edit, so where the BPM = 120, one beat is always 0.5s, regardless of the time-sig.
You shouldn't dynamically change this function's return value - just implement a function that always returns true or false.
Definition at line 188 of file tracktion_EngineBehaviour.h.
|
virtual |
Should track contents be audible whilst a recording is in progress.
Definition at line 160 of file tracktion_EngineBehaviour.h.
|
virtual |
Returns the defaults to be applied to new clips.
Definition at line 247 of file tracktion_EngineBehaviour.h.
|
virtual |
If you have any special plugins that access items in the Edit, you need to reassign them.
Definition at line 69 of file tracktion_EngineBehaviour.h.
|
virtual |
If you have any special clips that access items in the Edit, you need to reassign them.
Definition at line 75 of file tracktion_EngineBehaviour.h.
|
virtual |
Gives plugins an opportunity to save custom data when the plugin state gets flushed.
Definition at line 102 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 163 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 165 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 197 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 132 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 167 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 148 of file tracktion_EngineBehaviour.h.
|
virtual |
Should implement a way of saving if plugin is disabled or not.
N.B. only in use for ExternalPlugins at the moment.
Definition at line 55 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 169 of file tracktion_EngineBehaviour.h.
|
virtual |
Definition at line 200 of file tracktion_EngineBehaviour.h.
|
virtual |
Should return if plugins which have been bypassed should be included in the playback graph.
By default this is false and bypassed plugins will still call processBypassed and introduce the same latency as if they weren't. But by returning false here, you can opt to remove them from the playback graph entirely which means they won't introduce latency which can be useful for tracking.
Definition at line 83 of file tracktion_EngineBehaviour.h.
|
virtual |
Should the plugin be loaded.
Normally plugins aren't loaded when Edit is for exporting or examining. Override this if you always need a plugin loaded
Definition at line 281 of file tracktion_Engine.cpp.
|
virtual |
Definition at line 150 of file tracktion_EngineBehaviour.h.
|
virtual |
Whether or not to include muted track contents in aux send plugins.
Returning true here enables you to still listen to return busses when send tracks are muted or other tracks are soloed.
Definition at line 89 of file tracktion_EngineBehaviour.h.
|
virtual |
Should muted tracks processing be disabled to save CPU.
Definition at line 157 of file tracktion_EngineBehaviour.h.