A modulator is a Processor that encapsulates modulation behaviour and returns a float value between 0.0 and 1.0. More...
Public Member Functions | |
virtual int | getNumChildProcessors () const override |
Normally a Modulator has no child processors, you can overwrite it if you use internal chains. More... | |
virtual void | handleHiseEvent (const HiseEvent &)=0 |
If the modulator uses Midi events, you can specify the behaviour here. More... | |
Modulator (MainController *m, const String &id, int numVoices) | |
Creates a new modulator with the given Identifier. More... | |
virtual void | setColour (Colour c) |
Sets the colour of the modulator. More... | |
Public Member Functions inherited from Processor | |
virtual ProcessorEditorBody * | createEditor (ProcessorEditor *parentEditor)=0 |
Creates a ProcessorEditor for this Processor and returns the pointer. More... | |
void | enableConsoleOutput (bool shouldBeEnabled) |
Enables the Processor to output messages to the Console. More... | |
virtual ValueTree | exportAsValueTree () const override |
This saves the Processor. More... | |
virtual float | getAttribute (int parameterIndex) const =0 |
returns the attribute with the specified index (use a enum in the derived class). More... | |
virtual Processor * | getChildProcessor (int processorIndex)=0 |
This must be overriden by every Processor and return the Chain with the Chain index. More... | |
virtual float | getDefaultValue (int) const |
Overwrite this and return the default value. More... | |
bool | getEditorState (int state) const |
Restores the state of the Processor's editor. More... | |
const String & | getId () const |
Returns the unique id of the Processor instance (!= the Processor name). More... | |
virtual Identifier | getIdentifierForParameterIndex (int parameterIndex) const |
This returns a Identifier with the name of the parameter. More... | |
float | getInputValue () const |
This can be used to display the Processors input value. More... | |
int | getLargestBlockSize () const |
Returns the block size. More... | |
virtual const String | getName () const |
Overwrite this and return a pretty name. More... | |
virtual int | getNumInternalChains () const |
If your processor uses internal chains, you can return the number here. More... | |
int | getNumParameters () const |
This returns the number of (named) parameters. More... | |
float | getOutputValue () const |
This can be used to display the Processors output value. More... | |
double | getSampleRate () const |
Returns the sample rate. More... | |
const Path | getSymbol () const |
Returns the symbol of the Processor. More... | |
virtual const Identifier | getType () const =0 |
Overwrite this method to specify the name. More... | |
int | getVoiceAmount () const noexcept |
getNumVoices() is occupied by the Synthesiser class, d'oh! | |
bool | isBypassed () const noexcept |
Returns true if the processor is bypassed. More... | |
virtual void | prepareToPlay (double sampleRate_, int samplesPerBlock_) |
Sets the sample rate and the block size. More... | |
Processor (MainController *m, const String &id_, int numVoices) | |
Creates a new Processor with the given Identifier. More... | |
void | restoreCompleteEditorState (const XmlElement *storedState) |
Restores the EditorState from a BigInteger that was retrieved using getCompleteEditorState. More... | |
virtual void | restoreFromValueTree (const ValueTree &previouslyExportedProcessorState) override |
Restores a previously saved ValueTree. More... | |
void | setAttribute (int parameterIndex, float newValue, juce::NotificationType notifyEditor) |
Changes a Processor parameter. More... | |
virtual void | setBypassed (bool shouldBeBypassed, NotificationType notifyChangeHandler=dontSendNotification) noexcept |
This bypasses the processor. More... | |
void | setEditorState (int state, bool isOn, NotificationType notifyView=sendNotification) |
Saves the state of the Processor's editor. More... | |
void | setIsOnAir (bool isBeingProcessedInAudioThread) |
Call this method after inserting the processor in the signal chain. More... | |
void | setSymbol (Path newSymbol) |
Sets a special symbol for the Processor. More... | |
virtual | ~Processor () |
Overwrite this if you need custom destruction behaviour. More... | |
Public Member Functions inherited from SafeChangeBroadcaster | |
void | addChangeListener (SafeChangeListener *listener) |
Registers a listener to receive change callbacks from this broadcaster. More... | |
void | removeAllChangeListeners () |
Removes all listeners from the list. More... | |
void | removeChangeListener (SafeChangeListener *listener) |
Unregisters a listener from the list. More... | |
void | sendAllocationFreeChangeMessage () |
This will send a message without allocating a message slot. More... | |
void | sendChangeMessage (const String &=String()) |
Causes an asynchronous change message to be sent to all the registered listeners. More... | |
void | sendSynchronousChangeMessage () |
Sends a synchronous change message to all the registered listeners. More... | |
Public Member Functions inherited from ControlledObject | |
ControlledObject (MainController *m) | |
Creates a new ControlledObject. More... | |
const MainController * | getMainController () const noexcept |
Provides read-only access to the main controller. More... | |
MainController * | getMainController () noexcept |
Provides write access to the main controller. More... | |
Additional Inherited Members | |
Public Types inherited from Processor | |
enum | InternalChains |
Overwrite this enum and list all internal chains. More... | |
enum | SpecialParameters |
Overwrite this enum and add new parameters. More... | |
Protected Member Functions inherited from Processor | |
virtual Path | getSpecialSymbol () const |
Overwrite this method if you want to supply a custom symbol for the Processor. More... | |
void | setInputValue (float newValue, NotificationType notify=sendNotification) |
Call this from the baseclass whenever you want its editor to display a input value change. More... | |
virtual void | setInternalAttribute (int parameterIndex, float newValue)=0 |
Changes a Processor parameter. More... | |
void | setOutputValue (float newValue) |
Call this from the baseclass whenever you want its editor to display a value change. More... | |
A modulator is a Processor that encapsulates modulation behaviour and returns a float value between 0.0 and 1.0.
A Modulator should be always inside a ModulatorChain, which handles the processing according to the characteristics of each Modulator.
In order to create a modulator, subclass one of the two subclasses, VoiceStartModulator or TimeVariantModulator (never subclass this directly), and overwrite the following methods:
const String getType () const; ModulatorEditor *createEditor(); float calculateVoiceStartValue(const MidiMessage &messageThatStartedVoice); XmlElement *getDescription () const; float getAttribute (int parameter_index) const; void setAttribute (int parameter_index, float newValue); float getDisplayValue() const;
There are two handy features to debug a modulator: If plotThisModulator() is set to true, the Modulator will print its output on a popup plotter.
Modulator | ( | MainController * | m, |
const String & | id, | ||
int | numVoices | ||
) |
Creates a new modulator with the given Identifier.
|
inlineoverridevirtual |
Normally a Modulator has no child processors, you can overwrite it if you use internal chains.
Implements Processor.
Reimplemented in ModulatorChain.
|
pure virtual |
If the modulator uses Midi events, you can specify the behaviour here.
This is likely to be used with midi messages that do not trigger a voice start like cc-messages. For the handling of note-on messages better use the calculateVoiceStartValue() method instead.
Implemented in VoiceStartModulator, ModulatorChain, GlobalTimeVariantModulator, AudioFileEnvelope, LfoModulator, PitchwheelModulator, TableEnvelope, MacroModulator, and ControlModulator.
|
virtual |
Sets the colour of the modulator.