Package heronarts.lx.audio
Class DecibelMeter
java.lang.Object
heronarts.lx.LXComponent
heronarts.lx.LXRunnableComponent
heronarts.lx.modulator.LXModulator
heronarts.lx.audio.DecibelMeter
- All Implemented Interfaces:
LXComponent.Renamable
,LXLoopTask
,LXPath
,LXSerializable
,LXOscComponent
,LXNormalizedParameter
,LXParameter
,LXParameterListener
- Direct Known Subclasses:
GraphicMeter
A DecibelMeter is a modulator that returns the level of an audio signal. Gain
may be applied to the signal. A decibel range is given in which values are
normalized from 0 to 1. Raw decibel values can be accessed if desired.
-
Nested Class Summary
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
Modifier and TypeFieldDescriptionfinal CompoundParameter
Meter attack time, in millisecondsprotected float
protected LXAudioBuffer
final CompoundParameter
Gain of the meter, in decibelsprotected static final double
final CompoundParameter
Range of the meter, in decibels.final CompoundParameter
Meter release time, in millisecondsprotected float
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
ConstructorDescriptionDecibelMeter
(LXAudioBuffer buffer) Default constructor, creates a meter with unity gain and 72dB dynamic rangeDecibelMeter
(String label, LXAudioBuffer buffer) Default constructor, creates a meter with unity gain and 72dB dynamic rangeDecibelMeter
(String label, LXAudioBuffer buffer, heronarts.lx.audio.DecibelMeter.Parameters params) DecibelMeter
(String label, LXAudioBuffer buffer, CompoundParameter gain, CompoundParameter range, CompoundParameter attack, CompoundParameter release) -
Method Summary
Modifier and TypeMethodDescriptionprotected double
computeValue
(double deltaMs) Implementation method to advance the modulator's internal state.double
float
double
Gets the exponent used for scaling this parameter across its normalized range.double
Gets the value of the parameter in a normalized space from 0 to 1float
Gets the value of the parameter in a normalized space as a floatdouble
getPeak()
float
getPeakf()
float
getRaw()
Return raw underlying levels, no attack/gain smoothingdouble
float
setBuffer
(LXAudioBuffer buffer) setNormalized
(double value) Sets the value or the parameter in normalized space from 0 to 1Methods inherited from class heronarts.lx.modulator.LXModulator
autostart, disableAutoStart, getCrash, getCrashStackTrace, getFormatter, getIndex, getOscAddress, getOscPath, getPath, getPolarity, getUnits, getValue, isMappingSource, loop, onSetValue, run, setComponent, setFormatter, setIndex, setMappingSource, setPolarity, setUnits, setValue, setValue, updateValue
Methods inherited from class heronarts.lx.LXRunnableComponent
isRunning, onParameterChanged, onReset, 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, load, loadParameters, loadPreset, removeParameter, removeParameter, removeParameter, removeParameter, save, 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
-
LOG_10
protected static final double LOG_10 -
buffer
-
gain
Gain of the meter, in decibels -
range
Range of the meter, in decibels. -
attack
Meter attack time, in milliseconds -
release
Meter release time, in milliseconds -
attackGain
protected float attackGain -
releaseGain
protected float releaseGain
-
-
Constructor Details
-
DecibelMeter
Default constructor, creates a meter with unity gain and 72dB dynamic range- Parameters:
buffer
- Audio buffer to meter
-
DecibelMeter
Default constructor, creates a meter with unity gain and 72dB dynamic range- Parameters:
label
- Labelbuffer
- Audio buffer to meter
-
DecibelMeter
public DecibelMeter(String label, LXAudioBuffer buffer, heronarts.lx.audio.DecibelMeter.Parameters params) -
DecibelMeter
public DecibelMeter(String label, LXAudioBuffer buffer, CompoundParameter gain, CompoundParameter range, CompoundParameter attack, CompoundParameter release)
-
-
Method Details
-
setBuffer
-
getExponent
public double getExponent()Description copied from interface:LXNormalizedParameter
Gets the exponent used for scaling this parameter across its normalized range. Default is 1 which means linear scaling.- Specified by:
getExponent
in interfaceLXNormalizedParameter
- Returns:
- scaling exponent
-
getRaw
public float getRaw()Return raw underlying levels, no attack/gain smoothing- Returns:
- Raw RMS value
-
getDecibels
public double getDecibels()- Returns:
- Raw decibel value of the meter
-
getDecibelsf
public float getDecibelsf()- Returns:
- Raw decibel value of the meter as a float
-
getSquare
public double getSquare()- Returns:
- A value for the audio meter from 0 to 1 with quadratic scaling
-
getSquaref
public float getSquaref()- Returns:
- Quadratic scaled value as a float
-
computeValue
protected double computeValue(double deltaMs) Description copied from class:LXModulator
Implementation method to advance the modulator's internal state. Subclasses must provide and update value appropriately.- Specified by:
computeValue
in classLXModulator
- Parameters:
deltaMs
- Number of milliseconds to advance by- Returns:
- Computed value
-
setNormalized
Description copied from interface:LXNormalizedParameter
Sets the value or the parameter in normalized space from 0 to 1- Specified by:
setNormalized
in interfaceLXNormalizedParameter
- Parameters:
value
- The normalized value, from 0 to 1- Returns:
- this, for method chaining
-
getPeak
public double getPeak() -
getPeakf
public float getPeakf() -
getNormalized
public double getNormalized()Description copied from interface:LXNormalizedParameter
Gets the value of the parameter in a normalized space from 0 to 1- Specified by:
getNormalized
in interfaceLXNormalizedParameter
- Returns:
- Value of parameter, normalized to range from 0 to 1
-
getNormalizedf
public float getNormalizedf()Description copied from interface:LXNormalizedParameter
Gets the value of the parameter in a normalized space as a float- Specified by:
getNormalizedf
in interfaceLXNormalizedParameter
- Returns:
- Normalized value of parameter, in range from 0 to 1
-