HISE Logo Forum
    • Categories
    • Register
    • Login

    Shortcut and NodeScript for Mono Multi-Mic Samples

    Scheduled Pinned Locked Moved Presets / Scripts / Ideas
    1 Posts 1 Posters 224 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • clevername27C
      clevername27
      last edited by clevername27

      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).

      micmixer.png

      <?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>
      
      
      1 Reply Last reply Reply Quote 1
      • First post
        Last post

      10

      Online

      1.7k

      Users

      11.8k

      Topics

      103.2k

      Posts