All Classes Namespaces Functions Variables Enumerations Enumerator Modules Pages
Classes | Public Member Functions | List of all members
ModulatorSynthChain Class Reference
Inheritance diagram for ModulatorSynthChain:
ModulatorSynth MacroControlBroadcaster Chain Processor RoutableProcessor SafeChangeBroadcaster RestorableObject ControlledObject


class  ModulatorSynthChainHandler

Public Member Functions

int getNumChildProcessors () const override
const ProcessorgetChildProcessor (int processorIndex) const override
void prepareToPlay (double newSampleRate, int samplesPerBlock) override
void restoreFromValueTree (const ValueTree &v) override
void compileAllScripts ()
void renderNextBlockWithModulators (AudioSampleBuffer &buffer, const HiseEventBuffer &inputMidiBuffer) override
- Public Member Functions inherited from ModulatorSynth
virtual void preVoiceRendering (int startSample, int numThisTime)
void renderVoice (int startSample, int numThisTime)
virtual void postVoiceRendering (int startSample, int numThisTime)
void handleHiseEvent (const HiseEvent &e)
void killAllVoicesWithNoteNumber (int noteNumber)
void killLastVoice ()
virtual bool soundCanBePlayed (ModulatorSynthSound *sound, int midiChannel, int midiNoteNumber, float velocity)
void noteOn (const HiseEvent &m)
int getVoiceIndex (const SynthesiserVoice *v) const
virtual void initRenderCallback ()
void setGain (float newGain)
void setBalance (float newBalance)
float getBalance (bool getRightChannelGain) const
float getGain () const
void setGroup (ModulatorSynthGroup *parent)
ModulatorSynthGroupgetGroup () const
bool isInGroup () const
int getIndexInGroup () const
void setClockSpeed (ClockSpeed newClockSpeed)
const float * getConstantPitchValues () const
const CriticalSection & getSynthLock () const
virtual void handleRetriggeredNote (ModulatorSynthVoice *voice)
const float * calculateGainValuesForVoice (int voiceIndex, float scriptGainValue, int startSample, int numSamples)
void calculatePitchValuesForVoice (int voiceIndex, float scriptPitchValue, int startSample, int numSamples)
const float * getPitchValuesForVoice (int voiceIndex) const
float * getPitchValuesForVoice (int voiceIndex)
- Public Member Functions inherited from Processor
 Processor (MainController *m, const String &id_)
virtual ~Processor ()
virtual const Identifier getType () const =0
const Path getSymbol () const
void setSymbol (Path newSymbol)
void setAttribute (int parameterIndex, float newValue, juce::NotificationType notifyEditor)
void enableConsoleOutput (bool shouldBeEnabled)
const String & getId () const
virtual const String getName () const
bool isBypassed () const noexcept
double getSampleRate () const
int getBlockSize () const
float getOutputValue () const
float getInputValue () const
void setEditorState (int state, bool isOn, NotificationType notifyView=sendNotification)
bool getEditorState (int state) const
void restoreCompleteEditorState (const XmlElement *storedState)
const Identifier getIdentifierForParameterIndex (int parameterIndex) const
int getNumParameters () const
void setIsOnAir (bool isBeingProcessedInAudioThread)
const CriticalSection & getDummyLockWhenNotOnAir () const
- Public Member Functions inherited from SafeChangeBroadcaster
void sendSynchronousChangeMessage ()
void addChangeListener (SafeChangeListener *listener)
void removeChangeListener (SafeChangeListener *listener)
void removeAllChangeListeners ()
void sendChangeMessage (const String &=String())
void sendAllocationFreeChangeMessage ()
- Public Member Functions inherited from ControlledObject
 ControlledObject (MainController *m)
const MainControllergetMainController () const noexcept
MainControllergetMainController () noexcept
- Public Member Functions inherited from RoutableProcessor
void editRouting (Component *childComponent)
int getLeftSourceChannel () const
int getRightSourceChannel () const
int getLeftDestinationChannel () const
int getRightDestinationChannel () const
- Public Member Functions inherited from MacroControlBroadcaster
 MacroControlBroadcaster (ModulatorSynthChain *chain)
void setMacroControl (int macroIndex, float newValue, NotificationType notifyEditor=dontSendNotification)
int getMacroControlIndexForProcessorParameter (const Processor *p, int parameter) const
void addControlledParameter (int macroControllerIndex, const String &processorId, int parameterId, const String &parameterName, NormalisableRange< double > range, bool readOnly=true)
MacroControlDatagetMacroControlData (int index)
const MacroControlDatagetMacroControlData (int index) const
void loadMacroValuesFromValueTree (const ValueTree &v)
void clearData (int macroIndex)
bool hasActiveParameters (int macroIndex)
void replaceMacroControlData (int index, MacroControlData *newData, ModulatorSynthChain *parentChain)
- Public Member Functions inherited from Chain
bool restoreChain (const ValueTree &v)

Additional Inherited Members

- Public Types inherited from ModulatorSynth
enum  InternalChains
- Public Types inherited from Processor
enum  SpecialParameters
enum  InternalChains
- Static Public Member Functions inherited from MacroControlBroadcaster
static ProcessorfindProcessor (Processor *p, const String &idToSearch)
- Protected Member Functions inherited from Processor
virtual Path getSpecialSymbol () const
void setOutputValue (float newValue)
void setInputValue (float newValue, NotificationType notify=sendNotification)

Detailed Description

A ModulatorSynthChain processes multiple independent ModulatorSynth instances.

This class is supposed to be a wrapper for ModulatorSynths which are processed individually with their own MidiProcessors, Modulators and Effects. You can add some MidiProcessors which will be applied to all chains as well as non polyphonic gain Modulators (like a LfoModulator) which will be applied to the sum of the chain. However, midi messages are not recognized by those modulators (because they are not evaluated on the ModulatorSynthChain level), so don't expect too much.

If you want to create a group of ModulatorSynths that share common Modulators / MidiProcessors, use a ModulatorSynthGroup instead.

A ModulatorSynthChain also allows macro controls which can control any Parameter of every sub processor.

Member Function Documentation

void compileAllScripts ( )

Compiles all scripts in this chain.

If a ScriptProcessor is restored, the script will not be compiled immediately, because it could rely on other Processors that are created afterwards. Call this function after every processor is created (normally after the restoreFromValueTree function).

const Processor* getChildProcessor ( int  processorIndex) const

returns the total amount of child groups (internal chains + all child synths)

Reimplemented from ModulatorSynth.

int getNumChildProcessors ( ) const

returns the total amount of child groups (internal chains + all child synths)

Reimplemented from ModulatorSynth.

void prepareToPlay ( double  newSampleRate,
int  samplesPerBlock 

Prepares all ModulatorSynths for playback.

Reimplemented from ModulatorSynth.

void renderNextBlockWithModulators ( AudioSampleBuffer &  buffer,
const HiseEventBuffer &  inputMidiBuffer 

This renders the child synths:

  • processes the MidiBuffer of the ModulatorSynthChain
  • calls the renderNextBlockWithModulators on the child synths
  • applies the time-variant gain modulators (no midi support!)
  • applies the gain of the chain.

Reimplemented from ModulatorSynth.

void restoreFromValueTree ( const ValueTree &  v)

Restores the Processor. Don't forget to call compileAllScripts() !.

Reimplemented from ModulatorSynth.

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