Shortcut and NodeScript for Mono Multi-Mic Samples
-
On a recent project, I have two mic positions for mono samples. HISE's multi-mic support is cool, but since FXs are stereo, having four channels (when only two are needed) needlessly complicates the module tree (and associated scripting).
Instead, I created stereo samples, and implemented a simple ScriptNode for configuring the channels.
- A crossfader lets the user mix between the samples.
- A switcher toggles between dual channel and mono modes.
- Independent gain stages are implemented throughout to ensure balanced levels (i.e., for each sample map).
- Only one set of (stereo) FX are now needed.
- Phase coherency is assured (i.e., both samples are guaranteed to be triggered at the same time, and processed throughout the signal chain as such).
<?xml version="1.0" encoding="UTF-8"?> <Network ID="MicMixer" Version="0.0.0"> <Node FactoryPath="container.chain" ID="MicMixer" Bypassed="0" ShowParameters="1"> <Nodes> <Node ID="goniometer" FactoryPath="analyse.goniometer" Bypassed="0"> <ComplexData> <DisplayBuffers> <DisplayBuffer Index="-1"/> </DisplayBuffers> </ComplexData> <Parameters/> </Node> <Node ID="scriptNODE_MICMIXER_Container_PrePanGain" FactoryPath="container.multi" Bypassed="0"> <Nodes> <Node ID="scriptNODE_MICMIXER_GAIN_PrePanGain_LeftChan" FactoryPath="core.gain" Bypassed="0"> <Parameters> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="Gain" Automated="1"/> <Parameter MinValue="0.0" MaxValue="1000.0" StepSize="0.1000000014901161" SkewFactor="0.3010300099849701" ID="Smoothing" Value="20.0"/> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="ResetValue" Value="0.0"/> </Parameters> </Node> <Node ID="scriptNODE_MICMIXER_GAIN_PrePanGain_RightChan" FactoryPath="core.gain" Bypassed="0"> <Parameters> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="Gain" Automated="1"/> <Parameter MinValue="0.0" MaxValue="1000.0" StepSize="0.1000000014901161" SkewFactor="0.3010300099849701" ID="Smoothing" Value="20.0"/> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="ResetValue" Value="0.0"/> </Parameters> </Node> </Nodes> <Parameters/> </Node> <Node ID="scriptNODE_MICMIXER_XFADER_PanCrossfader" FactoryPath="control.xfader" Bypassed="0"> <Properties> <Property ID="NumParameters" Value="2"/> <Property ID="Mode" Value="RMS"/> </Properties> <SwitchTargets> <SwitchTarget> <Connections> <Connection NodeId="scriptNODE_MICMIXER_PannerGain_LeftChannel" ParameterId="Gain"/> </Connections> </SwitchTarget> <SwitchTarget> <Connections> <Connection NodeId="scriptNODE_MICMIXER_PannerGain_RightChannel" ParameterId="Gain"/> </Connections> </SwitchTarget> </SwitchTargets> <Parameters> <Parameter MinValue="5.551115123125783e-17" MaxValue="1.0" ID="Value" Automated="1"/> </Parameters> </Node> <Node ID="scriptNODE_MICMIXER_MULTI_Panner_GainModules" FactoryPath="container.multi" Bypassed="0"> <Nodes> <Node ID="scriptNODE_MICMIXER_GAIN_Panner_LeftChan" FactoryPath="core.gain" Bypassed="0"> <Parameters> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="Gain"/> <Parameter MinValue="0.0" MaxValue="1000.0" StepSize="0.1000000014901161" SkewFactor="0.3010300099849701" ID="Smoothing" Value="20.0"/> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="ResetValue" Value="0.0"/> </Parameters> </Node> <Node ID="scriptNODE_MICMIXER_GAIN_Panner_RightChan" FactoryPath="core.gain" Bypassed="0"> <Parameters> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="Gain"/> <Parameter MinValue="0.0" MaxValue="1000.0" StepSize="0.1000000014901161" SkewFactor="0.3010300099849701" ID="Smoothing" Value="20.0"/> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="ResetValue" Value="0.0"/> </Parameters> </Node> </Nodes> <Parameters/> </Node> <Node ID="branch1" FactoryPath="container.branch" Bypassed="0" ShowParameters="1"> <Nodes> <Node ID="scriptNODE_MICMIXER_CHAIN_ChanFormatter_MonoChain" FactoryPath="container.chain" Bypassed="0"> <Nodes> <Node ID="split" FactoryPath="container.split" Bypassed="0"> <Nodes> <Node ID="matrix" FactoryPath="routing.matrix" Bypassed="0"> <Properties> <Property ID="EmbeddedData" Value="72.3o8BJ+RKIy7R22DKonLqfAFY0uRyM37KsnjS04LRLu7RMmhAJFiLw.CL.kuAf3yHP9AmZdo.ly+ABfJogHKogvjjA.f2Y1Al"/> </Properties> <Parameters/> </Node> <Node ID="matrix1" FactoryPath="routing.matrix" Bypassed="0"> <Properties> <Property ID="EmbeddedData" Value="72.3o8BJ+RKIy7R22DKonLqfAFY0uRyM37KsnjS04LRLu7RMmhAJFiLw.CL.kuAf3CjKCAmZdo.ly+ABfJogHKogvjjA.f2X0gk"/> </Properties> <Parameters/> </Node> </Nodes> <Parameters/> </Node> <Node ID="scriptNODE_MICMIXER_GAIN_ChanFormatter_MonoLevel" FactoryPath="core.gain" Bypassed="0"> <Parameters> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="Gain" Automated="1"/> <Parameter MinValue="0.0" MaxValue="1000.0" StepSize="0.1000000014901161" SkewFactor="0.3010300099849701" ID="Smoothing" Value="20.0"/> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="ResetValue" Value="0.0"/> </Parameters> </Node> </Nodes> <Parameters/> </Node> <Node ID="scriptNODE_MICMIXER_CHAIN_ChanFormatter_DualChain" FactoryPath="container.chain" Bypassed="0" ShowParameters="0"> <Nodes> <Node ID="scriptNODE_MICMIXER_GAIN_ChanFormatter_DualLevel" FactoryPath="core.gain" Bypassed="0"> <Parameters> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="Gain" Automated="1"/> <Parameter MinValue="0.0" MaxValue="1000.0" StepSize="0.1000000014901161" SkewFactor="0.3010300099849701" ID="Smoothing" Value="20.0"/> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="ResetValue" Value="0.0"/> </Parameters> </Node> </Nodes> <Parameters/> </Node> </Nodes> <Parameters> <Parameter MinValue="0.0" MaxValue="1" StepSize="1.0" ID="Index" Automated="1"/> </Parameters> </Node> <Node ID="scriptNODE_MICMIXER_GAIN_FinalGain" FactoryPath="core.gain" Bypassed="0"> <Parameters> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="Gain" Automated="1"/> <Parameter MinValue="0.0" MaxValue="1000.0" StepSize="0.1000000014901161" SkewFactor="0.3010300099849701" ID="Smoothing" Value="20.0"/> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="ResetValue" Value="0.0"/> </Parameters> </Node> <Node ID="goniometer1" FactoryPath="analyse.goniometer" Bypassed="0"> <ComplexData> <DisplayBuffers> <DisplayBuffer Index="-1"/> </DisplayBuffers> </ComplexData> <Parameters/> </Node> </Nodes> <Parameters> <Parameter ID="nodePARAM_MICMIXER_PrePanGain_LeftChan_Level" MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" Value="0.0"> <Connections> <Connection NodeId="scriptNODE_MICMIXER_GAIN_PrePanGain_LeftChan" ParameterId="Gain"/> </Connections> </Parameter> <Parameter ID="node_PARAM_MICMIXER_PrePanGainRightChannel_Level" MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" Value="0.0"> <Connections> <Connection NodeId="scriptNODE_MICMIXER_GAIN_PrePanGain_RightChan" ParameterId="Gain"/> </Connections> </Parameter> <Parameter ID="node_PARAM_MICMIXER_MicPan_Pan" MinValue="-1.0" MaxValue="1.0" Value="0.007087524414062241"> <Connections> <Connection NodeId="scriptNODE_MICMIXER_XFADER_PanCrossfader" ParameterId="Value"/> </Connections> </Parameter> <Parameter ID="node_PARAM_MICMIXER_Formatter_MonoGain_Level" MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" Value="-10.09999866038562"> <Connections> <Connection NodeId="scriptNODE_MICMIXER_GAIN_ChanFormatter_MonoLevel" ParameterId="Gain"/> </Connections> </Parameter> <Parameter ID="node_PARAM_MICMIXER_Formatter_DualGain_Level" MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" Value="0.0"> <Connections> <Connection NodeId="scriptNODE_MICMIXER_GAIN_ChanFormatter_DualLevel" ParameterId="Gain"/> </Connections> </Parameter> <Parameter ID="node_PARAM_MICMIXER_FinalGainMaster_Level" MinValue="-100.0" MaxValue="0.0" Value="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309"> <Connections> <Connection NodeId="scriptNODE_MICMIXER_GAIN_FinalGain" ParameterId="Gain"/> </Connections> </Parameter> <Parameter ID="node_PARAM_MICMIXER_Switcher_Index" MinValue="0.0" MaxValue="1.0" StepSize="1.0" Value="0.0"> <Connections> <Connection NodeId="branch1" ParameterId="Index"/> </Connections> </Parameter> </Parameters> </Node> </Network>