Package heronarts.lx.modulator
Class MultiStageEnvelope
- All Implemented Interfaces:
LXComponent.Renamable
,LXLoopTask
,LXPath
,LXSerializable
,LXWaveshape
,LXOscComponent
,LXNormalizedParameter
,LXParameter
,LXParameterListener
@LXCategory("Core")
@Global("Envelope")
@Device("Envelope")
public class MultiStageEnvelope
extends LXVariablePeriodModulator
implements LXWaveshape, LXOscComponent
-
Nested Class Summary
Nested classes/interfaces inherited from class heronarts.lx.modulator.LXVariablePeriodModulator
LXVariablePeriodModulator.ClockMode
Nested classes/interfaces inherited from class heronarts.lx.modulator.LXModulator
LXModulator.Device, LXModulator.Global, LXModulator.Placeholder
Nested classes/interfaces inherited from class heronarts.lx.LXComponent
LXComponent.Hidden, LXComponent.Renamable
Nested classes/interfaces inherited from interface heronarts.lx.parameter.LXNormalizedParameter
LXNormalizedParameter.OscMode
Nested classes/interfaces inherited from interface heronarts.lx.parameter.LXParameter
LXParameter.Collection, LXParameter.Formatter, LXParameter.Monitor, LXParameter.MultiMonitor, LXParameter.Polarity, LXParameter.Units
Nested classes/interfaces inherited from interface heronarts.lx.LXSerializable
LXSerializable.Utils
-
Field Summary
Fields inherited from class heronarts.lx.modulator.LXVariablePeriodModulator
clockMode, periodFast, periodSlow
Fields inherited from class heronarts.lx.modulator.LXPeriodicModulator
looping, tempoDivision, tempoLock, tempoSync
Fields inherited from class heronarts.lx.modulator.LXModulator
crashed, midiFilter
Fields inherited from class heronarts.lx.LXRunnableComponent
runMs, running, trigger
Fields inherited from class heronarts.lx.LXComponent
children, internalParameters, KEY_CHILDREN, KEY_CLASS, KEY_COMPONENT_ID, KEY_ID, KEY_INTERNAL, KEY_PARAMETER_PATH, KEY_PARAMETERS, KEY_PATH, KEY_RESET, label, legacyInternalParameters, legacyParameters, lx, modulationColor, modulationControlsExpanded, modulationsExpanded, parameters, presetFile
Fields inherited from interface heronarts.lx.LXPath
ROOT, ROOT_PREFIX, ROOT_SLASH
-
Constructor Summary
ConstructorDescriptionMultiStageEnvelope
(String label) MultiStageEnvelope
(String label, float initialValue, float endValue) -
Method Summary
Modifier and TypeMethodDescriptionaddStage
(double basis, double value) addStage
(MultiStageEnvelope.Stage stage) double
compute
(double basis) protected double
computeNormalizedBasis
(double basis, double normalizedValue) Subclasses determine the basis based on a normalized value from 0 to 1.protected double
computeNormalizedValue
(double deltaMs, double basis) Subclasses implement this which returns their value from a 0-1 scale.double
invert
(double value, double basisHint) void
load
(LX lx, JsonObject obj) Loads the LX component.void
save
(LX lx, JsonObject obj) Serializes the LX component.Methods inherited from class heronarts.lx.modulator.LXVariablePeriodModulator
onParameterChanged
Methods inherited from class heronarts.lx.modulator.LXRangeModulator
computeBasis, computeValue, getExponent, getNormalized, getNormalizedf, onSetValue, setEndValue, setEndValue, setExponent, setNormalized, setRange, setRange, setRangeFromHereTo, setRangeFromHereTo, setStartValue, setStartValue
Methods inherited from class heronarts.lx.modulator.LXPeriodicModulator
computeValue, disableAutoReset, finished, getBasis, getBasisf, getPeriod, getPeriodf, loop, loop, numLoops, onReset, randomBasis, setBasis, setLooping, setPeriod, setPeriod, updateBasis
Methods inherited from class heronarts.lx.modulator.LXModulator
autostart, disableAutoStart, getCrash, getCrashStackTrace, getFormatter, getIndex, getOscAddress, getOscPath, getPath, getPolarity, getUnits, getValue, isMappingSource, run, setComponent, setFormatter, setIndex, setMappingSource, setPolarity, setUnits, setValue, setValue, updateValue
Methods inherited from class heronarts.lx.LXRunnableComponent
isRunning, onStart, onStop, onTrigger, postRun, reset, start, stop, toggle, trigger
Methods inherited from class heronarts.lx.LXComponent
addArray, addChild, addInternalParameter, addLegacyInternalParameter, addLegacyParameter, addParameter, addParameter, addParameters, contains, copyParameters, dispose, getCategory, getChild, getComponentName, getComponentName, getComponentName, getDescription, getId, getLabel, getLX, getOscLabel, getParameter, getParameters, getParent, handleOscMessage, hasParameter, isValidOscParameter, loadParameters, loadPreset, removeParameter, removeParameter, removeParameter, removeParameter, savePreset, setDescription, setParent, toOscQuery, toOscQuery, toOscQuery, toString, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface heronarts.lx.parameter.LXNormalizedParameter
getBaseNormalized, getBaseNormalizedf, getOscMode, getValueFromNormalized, isWrappable
Methods inherited from interface heronarts.lx.osc.LXOscComponent
getOscAddress, handleOscMessage
Methods inherited from interface heronarts.lx.parameter.LXParameter
dispose, getBaseValue, getBaseValuef, getFormatter, getLabel, getParentParameter, getPolarity, getUnits, getValue, getValuef, isMappable, reset, setComponent, setFormatter, setMappable, setValue
Methods inherited from interface heronarts.lx.LXPath
getCanonicalLabel, getCanonicalLabel, getCanonicalPath, getCanonicalPath, getDescription, getParent, getPath, isDescendant
-
Field Details
-
stages
-
monitor
-
-
Constructor Details
-
MultiStageEnvelope
public MultiStageEnvelope() -
MultiStageEnvelope
-
MultiStageEnvelope
-
-
Method Details
-
removeStage
-
addStage
-
addStage
-
computeNormalizedValue
protected double computeNormalizedValue(double deltaMs, double basis) Description copied from class:LXRangeModulator
Subclasses implement this which returns their value from a 0-1 scale. This class automatically takes care of scaling to the startValue/endValue range.- Specified by:
computeNormalizedValue
in classLXRangeModulator
- Parameters:
deltaMs
- Milliseconds elapsedbasis
- Basis of modulator- Returns:
- Modulator value
-
computeNormalizedBasis
protected double computeNormalizedBasis(double basis, double normalizedValue) Description copied from class:LXRangeModulator
Subclasses determine the basis based on a normalized value from 0 to 1.- Specified by:
computeNormalizedBasis
in classLXRangeModulator
- Parameters:
basis
- Modulator basisnormalizedValue
- A normalize value from 0 to 1- Returns:
- Computed normalized basis for modulator
-
compute
public double compute(double basis) - Specified by:
compute
in interfaceLXWaveshape
-
invert
public double invert(double value, double basisHint) - Specified by:
invert
in interfaceLXWaveshape
-
save
Description copied from class:LXComponent
Serializes the LX component. By default, all internal and user-facing parameters are serialized, as well as any explicitly registered child components. Note that child arrays are not serialized, or any other dynamic components. Subclasses may override to perform more saving, and are expected to callsuper.save(lx, obj)
at the appropriate time.- Specified by:
save
in interfaceLXSerializable
- Overrides:
save
in classLXPeriodicModulator
- Parameters:
lx
- LX instanceobj
- Object to serialize into
-
load
Description copied from class:LXComponent
Loads the LX component. Restores the ID of the component, as well as its internal and user-facing parameters. Any explicitly registered children will be automatically loaded, so long as they are direct descendants. Dynamic arrays will not be automatically loaded, this is left to subclasses to implement.- Specified by:
load
in interfaceLXSerializable
- Overrides:
load
in classLXPeriodicModulator
- Parameters:
lx
- LX instanceobj
- Object to deserialize
-