A pretty common envelope type with 5 states. More...
Public Types | |
enum | SpecialParameters { Attack = EnvelopeModulator::Parameters::numParameters, AttackLevel, Hold, Decay, Sustain, Release, AttackCurve, DecayCurve, EcoMode } |
special parameters for AhdsrEnvelope More... | |
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... | |
Public Types inherited from Modulation | |
enum | Mode { GainMode = 0, PitchMode, PanMode } |
There are two modes that Modulation can work: GainMode and PitchMode. More... | |
Public Member Functions | |
bool | isPlaying (int voiceIndex) const override |
returns true , if the envelope is not IDLE and not bypassed. More... | |
Public Member Functions inherited from Modulator | |
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 | |
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... | |
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... | |
Public Member Functions inherited from Modulation | |
void | applyModulationValue (float calculatedModulationValue, float &destinationValue) const noexcept |
This applies the previously calculated value to the supplied destination value depending on the modulation mode (adding or multiplying). More... | |
float | calcIntensityValue (float calculatedModulationValue) const noexcept |
This applies the intensity to the given value and returns the applied value. More... | |
float | getDisplayIntensity () const noexcept |
Returns the actual intensity of the Modulation. More... | |
float | getIntensity () const noexcept |
Returns the intensity. More... | |
Mode | getMode () const noexcept |
returns the mode the Modulator is operating. More... | |
void | setIntensity (float newIntensity) noexcept |
Sets the intensity of the modulation. More... | |
void | setIntensityFromSlider (float sliderValue) noexcept |
Use this method to set the intensity from the ModulatorEditorHeader's intensity slider converting linear -12 ... More... | |
Public Member Functions inherited from TimeModulation | |
void | applyTimeModulation (float *destinationBuffer, int startIndex, int samplesToCopy) |
This applies the intensity to the calculated values. More... | |
virtual const float * | getCalculatedValues (int) |
Returns a read pointer to the calculated values. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Processor | |
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... | |
Protected Member Functions inherited from TimeModulation | |
void | applyGainModulation (float *calculatedModulationValues, float *destinationValues, float fixedIntensity, int numValues) const noexcept |
a vectorized version of the calcIntensityValue() and applyModulationValue() for Gain modulation with a fixed intensity value. More... | |
void | applyGainModulation (float *calculatedModulationValues, float *destinationValues, float fixedIntensity, const float *intensityValues, int numValues) const noexcept |
A vectorized version of the calcIntensityValue() and applyModulationValue() for Gain modulation with varying intensities. More... | |
void | applyPitchModulation (float *calculatedModulationValues, float *destinationValues, float fixedIntensity, const float *intensityValues, int numValues) const noexcept |
A vectorized version of the calcIntensityValue() and applyModulationValue() for Pitch modulation with varying intensities. More... | |
void | applyPitchModulation (float *calculatedModulationValues, float *destinationValues, float fixedIntensity, int numValues) const noexcept |
a vectorized version of the calcIntensityValue() and applyModulationValue() for Pitch modulation with a fixed intensity value. More... | |
virtual bool | isInitialized () |
Checks if the prepareToPlay method has been called. More... | |
virtual void | prepareToModulate (double, int samplesPerBlock) |
Creates the internal buffer with double the size of the expected buffer block size. | |
Protected Attributes inherited from EnvelopeModulator | |
OwnedArray< ModulatorState > | states |
Use this array to access the state. More... | |
A pretty common envelope type with 5 states.
A pretty common envelope type with 5 states. (Go to http://en.wikiaudio.org/ADSR_envelope for a general description on how an envelope works)
The code is based on the example envelope code from http://earlevel.com.
The Modulator has five states: Attack, Hold, Decay, Sustain and Release and allows modulation of the attack time and level, the decay time and the release time with VoiceStartModulators.
Unlike the SimpleEnvelope, this envelope has a exponential curve, so it sounds nicer (but is a little bit more resource-hungry).
ID | Parameter | Description |
---|---|---|
0 | Attack | the attack time in milliseconds |
1 | AttackLevel | the attack level in decibel |
2 | Hold | the hold time in milliseconds |
3 | Decay | the decay time in milliseconds |
4 | Sustain | the sustain level in decibel |
5 | Release | the release time in milliseconds |
enum SpecialParameters |
special parameters for AhdsrEnvelope
|
overridevirtual |
returns true
, if the envelope is not IDLE and not bypassed.
Implements EnvelopeModulator.