TracktionEngine
|
#include <tracktion_Plugin.h>
Classes | |
struct | EditorComponent |
struct | WindowState |
struct | Wire |
Public Types | |
enum class | Type { allPlugins , folderTrackPlugins , effectPlugins } |
using | Ptr = juce::ReferenceCountedObjectPtr< Plugin > |
using | Array = juce::ReferenceCountedArray< Plugin > |
![]() | |
using | WeakRef = juce::WeakReference< Selectable > |
Public Member Functions | |
Plugin (PluginCreationInfo) | |
~Plugin () override | |
void | selectableAboutToBeDeleted () override |
Called just before the selectable is about to be deleted so any subclasses should still be valid at this point. | |
void | playStartedOrStopped () |
called by the system to let the plugin manage its automation stuff | |
virtual void | initialiseFully () |
Gives the plugin a chance to do extra initialisation when it's been added to an edit. | |
virtual void | flushPluginStateToValueTree () override |
virtual juce::String | getName () const override=0 |
The name of the type, e.g. | |
virtual juce::String | getPluginType ()=0 |
virtual juce::String | getVendor () |
virtual juce::String | getShortName (int) |
virtual juce::String | getIdentifierString () |
A unique string to idenitify plugin independant of install location. | |
virtual juce::String | getTooltip () |
default returns the name, others can return special stuff if needed | |
virtual void | setEnabled (bool) |
Enable/disable the plugin. | |
bool | isEnabled () const noexcept |
void | setFrozen (bool shouldBeFrozen) |
This is a bit different to being enabled as when frozen a plugin can't be interacted with. | |
bool | isFrozen () const noexcept |
void | setProcessingEnabled (bool p) |
Enable/Disable processing. | |
bool | isProcessingEnabled () const noexcept |
virtual void | initialise (const PluginInitialisationInfo &)=0 |
Gives the plugin a chance to set itself up before being played. | |
virtual void | initialiseWithoutStopping (const PluginInitialisationInfo &) |
Tells the plugin that the audio graph has changed but the plugin isn't being re-initialised - i.e. | |
virtual void | deinitialise ()=0 |
Called after play stops to release resources. | |
virtual void | reset () |
Should reset synth voices, tails, clear delay buffers, etc. | |
virtual void | trackPropertiesChanged () |
Track name or colour has changed. | |
virtual void | midiPanic () |
Tells the plugin to turn off any playing notes, if applicable. | |
virtual void | applyToBuffer (const PluginRenderContext &)=0 |
Process the next block of data. | |
virtual void | prepareForNextBlock (TimePosition) |
Called between successive rendering blocks. | |
void | applyToBufferWithAutomation (const PluginRenderContext &) |
virtual bool | shouldMeasureCpuUsage () const noexcept |
Plugins can return false if they want to avoid the overhead of measuring the CPU usage. | |
double | getCpuUsage () const noexcept |
Returns the proportion of the current buffer size spent processing this plugin. | |
virtual int | getNumOutputChannelsGivenInputs (int numInputChannels) |
This must return the number of output channels that the plugin will produce, given a number of input channels. | |
virtual bool | producesAudioWhenNoAudioInput () |
virtual bool | noTail () |
virtual void | getChannelNames (juce::StringArray *ins, juce::StringArray *outs) |
virtual bool | takesAudioInput () |
virtual bool | takesMidiInput () |
virtual bool | isSynth () |
virtual double | getLatencySeconds () |
virtual double | getTailLength () const |
virtual bool | canSidechain () |
AutomatableParameter * | addParam (const juce::String ¶mID, const juce::String &name, juce::NormalisableRange< float > valueRange) |
AutomatableParameter * | addParam (const juce::String ¶mID, const juce::String &name, juce::NormalisableRange< float > valueRange, std::function< juce::String(float)> valueToStringFunction, std::function< float(const juce::String &)> stringToValueFunction) |
juce::StringArray | getInputChannelNames () |
juce::StringArray | getSidechainSourceNames (bool allowNone) |
void | setSidechainSourceByName (const juce::String &name) |
juce::String | getSidechainSourceName () |
void | guessSidechainRouting () |
int | getNumWires () const |
Wire * | getWire (int index) const |
void | makeConnection (int srcChannel, int dstChannel, juce::UndoManager *) |
void | breakConnection (int srcChannel, int dstChannel) |
virtual bool | hasNameForMidiNoteNumber (int note, int midiChannel, juce::String &name) |
If it's a synth that names its notes, this can return the name it uses for this note 0-127. | |
virtual bool | hasNameForMidiProgram (int programNum, int bank, juce::String &name) |
Returns the name for a midi program, if there is one. | |
virtual bool | hasNameForMidiBank (int bank, juce::String &name) |
virtual bool | canBeAddedToClip () |
virtual bool | canBeAddedToRack () |
virtual bool | canBeAddedToFolderTrack () |
virtual bool | canBeAddedToMaster () |
virtual bool | canBeDisabled () |
virtual bool | canBeMoved () |
virtual bool | needsConstantBufferSize () |
virtual bool | isMissing () |
for things like VSTs where the DLL is missing. | |
virtual bool | isDisabled () |
Plugins can be disabled to avoid them crashing Edits. | |
bool | isInRack () const |
juce::ReferenceCountedObjectPtr< RackType > | getOwnerRackType () const |
bool | isClipEffectPlugin () const |
virtual juce::AudioProcessor * | getWrappedAudioProcessor () const |
AutomatableParameter::Ptr | getQuickControlParameter () const |
void | setQuickControlParameter (AutomatableParameter *) |
virtual void | deleteFromParent () |
Attempts to delete this plugin, whether it's a master plugin, track plugin, etc. | |
void | removeFromParent () |
Detaches the plugin from any parent it might be in. | |
Track * | getOwnerTrack () const |
Returns the track if it's a track or clip plugin. | |
Clip * | getOwnerClip () const |
Returns the clip if that's what it's in. | |
PluginList * | getOwnerList () const |
Ptr | findPluginThatFeedsIntoThis () const |
Ptr | findPluginThatThisFeedsInto () const |
void | changed () override |
method from Selectable, that's been overridden here to also tell the edit that it's changed. | |
juce::Array< ReferencedItem > | getReferencedItems () override |
void | reassignReferencedItem (const ReferencedItem &, ProjectItemID newID, double newStartTime) override |
virtual void | sourceMediaChanged () |
Called when ProjectItem sources are re-assigned so you can reload from the new source. | |
bool | setPluginToMirror (const Plugin::Ptr &) |
virtual void | updateFromMirroredPluginIfNeeded (Plugin &) |
Plugin::Ptr | getMirroredPlugin () const |
bool | baseClassNeedsInitialising () const noexcept |
void | baseClassInitialise (const PluginInitialisationInfo &) |
void | baseClassDeinitialise () |
void | setSidechainSourceID (EditItemID newID) |
EditItemID | getSidechainSourceID () const |
virtual std::unique_ptr< EditorComponent > | createEditor () |
void | showWindowExplicitly () |
void | hideWindowForShutdown () |
juce::UndoManager * | getUndoManager () const noexcept |
bool | isInitialising () const |
![]() | |
Selectable () | |
virtual | ~Selectable () |
virtual juce::String | getSelectableDescription ()=0 |
Subclasses must return a description of what they are. | |
virtual void | selectionStatusChanged (bool isNowSelected) |
Can be overridden to tell this object that it has just been selected or deselected. | |
void | addListener (SelectableListener *) |
void | removeListener (SelectableListener *) |
void | addSelectableListener (SelectableListener *) |
void | removeSelectableListener (SelectableListener *) |
void | cancelAnyPendingUpdates () |
If changed() has been called, this will cancel any pending async change notificaions. | |
void | deselect () |
void | propertiesChanged () |
void | notifyListenersOfDeletion () |
WeakRef | getWeakRef () |
![]() | |
virtual | ~Exportable ()=default |
![]() | |
AutomatableEditItem (Edit &, const juce::ValueTree &) | |
~AutomatableEditItem () override | |
virtual void | restorePluginStateFromValueTree (const juce::ValueTree &) |
juce::Array< AutomatableParameter * > | getAutomatableParameters () const |
int | getNumAutomatableParameters () const |
AutomatableParameter::Ptr | getAutomatableParameter (int index) const |
AutomatableParameter::Ptr | getAutomatableParameterByID (const juce::String ¶mID) const |
void | visitAllAutomatableParams (const std::function< void(AutomatableParameter &)> &visit) const |
void | deleteParameter (AutomatableParameter *) |
void | deleteAutomatableParameters () |
int | indexOfAutomatableParameter (const AutomatableParameter::Ptr &) const |
AutomatableParameterTree & | getParameterTree () const |
juce::ReferenceCountedArray< AutomatableParameter > | getFlattenedParameterTree () const |
void | addParameterListChangeListener (ParameterListChangeListener *) |
void | removeParameterListChangeListener (ParameterListChangeListener *) |
bool | isAutomationNeeded () const noexcept |
void | setAutomatableParamPosition (TimePosition) |
bool | isBeingActivelyPlayed () const |
virtual void | updateAutomatableParamPosition (TimePosition) |
Updates all the auto params to their positions at this time. | |
void | updateParameterStreams (TimePosition) |
Updates all the parameter streams to their positions at this time. | |
void | updateActiveParameters () |
Iterates all the parameters to find out which ones need to be automated. | |
void | resetRecordingStatus () |
Marks the end of an automation recording stream. | |
![]() | |
EditItem (EditItemID, Edit &) | |
EditItem (Edit &, const juce::ValueTree &) | |
virtual | ~EditItem ()=default |
![]() | |
MacroParameterElement (Edit &, const juce::ValueTree &) | |
Constructor. | |
virtual | ~MacroParameterElement ()=default |
Destructor. | |
MacroParameterList * | getMacroParameterList () |
If no parameters have been created, this may return nullptr. | |
MacroParameterList & | getMacroParameterListForWriting () |
This ensures that the list has been created. | |
juce::ReferenceCountedArray< MacroParameter > | getMacroParameters () const |
Static Public Member Functions | |
static bool | areSelectedPluginsRackable (SelectionManager &) |
static RackInstance * | wrapSelectedPluginsInRack (SelectionManager &) |
static void | sortPlugins (Plugin::Array &) |
static void | sortPlugins (std::vector< Plugin * > &) |
![]() | |
static void | initialise () |
static bool | isSelectableValid (const Selectable *) noexcept |
checks whether this object has been deleted. | |
![]() | |
static juce::Array< Exportable * > | addAllExportables (Edit &) |
Returns all the Exportables contained in an Edit. | |
Public Attributes | |
std::unique_ptr< WindowState > | windowState |
Engine & | engine |
juce::ValueTree | state |
![]() | |
WeakRef::Master | masterReference |
![]() | |
juce::ValueTree | elementState |
juce::CachedValue< bool > | remapOnTempoChange |
![]() | |
Edit & | edit |
const EditItemID | itemID |
Every EditItem has an ID which is unique within the edit. | |
![]() | |
Edit & | ownerEdit |
juce::ValueTree | parentStateForList |
Protected Member Functions | |
void | valueTreePropertyChanged (juce::ValueTree &, const juce::Identifier &) override |
void | valueTreeChanged () override |
void | valueTreeChildAdded (juce::ValueTree &, juce::ValueTree &) override |
void | valueTreeChildRemoved (juce::ValueTree &, juce::ValueTree &, int) override |
void | valueTreeParentChanged (juce::ValueTree &) override |
virtual void | processingChanged () |
![]() | |
virtual void | buildParameterTree () const |
void | updateLastPlaybackTime () |
void | clearParameterList () |
void | addAutomatableParameter (const AutomatableParameter::Ptr &) |
void | rebuildParameterTree () |
void | saveChangedParametersToState () |
Saves the explicit value of any parameters that have deviated to the state. | |
void | restoreChangedParametersFromState () |
Restores the value of any explicitly set parameters. | |
![]() | |
void | valueTreePropertyChanged (juce::ValueTree &, const juce::Identifier &) override |
void | valueTreeChildAdded (juce::ValueTree &, juce::ValueTree &) override |
void | valueTreeChildRemoved (juce::ValueTree &, juce::ValueTree &, int) override |
void | valueTreeChildOrderChanged (juce::ValueTree &, int, int) override |
void | valueTreeParentChanged (juce::ValueTree &) override |
void | valueTreeRedirected (juce::ValueTree &) override |
Static Protected Member Functions | |
static void | getLeftRightChannelNames (juce::StringArray *ins, juce::StringArray *outs) |
static void | getLeftRightChannelNames (juce::StringArray *chans) |
Protected Attributes | |
juce::CachedValue< AtomicWrapper< bool > > | enabled |
juce::CachedValue< bool > | frozen |
juce::CachedValue< bool > | processing |
juce::CachedValue< juce::String > | quickParamName |
juce::CachedValue< EditItemID > | masterPluginID |
juce::CachedValue< EditItemID > | sidechainSourceID |
double | sampleRate = 44100.0 |
int | blockSizeSamples = 512 |
using tracktion::engine::Plugin::Ptr = juce::ReferenceCountedObjectPtr<Plugin> |
using tracktion::engine::Plugin::Array = juce::ReferenceCountedArray<Plugin> |
tracktion::engine::Plugin::Plugin | ( | PluginCreationInfo | ) |
|
override |
|
overridevirtual |
Called just before the selectable is about to be deleted so any subclasses should still be valid at this point.
Reimplemented from tracktion::engine::Selectable.
void tracktion::engine::Plugin::playStartedOrStopped | ( | ) |
called by the system to let the plugin manage its automation stuff
Gives the plugin a chance to do extra initialisation when it's been added to an edit.
Reimplemented in tracktion::engine::ExternalPlugin, and tracktion::engine::FreezePointPlugin.
Reimplemented from tracktion::engine::AutomatableEditItem.
Reimplemented in tracktion::engine::AirWindowsPlugin, and tracktion::engine::ExternalPlugin.
|
overridepure virtual |
The name of the type, e.g.
"Compressor"
Implements tracktion::engine::EditItem.
Implemented in tracktion::engine::ChorusPlugin, tracktion::engine::CompressorPlugin, tracktion::engine::DelayPlugin, tracktion::engine::EqualiserPlugin, tracktion::engine::FourOscPlugin, tracktion::engine::ImpulseResponsePlugin, tracktion::engine::LatencyPlugin, tracktion::engine::LowPassPlugin, tracktion::engine::MidiModifierPlugin, tracktion::engine::MidiPatchBayPlugin, tracktion::engine::PatchBayPlugin, tracktion::engine::PhaserPlugin, tracktion::engine::PitchShiftPlugin, tracktion::engine::ReverbPlugin, tracktion::engine::SamplerPlugin, tracktion::engine::ToneGeneratorPlugin, tracktion::engine::ExternalPlugin, tracktion::engine::AuxReturnPlugin, tracktion::engine::AuxSendPlugin, tracktion::engine::FreezePointPlugin, tracktion::engine::InsertPlugin, tracktion::engine::LevelMeterPlugin, tracktion::engine::RackInstance, tracktion::engine::TextPlugin, tracktion::engine::VCAPlugin, and tracktion::engine::VolumeAndPanPlugin.
Referenced by getShortName().
|
pure virtual |
Implemented in tracktion::engine::ChorusPlugin, tracktion::engine::CompressorPlugin, tracktion::engine::DelayPlugin, tracktion::engine::EqualiserPlugin, tracktion::engine::FourOscPlugin, tracktion::engine::ImpulseResponsePlugin, tracktion::engine::LatencyPlugin, tracktion::engine::LowPassPlugin, tracktion::engine::MidiModifierPlugin, tracktion::engine::MidiPatchBayPlugin, tracktion::engine::PatchBayPlugin, tracktion::engine::PhaserPlugin, tracktion::engine::PitchShiftPlugin, tracktion::engine::ReverbPlugin, tracktion::engine::SamplerPlugin, tracktion::engine::ToneGeneratorPlugin, tracktion::engine::ExternalPlugin, tracktion::engine::AuxReturnPlugin, tracktion::engine::AuxSendPlugin, tracktion::engine::FreezePointPlugin, tracktion::engine::InsertPlugin, tracktion::engine::LevelMeterPlugin, tracktion::engine::RackInstance, tracktion::engine::TextPlugin, tracktion::engine::VCAPlugin, and tracktion::engine::VolumeAndPanPlugin.
Referenced by getIdentifierString().
|
virtual |
Reimplemented in tracktion::engine::ExternalPlugin.
Reimplemented in tracktion::engine::AuxReturnPlugin, tracktion::engine::AuxSendPlugin, tracktion::engine::ChorusPlugin, tracktion::engine::CompressorPlugin, tracktion::engine::EqualiserPlugin, tracktion::engine::FourOscPlugin, tracktion::engine::ImpulseResponsePlugin, tracktion::engine::LowPassPlugin, tracktion::engine::MidiModifierPlugin, tracktion::engine::MidiPatchBayPlugin, tracktion::engine::PatchBayPlugin, tracktion::engine::PitchShiftPlugin, tracktion::engine::SamplerPlugin, tracktion::engine::ToneGeneratorPlugin, tracktion::engine::InsertPlugin, tracktion::engine::LevelMeterPlugin, and tracktion::engine::VolumeAndPanPlugin.
References getName().
|
virtual |
A unique string to idenitify plugin independant of install location.
Reimplemented in tracktion::engine::ExternalPlugin.
References getPluginType().
|
virtual |
default returns the name, others can return special stuff if needed
Reimplemented in tracktion::engine::EqualiserPlugin, tracktion::engine::ExternalPlugin, tracktion::engine::FreezePointPlugin, tracktion::engine::LevelMeterPlugin, and tracktion::engine::RackInstance.
This is a bit different to being enabled as when frozen a plugin can't be interacted with.
Enable/Disable processing.
If processing is disabled, plugin should minimize memory usage and release any resources possilbe
References processing.
|
noexcept |
References processing.
|
pure virtual |
Gives the plugin a chance to set itself up before being played.
This won't be called concurrently with the process thread.
The sample rate and the average block size - although the blocks won't always be the same, and may be bigger.
Don't call this directly or the initialise count will become out of sync.
Implemented in tracktion::engine::AirWindowsPlugin, tracktion::engine::ChorusPlugin, tracktion::engine::CompressorPlugin, tracktion::engine::DelayPlugin, tracktion::engine::EqualiserPlugin, tracktion::engine::FourOscPlugin, tracktion::engine::ImpulseResponsePlugin, tracktion::engine::LatencyPlugin, tracktion::engine::LowPassPlugin, tracktion::engine::MidiModifierPlugin, tracktion::engine::MidiPatchBayPlugin, tracktion::engine::PatchBayPlugin, tracktion::engine::PhaserPlugin, tracktion::engine::PitchShiftPlugin, tracktion::engine::ReverbPlugin, tracktion::engine::SamplerPlugin, tracktion::engine::ToneGeneratorPlugin, tracktion::engine::ExternalPlugin, tracktion::engine::AuxReturnPlugin, tracktion::engine::AuxSendPlugin, tracktion::engine::FreezePointPlugin, tracktion::engine::InsertPlugin, tracktion::engine::LevelMeterPlugin, tracktion::engine::RackInstance, tracktion::engine::TextPlugin, tracktion::engine::VCAPlugin, and tracktion::engine::VolumeAndPanPlugin.
|
virtual |
Tells the plugin that the audio graph has changed but the plugin isn't being re-initialised - i.e.
it's being re-used, maybe by being moved to a different track, etc. This can be called concurrently whilst the plugin is being processed so implementations of it must be thread safe. [[ message_thread ]]
Reimplemented in tracktion::engine::AuxSendPlugin, tracktion::engine::InsertPlugin, tracktion::engine::LevelMeterPlugin, and tracktion::engine::VolumeAndPanPlugin.
Called after play stops to release resources.
Don't call this directly or the initialise count will become out of sync.
Implemented in tracktion::engine::AirWindowsPlugin, tracktion::engine::ChorusPlugin, tracktion::engine::CompressorPlugin, tracktion::engine::DelayPlugin, tracktion::engine::EqualiserPlugin, tracktion::engine::FourOscPlugin, tracktion::engine::ImpulseResponsePlugin, tracktion::engine::LatencyPlugin, tracktion::engine::LowPassPlugin, tracktion::engine::MidiModifierPlugin, tracktion::engine::MidiPatchBayPlugin, tracktion::engine::PatchBayPlugin, tracktion::engine::PhaserPlugin, tracktion::engine::PitchShiftPlugin, tracktion::engine::ReverbPlugin, tracktion::engine::SamplerPlugin, tracktion::engine::ToneGeneratorPlugin, tracktion::engine::ExternalPlugin, tracktion::engine::AuxReturnPlugin, tracktion::engine::AuxSendPlugin, tracktion::engine::FreezePointPlugin, tracktion::engine::InsertPlugin, tracktion::engine::LevelMeterPlugin, tracktion::engine::RackInstance, tracktion::engine::TextPlugin, tracktion::engine::VCAPlugin, and tracktion::engine::VolumeAndPanPlugin.
Should reset synth voices, tails, clear delay buffers, etc.
Reimplemented in tracktion::engine::DelayPlugin, tracktion::engine::FourOscPlugin, tracktion::engine::ImpulseResponsePlugin, tracktion::engine::ReverbPlugin, and tracktion::engine::ExternalPlugin.
Track name or colour has changed.
Reimplemented in tracktion::engine::ExternalPlugin.
Tells the plugin to turn off any playing notes, if applicable.
Reimplemented in tracktion::engine::FourOscPlugin, and tracktion::engine::ExternalPlugin.
|
pure virtual |
Process the next block of data.
The incoming buffer will have an unknown number of channels, and the plugin has to deal with them however it wants to.
The buffer should be resized to the number of output channels that the plugin wants to return (which should be the same or less than the number of output channel names it returns from getChannelNames() - never more than this).
Implemented in tracktion::engine::AirWindowsPlugin, tracktion::engine::ChorusPlugin, tracktion::engine::CompressorPlugin, tracktion::engine::DelayPlugin, tracktion::engine::EqualiserPlugin, tracktion::engine::FourOscPlugin, tracktion::engine::ImpulseResponsePlugin, tracktion::engine::LatencyPlugin, tracktion::engine::LowPassPlugin, tracktion::engine::MidiModifierPlugin, tracktion::engine::MidiPatchBayPlugin, tracktion::engine::PatchBayPlugin, tracktion::engine::PhaserPlugin, tracktion::engine::PitchShiftPlugin, tracktion::engine::ReverbPlugin, tracktion::engine::SamplerPlugin, tracktion::engine::ToneGeneratorPlugin, tracktion::engine::ExternalPlugin, tracktion::engine::AuxReturnPlugin, tracktion::engine::AuxSendPlugin, tracktion::engine::FreezePointPlugin, tracktion::engine::InsertPlugin, tracktion::engine::LevelMeterPlugin, tracktion::engine::RackInstance, tracktion::engine::TextPlugin, tracktion::engine::VCAPlugin, and tracktion::engine::VolumeAndPanPlugin.
|
virtual |
Called between successive rendering blocks.
Reimplemented in tracktion::engine::RackInstance.
void tracktion::engine::Plugin::applyToBufferWithAutomation | ( | const PluginRenderContext & | ) |
Plugins can return false if they want to avoid the overhead of measuring the CPU usage.
It's a small overhead but with many tracks, the level meters and vol/pan plugins can make a difference.
Reimplemented in tracktion::engine::LevelMeterPlugin, and tracktion::engine::VolumeAndPanPlugin.
|
noexcept |
Returns the proportion of the current buffer size spent processing this plugin.
|
virtual |
This must return the number of output channels that the plugin will produce, given a number of input channels.
E.g. some might be able to do mono, so will return 1 if the input is 1, 2 if it is 2, etc.
The default impl just returns the number of items that getChannelNames() returns.
Reimplemented in tracktion::engine::AirWindowsPlugin, tracktion::engine::ChorusPlugin, tracktion::engine::CompressorPlugin, tracktion::engine::DelayPlugin, tracktion::engine::EqualiserPlugin, tracktion::engine::FourOscPlugin, tracktion::engine::LowPassPlugin, tracktion::engine::PhaserPlugin, tracktion::engine::PitchShiftPlugin, tracktion::engine::ReverbPlugin, tracktion::engine::SamplerPlugin, tracktion::engine::ToneGeneratorPlugin, tracktion::engine::AuxReturnPlugin, tracktion::engine::AuxSendPlugin, tracktion::engine::FreezePointPlugin, tracktion::engine::LevelMeterPlugin, tracktion::engine::TextPlugin, tracktion::engine::ExternalPlugin, tracktion::engine::VolumeAndPanPlugin, tracktion::engine::MidiModifierPlugin, tracktion::engine::MidiPatchBayPlugin, and tracktion::engine::RackInstance.
Reimplemented in tracktion::engine::AirWindowsPlugin, tracktion::engine::FourOscPlugin, tracktion::engine::SamplerPlugin, tracktion::engine::ToneGeneratorPlugin, tracktion::engine::ExternalPlugin, tracktion::engine::AuxReturnPlugin, tracktion::engine::FreezePointPlugin, tracktion::engine::RackInstance, and tracktion::engine::TextPlugin.
References tracktion::engine::AutomatableEditItem::isAutomationNeeded().
Reimplemented in tracktion::engine::ExternalPlugin.
Reimplemented in tracktion::engine::AirWindowsPlugin, tracktion::engine::FourOscPlugin, tracktion::engine::MidiModifierPlugin, tracktion::engine::MidiPatchBayPlugin, tracktion::engine::SamplerPlugin, tracktion::engine::ExternalPlugin, tracktion::engine::AuxReturnPlugin, tracktion::engine::AuxSendPlugin, tracktion::engine::InsertPlugin, and tracktion::engine::RackInstance.
References isSynth().
Reimplemented in tracktion::engine::FourOscPlugin, tracktion::engine::SamplerPlugin, tracktion::engine::ToneGeneratorPlugin, tracktion::engine::ExternalPlugin, and tracktion::engine::RackInstance.
Referenced by takesAudioInput().
Reimplemented in tracktion::engine::FourOscPlugin, and tracktion::engine::ExternalPlugin.
AutomatableParameter * tracktion::engine::Plugin::addParam | ( | const juce::String & | paramID, |
const juce::String & | name, | ||
juce::NormalisableRange< float > | valueRange | ||
) |
AutomatableParameter * tracktion::engine::Plugin::addParam | ( | const juce::String & | paramID, |
const juce::String & | name, | ||
juce::NormalisableRange< float > | valueRange, | ||
std::function< juce::String(float)> | valueToStringFunction, | ||
std::function< float(const juce::String &)> | stringToValueFunction | ||
) |
juce::StringArray tracktion::engine::Plugin::getInputChannelNames | ( | ) |
juce::StringArray tracktion::engine::Plugin::getSidechainSourceNames | ( | bool | allowNone | ) |
juce::String tracktion::engine::Plugin::getSidechainSourceName | ( | ) |
void tracktion::engine::Plugin::guessSidechainRouting | ( | ) |
int tracktion::engine::Plugin::getNumWires | ( | ) | const |
void tracktion::engine::Plugin::makeConnection | ( | int | srcChannel, |
int | dstChannel, | ||
juce::UndoManager * | |||
) |
|
virtual |
If it's a synth that names its notes, this can return the name it uses for this note 0-127.
Midi channel is 1-16
Reimplemented in tracktion::engine::SamplerPlugin, and tracktion::engine::ExternalPlugin.
|
virtual |
Returns the name for a midi program, if there is one.
programNum = 0 to 127.
Reimplemented in tracktion::engine::ExternalPlugin.
|
virtual |
Reimplemented in tracktion::engine::AirWindowsPlugin, tracktion::engine::MidiModifierPlugin, tracktion::engine::MidiPatchBayPlugin, tracktion::engine::PatchBayPlugin, tracktion::engine::AuxReturnPlugin, tracktion::engine::AuxSendPlugin, tracktion::engine::FreezePointPlugin, tracktion::engine::InsertPlugin, and tracktion::engine::VCAPlugin.
Reimplemented in tracktion::engine::AirWindowsPlugin, tracktion::engine::MidiPatchBayPlugin, tracktion::engine::PatchBayPlugin, tracktion::engine::AuxReturnPlugin, tracktion::engine::AuxSendPlugin, tracktion::engine::FreezePointPlugin, tracktion::engine::RackInstance, tracktion::engine::VCAPlugin, and tracktion::engine::VolumeAndPanPlugin.
Reimplemented in tracktion::engine::TextPlugin, and tracktion::engine::VCAPlugin.
Reimplemented in tracktion::engine::FreezePointPlugin.
Reimplemented in tracktion::engine::PatchBayPlugin, tracktion::engine::FreezePointPlugin, and tracktion::engine::LevelMeterPlugin.
Reimplemented in tracktion::engine::VCAPlugin, and tracktion::engine::VolumeAndPanPlugin.
Plugins can be disabled to avoid them crashing Edits.
Reimplemented in tracktion::engine::ExternalPlugin.
bool tracktion::engine::Plugin::isInRack | ( | ) | const |
juce::ReferenceCountedObjectPtr< RackType > tracktion::engine::Plugin::getOwnerRackType | ( | ) | const |
bool tracktion::engine::Plugin::isClipEffectPlugin | ( | ) | const |
|
virtual |
Reimplemented in tracktion::engine::ExternalPlugin.
AutomatableParameter::Ptr tracktion::engine::Plugin::getQuickControlParameter | ( | ) | const |
void tracktion::engine::Plugin::setQuickControlParameter | ( | AutomatableParameter * | ) |
Attempts to delete this plugin, whether it's a master plugin, track plugin, etc.
This will call removeFromParent but also hide any automation parameters etc. being shown on tracks and hide plugin windows etc. Use this method if the plugin is being fully deleted from the Edit.
Reimplemented in tracktion::engine::ExternalPlugin.
void tracktion::engine::Plugin::removeFromParent | ( | ) |
Detaches the plugin from any parent it might be in.
This is a little more complicated than just removing its ValueTree from its parent one. Use this method if the plugin is to be inserted somewhere else in the Edit.
Track * tracktion::engine::Plugin::getOwnerTrack | ( | ) | const |
Returns the track if it's a track or clip plugin.
Clip * tracktion::engine::Plugin::getOwnerClip | ( | ) | const |
Returns the clip if that's what it's in.
PluginList * tracktion::engine::Plugin::getOwnerList | ( | ) | const |
Ptr tracktion::engine::Plugin::findPluginThatFeedsIntoThis | ( | ) | const |
Ptr tracktion::engine::Plugin::findPluginThatThisFeedsInto | ( | ) | const |
|
overridevirtual |
method from Selectable, that's been overridden here to also tell the edit that it's changed.
Reimplemented from tracktion::engine::Selectable.
|
overridevirtual |
Implements tracktion::engine::Exportable.
Reimplemented in tracktion::engine::SamplerPlugin.
|
overridevirtual |
Implements tracktion::engine::Exportable.
Reimplemented in tracktion::engine::SamplerPlugin.
Called when ProjectItem sources are re-assigned so you can reload from the new source.
Reimplemented in tracktion::engine::SamplerPlugin.
|
static |
|
static |
|
static |
bool tracktion::engine::Plugin::setPluginToMirror | ( | const Plugin::Ptr & | ) |
Reimplemented in tracktion::engine::ExternalPlugin.
Plugin::Ptr tracktion::engine::Plugin::getMirroredPlugin | ( | ) | const |
|
noexcept |
void tracktion::engine::Plugin::baseClassInitialise | ( | const PluginInitialisationInfo & | ) |
void tracktion::engine::Plugin::baseClassDeinitialise | ( | ) |
void tracktion::engine::Plugin::setSidechainSourceID | ( | EditItemID | newID | ) |
References sidechainSourceID.
EditItemID tracktion::engine::Plugin::getSidechainSourceID | ( | ) | const |
References sidechainSourceID.
|
virtual |
Reimplemented in tracktion::engine::ExternalPlugin.
void tracktion::engine::Plugin::showWindowExplicitly | ( | ) |
void tracktion::engine::Plugin::hideWindowForShutdown | ( | ) |
|
noexcept |
bool tracktion::engine::Plugin::isInitialising | ( | ) | const |
|
overrideprotected |
|
overrideprotectedvirtual |
Implements tracktion::engine::ValueTreeAllEventListener.
|
overrideprotected |
|
overrideprotected |
|
overrideprotected |
Reimplemented in tracktion::engine::ExternalPlugin.
|
staticprotected |
|
staticprotected |
std::unique_ptr<WindowState> tracktion::engine::Plugin::windowState |
Engine& tracktion::engine::Plugin::engine |
juce::ValueTree tracktion::engine::Plugin::state |
|
protected |
Referenced by isEnabled().
|
protected |
Referenced by isFrozen().
|
protected |
Referenced by isProcessingEnabled(), and setProcessingEnabled().
|
protected |
|
protected |
|
protected |
Referenced by getSidechainSourceID(), and setSidechainSourceID().
|
protected |
|
protected |