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

Classes

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
inlineoverridevirtual

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

Reimplemented from ModulatorSynth.

int getNumChildProcessors ( ) const
inlineoverridevirtual

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

Reimplemented from ModulatorSynth.

void prepareToPlay ( double  newSampleRate,
int  samplesPerBlock 
)
inlineoverridevirtual

Prepares all ModulatorSynths for playback.

Reimplemented from ModulatorSynth.

void renderNextBlockWithModulators ( AudioSampleBuffer &  buffer,
const HiseEventBuffer &  inputMidiBuffer 
)
overridevirtual

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)
inlineoverridevirtual

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.