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.