|
TracktionEngine
|
A plugin that applies an explicit channel mapping. More...
#include <tracktion_ChannelMapperPlugin.h>
Public Member Functions | |
| ChannelMapperPlugin (PluginCreationInfo) | |
| ~ChannelMapperPlugin () override | |
| juce::String | getName () const override |
| The name of the type, e.g. | |
| juce::String | getPluginType () override |
| Returns a string identifying the plugin type (used as the XML tag name). | |
| juce::String | getShortName (int) override |
| Returns an abbreviated name, ideally fitting within suggestedLength characters. | |
| juce::String | getSelectableDescription () override |
| Subclasses must return a description of what they are. | |
| bool | takesMidiInput () override |
| bool | canBeAddedToClip () override |
| bool | producesAudioWhenNoAudioInput () override |
| Returns true if the plugin can produce audio when its input is silent (e.g. | |
| BusLayout | getBusses () const override |
| Returns the full input/output bus layout of this plugin. | |
| int | getNumOutputChannelsGivenInputs (int numInputChannels) override |
| Returns the number of output channels this plugin will produce for track routing. | |
| void | initialise (const PluginInitialisationInfo &) override |
| Gives the plugin a chance to set itself up before being played. | |
| void | deinitialise () override |
| Called after play stops to release resources. | |
| void | applyToBuffer (const PluginRenderContext &) override |
| Process the next block of data. | |
| void | restorePluginStateFromValueTree (const juce::ValueTree &) override |
| ChannelMap | getChannelMap () const |
| Returns the current channel map. | |
| void | setChannelMap (const ChannelMap &) |
| Sets a new channel map and stores it in the plugin state. | |
| int | getNumInputChannels () const |
| Returns the number of input channels configured. | |
| int | getNumOutputChannels () const |
| Returns the number of output channels configured. | |
| void | setNumInputChannels (int) |
| Sets the number of input channels. | |
| void | setNumOutputChannels (int) |
| Sets the number of output channels. | |
Public Member Functions inherited from engine::Plugin | |
| 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 | getVendor () |
| Returns the plugin vendor/manufacturer name. | |
| juce::String | getDisplayName () const |
| Returns the custom name if set, otherwise the built-in getName(). | |
| juce::String | getCustomName () const |
| Returns the raw custom name (may be empty). | |
| void | setCustomName (const juce::String &) |
| Sets a custom display name. | |
| virtual juce::String | getIdentifierString () |
| A unique string to identify a plugin independent of install location. | |
| virtual juce::String | getTooltip () |
| Returns a tooltip string for UI display. | |
| virtual void | setEnabled (bool) |
| Enable/disable the plugin. | |
| bool | isEnabled () const noexcept |
| void | setFrozen (bool shouldBeFrozen) |
| Freezing is stronger than disabling – a frozen plugin cannot be interacted with at all. | |
| bool | isFrozen () const noexcept |
| void | setProcessingEnabled (bool p) |
| Enable/disable processing. | |
| bool | isProcessingEnabled () const noexcept |
| 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 | 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 | 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 bool | noTail () |
| Returns true if the plugin has no tail (i.e. | |
| virtual void | getChannelNames (juce::StringArray *ins, juce::StringArray *outs) |
| Fills the provided StringArrays with the names of this plugin's input and/or output channels. | |
| virtual bool | takesAudioInput () |
| Returns true if this plugin should be fed audio from upstream in the chain. | |
| virtual bool | isSynth () |
| virtual double | getLatencySeconds () |
| Returns the plugin's processing latency in seconds. | |
| virtual double | getTailLength () const |
| Returns the length of the plugin's tail in seconds (e.g. | |
| virtual bool | canSidechain () |
| Returns true if this plugin supports sidechain input. | |
| AutomatableParameter * | addParam (const juce::String ¶mID, const juce::String &name, juce::NormalisableRange< float > valueRange) |
| Registers a new automatable parameter owned by this plugin. | |
| 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) |
| Registers a new automatable parameter with custom string conversion functions. | |
| juce::StringArray | getInputChannelNames () |
| Returns the names of this plugin's input channels (convenience wrapper around getChannelNames). | |
| juce::StringArray | getSidechainSourceNames (bool allowNone) |
| Returns the names of available sidechain sources for this plugin. | |
| void | setSidechainSourceByName (const juce::String &name) |
| Sets the sidechain source by its display name. | |
| juce::String | getSidechainSourceName () |
| Returns the display name of the current sidechain source. | |
| void | guessSidechainRouting () |
| Attempts to automatically determine a sensible sidechain routing. | |
| 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 | canBeAddedToRack () |
| virtual bool | canBeAddedToFolderTrack () |
| virtual bool | canBeAddedToMaster () |
| virtual bool | canBeDisabled () |
| virtual bool | canBeMoved () |
| virtual bool | needsConstantBufferSize () |
| Returns true if this plugin requires a constant audio buffer size (no variable-size blocks). | |
| virtual bool | isMissing () |
| Returns true if the plugin's backing file/DLL is missing (e.g. | |
| virtual bool | isDisabled () |
| Returns true if the plugin has been forcibly disabled (e.g. | |
| bool | isInRack () const |
| Returns true if this plugin lives inside a RackType. | |
| juce::ReferenceCountedObjectPtr< RackType > | getOwnerRackType () const |
| bool | isClipEffectPlugin () const |
| Returns true if this plugin is being used as a clip effect. | |
| virtual juce::AudioProcessor * | getWrappedAudioProcessor () const |
| Returns the underlying juce::AudioProcessor, if this plugin wraps one. | |
| 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 |
| Returns the PluginList that contains this plugin. | |
| Ptr | findPluginThatFeedsIntoThis () const |
| Returns the previous plugin in the same PluginList, or nullptr. | |
| Ptr | findPluginThatThisFeedsInto () const |
| Returns the next plugin in the same PluginList, or nullptr. | |
| void | changed () override |
| Marks the plugin as changed and notifies the Edit. | |
| juce::Array< ReferencedItem > | getReferencedItems () override |
| void | reassignReferencedItem (const ReferencedItem &, ProjectItemRef newRef, 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 &) |
| Sets a master plugin whose settings this one will mirror. | |
| virtual void | updateFromMirroredPluginIfNeeded (Plugin &) |
| Called to pull state from the mirrored master. | |
| Plugin::Ptr | getMirroredPlugin () const |
| Returns the plugin this one is mirroring, or nullptr. | |
| bool | baseClassNeedsInitialising () const noexcept |
| Returns true if baseClassInitialise() has not yet been called (or has been fully deinitialised). | |
| void | baseClassInitialise (const PluginInitialisationInfo &) |
| Prepares the plugin for playback. | |
| void | baseClassDeinitialise () |
| Tears down the plugin after playback. | |
| void | setSidechainSourceID (EditItemID newID) |
| EditItemID | getSidechainSourceID () const |
| virtual std::unique_ptr< EditorComponent > | createEditor () |
| Creates a custom editor component for this plugin, or nullptr if none. | |
| void | showWindowExplicitly () |
| Shows the plugin's editor window, creating it if necessary. | |
| void | hideWindowForShutdown () |
| Hides the plugin window during shutdown (avoids dangling references). | |
| juce::UndoManager * | getUndoManager () const noexcept |
| bool | isInitialising () const |
Public Member Functions inherited from 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. | |
| 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 () |
Public Member Functions inherited from engine::Exportable | |
| virtual | ~Exportable ()=default |
Public Member Functions inherited from engine::AutomatableEditItem | |
| AutomatableEditItem (Edit &, const juce::ValueTree &) | |
| ~AutomatableEditItem () override | |
| 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 | resetRecordingStatus () |
| Marks the end of an automation recording stream. | |
| void | updateStreamIterators () |
| void | addActiveParameter (const AutomatableParameter &) |
| void | removeActiveParameter (const AutomatableParameter &) |
| bool | isActiveParameter (AutomatableParameter &) |
Public Member Functions inherited from engine::EditItem | |
| EditItem (EditItemID, Edit &) | |
| EditItem (Edit &, const juce::ValueTree &) | |
| virtual | ~EditItem ()=default |
Public Member Functions inherited from engine::MacroParameterElement | |
| 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 const char * | getPluginName () |
| static juce::ValueTree | create () |
Static Public Member Functions inherited from engine::Plugin | |
| static bool | areSelectedPluginsRackable (SelectionManager &) |
| static RackInstance * | wrapSelectedPluginsInRack (SelectionManager &) |
| static void | sortPlugins (Plugin::Array &) |
| static void | sortPlugins (std::vector< Plugin * > &) |
Static Public Member Functions inherited from engine::Selectable | |
| static void | initialise () |
| static bool | isSelectableValid (const Selectable *) noexcept |
| checks whether this object has been deleted. | |
Static Public Member Functions inherited from engine::Exportable | |
| static juce::Array< Exportable * > | addAllExportables (Edit &) |
| Returns all the Exportables contained in an Edit. | |
Static Public Attributes | |
| static const char * | xmlTypeName |
Additional Inherited Members | |
Public Types inherited from engine::Plugin | |
| enum class | Type { allPlugins , folderTrackPlugins , effectPlugins } |
| Filter categories used when enumerating plugins. More... | |
| using | Ptr = juce::ReferenceCountedObjectPtr< Plugin > |
| using | Array = juce::ReferenceCountedArray< Plugin > |
Public Types inherited from engine::Selectable | |
| using | WeakRef = juce::WeakReference< Selectable > |
Public Attributes inherited from engine::Plugin | |
| std::unique_ptr< WindowState > | windowState |
| Engine & | engine |
| juce::ValueTree | state |
| The ValueTree that stores this plugin's persistent state within the Edit. | |
Public Attributes inherited from engine::Selectable | |
| WeakRef::Master | masterReference |
Public Attributes inherited from engine::AutomatableEditItem | |
| juce::ValueTree | elementState |
| juce::CachedValue< bool > | remapOnTempoChange |
Public Attributes inherited from engine::EditItem | |
| Edit & | edit |
| const EditItemID | itemID |
| Every EditItem has an ID which is unique within the edit. | |
Public Attributes inherited from engine::MacroParameterElement | |
| Edit & | ownerEdit |
| juce::ValueTree | parentStateForList |
Protected Member Functions inherited from engine::Plugin | |
| 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 () |
| Called when the processing enabled state changes. | |
Protected Member Functions inherited from engine::AutomatableEditItem | |
| 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. | |
Protected Member Functions inherited from engine::ValueTreeAllEventListener | |
| 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 inherited from engine::Plugin | |
| static void | getLeftRightChannelNames (juce::StringArray *ins, juce::StringArray *outs) |
| Helper to populate stereo left/right channel name arrays. | |
| static void | getLeftRightChannelNames (juce::StringArray *chans) |
Protected Attributes inherited from engine::Plugin | |
| juce::CachedValue< AtomicWrapper< bool > > | enabled |
| juce::CachedValue< bool > | frozen |
| juce::CachedValue< bool > | processing |
| juce::CachedValue< juce::String > | quickParamName |
| juce::CachedValue< juce::String > | customName |
| juce::CachedValue< EditItemID > | masterPluginID |
| juce::CachedValue< EditItemID > | sidechainSourceID |
| double | sampleRate = 44100.0 |
| Current sample rate and block size, set during baseClassInitialise(). | |
| int | blockSizeSamples = 512 |
A plugin that applies an explicit channel mapping.
This allows users to remap, duplicate, or sum audio channels on a track. The mapping is stored as a serialized string of source->dest pairs in the plugin's ValueTree state.
| engine::ChannelMapperPlugin::ChannelMapperPlugin | ( | PluginCreationInfo | ) |
|
override |
|
static |
|
overridevirtual |
|
overridevirtual |
Returns a string identifying the plugin type (used as the XML tag name).
Implements engine::Plugin.
|
overridevirtual |
Returns an abbreviated name, ideally fitting within suggestedLength characters.
Reimplemented from engine::Plugin.
|
overridevirtual |
Subclasses must return a description of what they are.
Implements engine::Selectable.
|
overridevirtual |
Reimplemented from engine::Plugin.
|
overridevirtual |
Reimplemented from engine::Plugin.
|
overridevirtual |
Returns true if the plugin can produce audio when its input is silent (e.g.
synths, plugins with tails, or plugins driven by automation).
Reimplemented from engine::Plugin.
|
overridevirtual |
Returns the full input/output bus layout of this plugin.
Every concrete plugin must declare its bus topology here. Multi-out plugins (e.g. ExternalPlugin hosting a VST3 with multiple output buses) report each output bus as a separate entry in the returned layout's outputs list; the first entry is the main bus.
Consumers that only need the main bus can use e.g. getBusses().outputs.front().
Implements engine::Plugin.
|
overridevirtual |
Returns the number of output channels this plugin will produce for track routing.
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 returns the number of items that getChannelNames() returns. Subclasses with sidechain buses must override this to return only the main bus output count, since sidechain channels are routed separately.
Reimplemented from engine::Plugin.
|
overridevirtual |
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.
Implements engine::Plugin.
|
overridevirtual |
Called after play stops to release resources.
Don't call this directly or the initialise count will become out of sync.
Implements engine::Plugin.
|
overridevirtual |
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).
Implements engine::Plugin.
|
overridevirtual |
Reimplemented from engine::AutomatableEditItem.
| ChannelMap engine::ChannelMapperPlugin::getChannelMap | ( | ) | const |
Returns the current channel map.
Sets a new channel map and stores it in the plugin state.
| int engine::ChannelMapperPlugin::getNumInputChannels | ( | ) | const |
Returns the number of input channels configured.
| int engine::ChannelMapperPlugin::getNumOutputChannels | ( | ) | const |
Returns the number of output channels configured.