The default component library¶
Note
The component documentation is extracted from the Python classes (or Python bindings in case of C++ classes). For the exact C++ interfaces, see the VISR API documentation or the header documentation in the C++ code.
This information is also avalaible through Python’s interactive documentation, e.g., through
>>> import rcl
>>> help( rcl.Add )
Module rcl
overview¶
The rcl
library is the default library for atomic components.
It is contained in the default distribution of the VISR.
Note
The separation into a library for atomic components (rcl
) and composite components
(Module signalflows overview) is largely for historical reasons.
In the future, the component library/libraries will be restructured into topical units.
VISR default component library.
At the moment, this module contains atomic components (whereas the composite ones are in signalflows) for historic reasons. In the future, however, this will change do a topical orgainisation.
Component rcl.Add
¶
-
class
rcl.
Add
(self: rcl.Add, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, width: int, numInputs: int) → None¶ Component for adding multichannel multichannel audio signals.
- input_<i>”
- Audio input signals to be added, numbered from 0..`numInputs`-1. The width is determined by the constructor parameter width.”
- output
- Multichannel audio output signal, width determined by paramter width.
Constructor, creates an instance of Add.
Parameters: - context (visr.SignalFlowContext) – Common audio processing parameters (e.g., sampling rate and block size)
- name (string) – Name of the component.
- parent (visr.CompositeComponent or None) – The composite component that contains the present object, or None for a top-level component.
- numInputs (int) – The number of input ports (addends)
-
process
(self: rcl.Add) → None¶
Component rcl.BiquadIirFilter
¶
-
class
rcl.
BiquadIirFilter
(*args, **kwargs)¶ Multichannel IIR filtering component based on second-order IIR sections (biquads).
- Audio ports:
- input: Multichannel audio signal, the witdth is determined by the constructor parameter numberOfChannels. output: Multichannel output signal, width is determined by the constructor parameter numberOfChannels.
- Parameter ports:
- eqInput: Optional parameter input port for receiving updated EQ settings of type
pml.BiquadMatrixParameterFloat
. - This port is activated by the constructor parameter controlInputs (default:
True
)
- eqInput: Optional parameter input port for receiving updated EQ settings of type
Overloaded function.
- __init__(self: rcl.BiquadIirFilter, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfChannels: int, numberOfBiquads: int, controlInput: bool=True) -> None
Constructor that initialises all biquad IIR sections the default value (flat EQ).
Parameters: - context – (visr.SignalFlowContext) Common audio processing parameters (e.g., sampling rate and block size)
- name – (string) Name of the component.
- parent – (
visr.CompositeComponent
or None) The composite component that contains the present object, or None in case of a top-level component. - numberOfChannels – (int) The number of individual audio channels processed.
- numberOfBiquads – (int) The number of second-order sections processed per channels.
- __init__(self: rcl.BiquadIirFilter, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfChannels: int, numberOfBiquads: int, initialBiquad: rbbl.BiquadCoefficientFloat, controlInput: bool=True) -> None
Constructor initialising all biquad IIR sections to the same given value.
- __init__(self: rcl.BiquadIirFilter, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfChannels: int, numberOfBiquads: int, initialBiquads: rbbl.BiquadCoefficientListFloat, controlInput: bool=True) -> None
Constructor initialising all channels to the same sequence of biquad IIR sections
- __init__(self: rcl.BiquadIirFilter, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfChannels: int, numberOfBiquads: int, initialBiquads: rbbl.BiquadCoefficientMatrixFloat, controlInput: bool=True) -> None
Constructor initialising the biquad IIR sections to individual values.
Component rcl.CAPGainCalculator
¶
-
class
rcl.
CAPGainCalculator
(self: rcl.CAPGainCalculator, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, numberOfObjects: int, arrayConfig: panning.LoudspeakerArray) → None¶
Component rcl.ChannelObjectRoutingCalculator
¶
-
class
rcl.
ChannelObjectRoutingCalculator
(self: rcl.ChannelObjectRoutingCalculator, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfObjectChannels: int, arrayConfig: panning.LoudspeakerArray) → None¶
Component rcl.CrossfadingFirFilterMatrix
¶
-
class
rcl.
CrossfadingFirFilterMatrix
(*args, **kwargs)¶ Overloaded function.
- __init__(self: rcl.CrossfadingFirFilterMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfInputs: int, numberOfOutputs: int, filterLength: int, maxFilters: int, maxRoutings: int, transitionSamples: int, filters: efl.BasicMatrixFloat=<pml.MatrixParameterFloat object at 0x113a21a40>, routings: rbbl.FilterRoutingList=, controlInputs: rcl.CrossfadingFirFilterMatrix.ControlPortConfig=ControlPortConfig.NoInputs, fftImplementation: str=’default’) -> None
- __init__(self: rcl.CrossfadingFirFilterMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfInputs: int, numberOfOutputs: int, filterLength: int, maxFilters: int, maxRoutings: int, transitionSamples: int, filters: array=<pml.MatrixParameterFloat object at 0x113a21b58>, routings: rbbl.FilterRoutingList=, controlInputs: rcl.CrossfadingFirFilterMatrix.ControlPortConfig=ControlPortConfig.NoInputs, fftImplementation: str=’default’) -> None
Component rcl.DelayMatrix
¶
-
class
rcl.
DelayMatrix
(*args, **kwargs)¶ Overloaded function.
- __init__(self: rcl.DelayMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None) -> None
- __init__(self: rcl.DelayMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, numberOfInputs: int, numberOfOutputs: int, interpolationSteps: int=1024, maxDelay: float=3.0, interpolationType: str, methodDelayPolicy: rcl.DelayMatrix.MethodDelayPolicy=MethodDelayPolicy.Add, controlInputs: rcl.DelayMatrix.ControlPortConfig=ControlPortConfig.No, initialDelay: float=0.0, initialGain: float=1.0) -> None
- __init__(self: rcl.DelayMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, numberOfInputs: int, numberOfOutputs: int, interpolationSteps: int=1024, maxDelay: float=3.0, interpolationType: str, methodDelayPolicy: rcl.DelayMatrix.MethodDelayPolicy=MethodDelayPolicy.Add, controlInputs: rcl.DelayMatrix.ControlPortConfig=ControlPortConfig.No, initialDelay: efl.BasicMatrixFloat=0.0, initialGain: efl.BasicMatrixFloat=1.0) -> None
-
setup
(*args, **kwargs)¶ Overloaded function.
- setup(self: rcl.DelayMatrix, numberOfInputs: int, numberOfOutputs: int, interpolationSteps: int=1024, maxDelay: float=3.0, interpolationType: str, methodDelayPolicy: rcl.DelayMatrix.MethodDelayPolicy=MethodDelayPolicy.Add, controlInputs: rcl.DelayMatrix.ControlPortConfig=ControlPortConfig.No, initialDelay: float=0.0, initialGain: float=1.0) -> None
- setup(self: rcl.DelayMatrix, numberOfInputs: int, numberOfOutputs: int, interpolationSteps: int=1024, maxDelay: float=3.0, interpolationType: str, methodDelayPolicy: rcl.DelayMatrix.MethodDelayPolicy=MethodDelayPolicy.Add, controlInputs: rcl.DelayMatrix.ControlPortConfig=ControlPortConfig.No, initialDelays: efl.BasicMatrixFloat, initialGains: efl.BasicMatrixFloat) -> None
Component rcl.DelayVector
¶
-
class
rcl.
DelayVector
(*args, **kwargs)¶ Overloaded function.
- __init__(self: rcl.DelayVector, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None) -> None
- __init__(self: rcl.DelayVector, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfChannels: int, interpolationSteps: int=1024, maxDelay: float=3.0, interpolationType: str, methodDelayPolicy: rcl.DelayMatrix.MethodDelayPolicy=MethodDelayPolicy.Add, controlInputs: rcl.DelayVector.ControlPortConfig=ControlPortConfig.No, initialDelay: float=0.0, initialGain: float=1.0) -> None
- __init__(self: rcl.DelayVector, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfChannels: int, interpolationSteps: int=1024, maxDelay: float=3.0, interpolationType: str=’lagrangeOrder3’, methodDelayPolicy: rcl.DelayMatrix.MethodDelayPolicy=MethodDelayPolicy.Add, controlInputs: rcl.DelayVector.ControlPortConfig=ControlPortConfig.No, initialDelay: efl.BasicVectorFloat=<pml.VectorParameterFloat object at 0x11396e570>, initialGain: efl.BasicVectorFloat=<pml.VectorParameterFloat object at 0x11396e5a8>) -> None
- __init__(self: rcl.DelayVector, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfChannels: int, interpolationSteps: int=1024, maxDelay: float=3.0, interpolationType: str=’lagrangeOrder3’, methodDelayPolicy: rcl.DelayMatrix.MethodDelayPolicy=MethodDelayPolicy.Add, controlInputs: rcl.DelayVector.ControlPortConfig=ControlPortConfig.No, initialDelay: numpy.ndarray[float32], initialGain: numpy.ndarray[float32]) -> None
Constructor taking Python lists or NumPy arrays as initial gain and delay values.
- __init__(self: rcl.DelayVector, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfChannels: int, interpolationSteps: int=1024, maxDelay: float=3.0, interpolationType: str=’lagrangeOrder3’, methodDelayPolicy: rcl.DelayMatrix.MethodDelayPolicy=MethodDelayPolicy.Add, controlInputs: rcl.DelayVector.ControlPortConfig=ControlPortConfig.No, initialDelay: List[float], initialGain: List[float]) -> None
Constructor taking Python lists or NumPy arrays as initial gain and delay values.
-
setup
(self: rcl.DelayVector, numberOfChannels: int, interpolationSteps: int=1024, maxDelay: float=3.0, interpolationType: str, methodDelayPolicy: rcl.DelayMatrix.MethodDelayPolicy=MethodDelayPolicy.Add, controlInputs: rcl.DelayVector.ControlPortConfig=ControlPortConfig.No, initialDelay: float=0.0, initialGain: float=1.0) → None¶
Component rcl.DiffusionGainCalculator
¶
-
class
rcl.
DiffusionGainCalculator
(self: rcl.DiffusionGainCalculator, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, numberOfObjectChannels: int) → None¶
Component rcl.FirFilterMatrix
¶
-
class
rcl.
FirFilterMatrix
(*args, **kwargs)¶ Overloaded function.
- __init__(self: rcl.FirFilterMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None) -> None
- __init__(self: rcl.FirFilterMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfInputs: int, numberOfOutputs: int, filterLength: int, maxFilters: int, maxRoutings: int, filters: efl.BasicMatrixFloat=<pml.MatrixParameterFloat object at 0x11396e998>, routings: rbbl.FilterRoutingList=, controlInputs: rcl.FirFilterMatrix.ControlPortConfig=ControlPortConfig.NoInputs, fftImplementation: str=’default’) -> None
- __init__(self: rcl.FirFilterMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfInputs: int, numberOfOutputs: int, filterLength: int, maxFilters: int, maxRoutings: int, filters: array, routings: rbbl.FilterRoutingList=, controlInputs: rcl.FirFilterMatrix.ControlPortConfig=ControlPortConfig.NoInputs, fftImplementation: str=’default’) -> None
-
setup
(self: rcl.FirFilterMatrix, numberOfInputs: int, numberOfOutputs: int, filterLength: int, maxFilters: int, maxRoutings: int, filters: efl.BasicMatrixFloat=<pml.MatrixParameterFloat object at 0x11396e880>, routings: rbbl.FilterRoutingList=, controlInputs: rcl.FirFilterMatrix.ControlPortConfig=ControlPortConfig.NoInputs, fftImplementation: str='default') → None¶
Component rcl.GainMatrix
¶
-
class
rcl.
GainMatrix
(*args, **kwargs)¶ Overloaded function.
- __init__(self: rcl.GainMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfInputs: int, numberOfOutputs: int, interpolationSteps: int=0, initialGains: float=1.0, controlInput: bool=True) -> None
- __init__(self: rcl.GainMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfInputs: int, numberOfOutputs: int, interpolationSteps: int, initialGains: efl.BasicMatrixFloat, controlInput: bool=True) -> None
- __init__(self: rcl.GainMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfInputs: int, numberOfOutputs: int, interpolationSteps: int, initialGains: numpy.ndarray[float32], controlInput: bool=True) -> None
Component rcl.GainVector
¶
-
class
rcl.
GainVector
(self: rcl.GainVector, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None) → None¶ -
setup
(*args, **kwargs)¶ Overloaded function.
- setup(self: rcl.GainVector, numberOfChannels: int, interpolationSteps: int=1024, controlInputs: bool=False, initialGain: float=1.0) -> None
- setup(self: rcl.GainVector, numberOfChannels: int, interpolationSteps: int=1024, controlInputs: bool=False, initialGainsLinear: efl.BasicVectorFloat) -> None
-
Component rcl.HoaAllradGainCalculator
¶
-
class
rcl.
HoaAllradGainCalculator
(self: rcl.HoaAllradGainCalculator, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, numberOfObjectChannels: int, regularArrayConfig: panning.LoudspeakerArray, realArrayConfig: panning.LoudspeakerArray, decodeMatrix: efl.BasicMatrixFloat, listenerPosition: pml.ListenerPosition=<pml.ListenerPosition object at 0x11396eb90>, adaptiveListenerPosition: bool=False) → None¶
Component rcl.InterpolatingFirFilterMatrix
¶
-
class
rcl.
InterpolatingFirFilterMatrix
(*args, **kwargs)¶ Overloaded function.
- __init__(self: rcl.InterpolatingFirFilterMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfInputs: int, numberOfOutputs: int, filterLength: int, maxFilters: int, maxRoutings: int, numberOfInterpolants: int, transitionSamples: int, filters: efl.BasicMatrixFloat=<pml.MatrixParameterFloat object at 0x11396edc0>, interpolants: rbbl.InterpolationParameterSet=<rbbl.InterpolationParameterSet object at 0x11396edf8>, routings: rbbl.FilterRoutingList=, controlInputs: rcl.InterpolatingFirFilterMatrix.ControlPortConfig=ControlPortConfig.NoInputs, fftImplementation: str=’default’) -> None
- __init__(self: rcl.InterpolatingFirFilterMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfInputs: int, numberOfOutputs: int, filterLength: int, maxFilters: int, maxRoutings: int, numberOfInterpolants: int, transitionSamples: int, filters: array, interpolants: rbbl.InterpolationParameterSet=<rbbl.InterpolationParameterSet object at 0x11396ef10>, routings: rbbl.FilterRoutingList=, controlInputs: rcl.InterpolatingFirFilterMatrix.ControlPortConfig=ControlPortConfig.NoInputs, fftImplementation: str=’default’) -> None
Component rcl.ListenerCompensation
¶
-
class
rcl.
ListenerCompensation
(self: rcl.ListenerCompensation, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, arrayConfiguration: panning.LoudspeakerArray) → None¶
Component rcl.Nullsource
¶
-
class
rcl.
NullSource
(self: rcl.NullSource, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, width: int=1) → None¶
Component rcl.ObjectGainEqCalculator
¶
-
class
rcl.
ObjectGainEqCalculator
(self: rcl.ObjectGainEqCalculator, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfObjectChannels: int, numberOfBiquadSections: int) → None¶
Component rcl.PanningCalculator
¶
-
class
rcl.
PanningCalculator
(*args, **kwargs)¶ Overloaded function.
- __init__(self: rcl.PanningCalculator, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, numberOfObjects: int, arrayConfig: panning.LoudspeakerArray, adaptiveListener: bool=False, separateLowpassPanning: bool=False) -> None
- __init__(self: rcl.PanningCalculator, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, numberOfObjects: int, arrayConfig: panning.LoudspeakerArray, adaptiveListener: bool=False, panningMode: rcl.PanningCalculator.PanningMode=PanningMode.LF, lfNormalisation: rcl.PanningCalculator.Normalisation=Normalisation.Default, hfNormalisation: rcl.PanningCalculator.Normalisation=Normalisation.Default, diffuseNormalisation: rcl.PanningCalculator.Normalisation=Normalisation.Default, listenerPosition: pml.ListenerPosition=<pml.ListenerPosition object at 0x113972618>) -> None
Component rcl.PositionDecoder
¶
-
class
rcl.
PositionDecoder
(self: rcl.PositionDecoder, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, offset: panning.XYZ, qw: float=0.0, qx: float=0.0, qy: float=0.0, qz: float=0.0) → None¶
Component rcl.ScalarOscDecoder
¶
Component rcl.SceneDecoder
¶
-
class
rcl.
SceneDecoder
(self: rcl.SceneDecoder, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None) → None¶
Component rcl.SceneEncoder
¶
-
class
rcl.
SceneEncoder
(self: rcl.SceneEncoder, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None) → None¶
Component rcl.SignalRouting
¶
-
class
rcl.
SignalRouting
(*args, **kwargs)¶ Overloaded function.
- __init__(self: rcl.SignalRouting, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, inputWidth: int, outputWidth: int, controlInput: bool=True) -> None
Constructor with an empty initial routing.
- __init__(self: rcl.SignalRouting, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, inputWidth: int, outputWidth: int, initialRouting: pml.SignalRoutingParameter, controlInput: bool=True) -> None
Constructor with an initial routing list.
Component rcl.SparseGainMatrix
¶
-
class
rcl.
SparseGainMatrix
(self: rcl.SparseGainMatrix, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, numberOfInputs: int, numberOfOutputs: int, interpolationSteps: int, maxRoutingPoints: int, initialRoutings: rbbl.SparseGainRoutingList=[], controlInputs: rcl.SparseGainMatrix.ControlPortConfig=ControlPortConfig.No) → None¶
Component rcl.TimeFrequencyTransform
¶
-
class
rcl.
TimeFrequencyTransform
(*args, **kwargs)¶ Overloaded function.
- __init__(self: rcl.TimeFrequencyTransform, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, numberOfChannels: int, dftLength: int, windowLength: int, hopSize: int, fftImplementation: str=’default’) -> None
- __init__(self: rcl.TimeFrequencyTransform, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, numberOfChannels: int, dftLength: int, window: efl.BasicVectorFloat, hopSize: int, fftImplementation: str=’default’) -> None
- __init__(self: rcl.TimeFrequencyTransform, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, numberOfChannels: int, dftLength: int, window: List[float], hopSize: int, fftImplementation: str=’default’) -> None
Component rcl.TimeFrequencyInverseTransform
¶
-
class
rcl.
TimeFrequencyInverseTransform
(self: rcl.TimeFrequencyInverseTransform, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, numberOfChannels: int, dftLength: int, hopSize: int, fftImplementation: str='default') → None¶
Module signalflows
overview¶
The signalflows
contains composite components that are part of the standard distribution of the VISR.
Component signalflows.CoreRenderer
¶
-
class
signalflows.
CoreRenderer
(self: signalflows.CoreRenderer, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent=None, loudspeakerConfiguration: panning.LoudspeakerArray, numberOfInputs: int, numberOfOutputs: int, interpolationPeriod: int, diffusionFilters: efl.BasicMatrixFloat, trackingConfiguration: str='', numberEqSections: int=0, reverbConfig: str='', frequencyDependentPanning: bool=False) → None¶
Component signalflows.BaselineRenderer
¶
-
class
signalflows.
BaselineRenderer
(self: signalflows.BaselineRenderer, context: visr.SignalFlowContext, name: str, parent: visr.CompositeComponent, loudspeakerConfig: panning.LoudspeakerArray, numberOfInputs: int, numberOfOutputs: int, interpolationPeriod: int, diffusionFilters: pml.MatrixParameterFloat, trackingConfiguration: str='', sceneReceiverPort: int=4242, numberEqSections: int=0, reverbConfig: str='', frequencyDependentPanning: bool=False) → None¶