A ModulatorSynthGroup is a collection of tightly coupled ModulatorSynth that are processed together. More...
Classes | |
class | ChildSynthIterator |
Iterates over all child synths. More... | |
class | ModulatorSynthGroupHandler |
Handles the ModulatorSynthGroup. More... | |
Public Member Functions | |
Processor * | getChildProcessor (int processorIndex) override |
returns the total amount of child groups (internal chains + all child synths) | |
const Processor * | getChildProcessor (int processorIndex) const override |
returns the total amount of child groups (internal chains + all child synths) | |
int | getNumChildProcessors () const override |
returns the total amount of child groups (internal chains + all child synths) | |
void | initRenderCallback () override |
Clears the internal buffers of the childs and the group itself. More... | |
void | preHiseEventCallback (const HiseEvent &m) override |
Passes the incoming MidiMessage only to the modulation chains of all child synths and NOT to the child synth's voices, as they get rendered by the ModulatorSynthGroupVoices. More... | |
void | prepareToPlay (double newSampleRate, int samplesPerBlock) override |
Prepares all ModulatorSynths for playback. More... | |
void | setAllowStateForAllChildSynths (bool shouldBeEnabled) |
set the state for all groups at once. More... | |
Public Member Functions inherited from ModulatorSynth | |
virtual void | addProcessorsWhenEmpty () |
Adds a SimpleEnvelope to a empty ModulatorSynth to prevent clicks. More... | |
virtual bool | areVoicesActive () const |
Call this from the message thread and it'll kill all voices at the next buffer. More... | |
float | getBalance (bool getRightChannelGain) const |
Returns the calculated (equal power) pan value for either the left or the right channel. More... | |
const float * | getConstantPitchValues () const |
Returns the pointer to the calculated pitch buffers for the ModulatorSynthVoice's render callback. More... | |
ModulatorSynthVoice * | getFreeVoice (SynthesiserSound *s, int midiChannel, int midiNoteNumber) |
Returns a read pointer to the calculated pitch values. More... | |
float | getGain () const |
Returns the gain of the ModulatorSynth from 0.0 to 1.0. More... | |
ModulatorSynthGroup * | getGroup () const |
Returns the ModulatorSynthGroup that this ModulatorSynth belongs to. More... | |
int | getIndexInGroup () const |
Returns the index of the child synth if it resides in a group and -1 if not. More... | |
float * | getPitchValuesForVoice () const |
Returns a read pointer to the calculated pitch values. More... | |
ModulatorSynth * | getPlayingSynth () |
Returns either itself or the group that is playing its voices. More... | |
int | getVoiceIndex (const SynthesiserVoice *v) const |
Returns the voice index for the voice (the index in the internal voice array). More... | |
void | handleHiseEvent (const HiseEvent &e) |
Same functionality as Synthesiser::handleMidiEvent(), but sends the midi event to all Modulators in the chains. More... | |
bool | isInGroup () const |
Checks if the Synth was added to a group. More... | |
void | killAllVoicesWithNoteNumber (int noteNumber) |
Kills the note with the specified note number. More... | |
int | killLastVoice (bool allowTailOff=true) |
Kills the voice that is playing for the longest time. More... | |
void | noteOn (const HiseEvent &m) |
Same functionality as Synthesiser::noteOn(), but calls calculateVoiceStartValue() if a new voice is started. More... | |
void | postVoiceRendering (int startSample, int numThisTime) |
This method is called to handle all modulatorchains after the voice rendering and handles the GUI metering. More... | |
virtual void | renderNextBlockWithModulators (AudioSampleBuffer &outputAudio, const HiseEventBuffer &inputMidi) |
Call this instead of Synthesiser::renderNextBlock to let the ModulatorChains to their work. More... | |
void | renderVoice (int startSample, int numThisTime) |
This method is called to actually render all voices. More... | |
void | setBalance (float newBalance) |
sets the balance from -1.0 (left) to 1.0 (right) and applies a equal power pan rule. More... | |
void | setClockSpeed (ClockSpeed newClockSpeed) |
Sets the interval for the internal clock callback. More... | |
void | setGain (float newGain) |
sets the gain of the ModulatorSynth from 0.0 to 1.0. More... | |
void | setGroup (ModulatorSynthGroup *parent) |
Sets the parent group. More... | |
virtual bool | soundCanBePlayed (ModulatorSynthSound *sound, int midiChannel, int midiNoteNumber, float velocity) |
Checks if the message fits the sound, but can be overriden to implement other group start logic. More... | |
Public Member Functions inherited from Processor | |
void | enableConsoleOutput (bool shouldBeEnabled) |
Enables the Processor to output messages to the Console. 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... | |
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... | |
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... | |
void | setAttribute (int parameterIndex, float newValue, juce::NotificationType notifyEditor) |
Changes a Processor parameter. 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... | |
Public Member Functions inherited from RoutableProcessor | |
void | editRouting (Component *childComponent) |
Opens a routing editor in the quasi modal popup. More... | |
int | getLeftDestinationChannel () const |
Quick way to get the left target channel. More... | |
int | getLeftSourceChannel () const |
Quick way to get the left channel for processing. More... | |
int | getRightDestinationChannel () const |
Quick way to get the right target channel. More... | |
int | getRightSourceChannel () const |
Quick way to get the right channel for processing. More... | |
Public Member Functions inherited from Chain | |
bool | restoreChain (const ValueTree &v) |
Restores a Chain from a ValueTree. More... | |
Additional Inherited Members | |
Public Types inherited from ModulatorSynth | |
enum | InternalChains |
These are the three Chains that the ModulatorSynth uses. More... | |
enum | Parameters { Gain = 0, Balance, VoiceLimit, KillFadeTime } |
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... | |
void | setOutputValue (float newValue) |
Call this from the baseclass whenever you want its editor to display a value change. More... | |
A ModulatorSynthGroup is a collection of tightly coupled ModulatorSynth that are processed together.
Other than the ModulatorSynthChain, it will render its children grouped on voice level which allows stuff like FM synthesis etc.
The ModulatorSynthGroup is rendered like a normal ModulatorSynth using a special kind of voice (the ModulatorSynthGroupVoice).
There are some restrictions for this group type:
|
overridevirtual |
Clears the internal buffers of the childs and the group itself.
Reimplemented from ModulatorSynth.
|
overridevirtual |
Passes the incoming MidiMessage only to the modulation chains of all child synths and NOT to the child synth's voices, as they get rendered by the ModulatorSynthGroupVoices.
Reimplemented from ModulatorSynth.
|
overridevirtual |
Prepares all ModulatorSynths for playback.
Reimplemented from ModulatorSynth.
void setAllowStateForAllChildSynths | ( | bool | shouldBeEnabled | ) |
set the state for all groups at once.