Public Member Functions | List of all members
Modulator Class Referenceabstract

A modulator is a Processor that encapsulates modulation behaviour and returns a float value between 0.0 and 1.0. More...

Inheritance diagram for Modulator:
Processor SafeChangeBroadcaster RestorableObject ControlledObject Dispatchable EnvelopeModulator TimeVariantModulator VoiceStartModulator AhdsrEnvelope ModulatorChain MonophonicEnvelope MPEModulator SimpleEnvelope TableEnvelope AudioFileEnvelope ControlModulator GlobalTimeVariantModulator LfoModulator MacroModulator PitchwheelModulator ArrayModulator ConstantModulator GlobalStaticTimeVariantModulator GlobalVoiceStartModulator KeyModulator RandomModulator VelocityModulator

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 ProcessorEditorBodycreateEditor (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 ProcessorgetChildProcessor (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 MainControllergetMainController () const noexcept
 Provides read-only access to the main controller. More...
 
MainControllergetMainController () 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...
 

Detailed Description

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.

See also
ModulatorChain, ModulatorEditor

Constructor & Destructor Documentation

Modulator ( MainController m,
const String &  id,
int  numVoices 
)

Creates a new modulator with the given Identifier.

Member Function Documentation

virtual int getNumChildProcessors ( ) const
inlineoverridevirtual

Normally a Modulator has no child processors, you can overwrite it if you use internal chains.

Implements Processor.

Reimplemented in ModulatorChain.

virtual void handleHiseEvent ( const HiseEvent )
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.

void setColour ( Colour  c)
virtual

Sets the colour of the modulator.

©2017 HISE. This documentation is autogenerated from the HISE source code using Doxygen.