A Drum Energiser ScriptNode for Y'all
-
Knocks you drum samples up a notch, under user control. A combination of an aural exciter and subharmonic synth. Open to improvements from the community! Thanks to @Morphoice and @Matt_SF for the exciter from this thread.
This is a Master Effect—there's no advantage I can see of making it polyphonic?
The parameters in the Network have been pre-tuned for drums. The user controls are:
- xfader_exciterShifter: Limit the max to 0.5 or lower.
- drive
The faust code is just:
process = pitchshifter, pitchshifter;
<?xml version="1.0" encoding="UTF-8"?> <Network ID="network_auralExciter" Version="0.0.0"> <Node FactoryPath="container.chain" ID="network_auralExciter" Bypassed="0" Name="network_auralExciter" ShowParameters="1"> <Nodes> <Node ID="xfader" FactoryPath="control.xfader" Bypassed="0" Name="xfader" NodeColour="4278212863"> <Properties> <Property ID="NumParameters" Value="2"/> <Property ID="Mode" Value="RMS"/> </Properties> <SwitchTargets> <SwitchTarget> <Connections> <Connection NodeId="gain2" ParameterId="Gain"/> </Connections> </SwitchTarget> <SwitchTarget> <Connections> <Connection NodeId="gain1" ParameterId="Gain"/> </Connections> </SwitchTarget> </SwitchTargets> <Parameters> <Parameter MinValue="0.0" MaxValue="1.0" ID="Value" Automated="1"/> </Parameters> </Node> <Node ID="split2" FactoryPath="container.split" Bypassed="0" Name="splitter_exciterAndShifter"> <Nodes> <Node ID="split" FactoryPath="container.split" Bypassed="0" Name="exciter_splitter"> <Nodes> <Node ID="chain" FactoryPath="container.chain" Bypassed="0" Name="chain"> <Nodes> <Node ID="mul" FactoryPath="math.mul" Bypassed="0" Name="mul"> <Parameters> <Parameter MinValue="0.0" MaxValue="1.0" ID="Value" Value="1.0"/> </Parameters> </Node> </Nodes> <Parameters/> </Node> <Node ID="chain1" FactoryPath="container.chain" Bypassed="0" Name="chain"> <Nodes> <Node ID="jcompressor" FactoryPath="jdsp.jcompressor" Bypassed="0" Name="jcompressor" NodeColour="4294901760"> <ComplexData> <DisplayBuffers> <DisplayBuffer Index="-1"/> </DisplayBuffers> </ComplexData> <Parameters> <Parameter MinValue="-100.0" MaxValue="0.0" SkewFactor="5.422270774841309" ID="Treshold" DefaultValue="0.0" Automated="1"/> <Parameter MinValue="1.0" MaxValue="32.0" SkewFactor="0.4658005833625793" ID="Ratio" Value="4.030845700300551" DefaultValue="1.0"/> <Parameter MinValue="0.0" MaxValue="300.0" SkewFactor="0.3868528008460999" ID="Attack" Value="29.24596982414397" DefaultValue="1.0"/> <Parameter MinValue="0.0" MaxValue="300.0" SkewFactor="0.2037950456142426" ID="Release" Value="224.0345395966924" DefaultValue="100.0"/> </Parameters> </Node> <Node ID="gain" FactoryPath="core.gain" Bypassed="0" Name="gain" NodeColour="4287430911"> <Parameters> <Parameter MinValue="-100.0" MaxValue="12.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="one_pole" FactoryPath="filters.one_pole" Bypassed="0" Name="one_pole" NodeColour="4294942208"> <ComplexData> <Filters> <Filter Index="-1"/> </Filters> </ComplexData> <Parameters> <Parameter MinValue="20.0" MaxValue="20000.0" SkewFactor="0.2299045622348785" ID="Frequency" DefaultValue="1000.0" Automated="1"/> <Parameter MinValue="0.300000011920929" MaxValue="9.899999618530273" SkewFactor="0.2647178173065186" ID="Q" Value="1.0"/> <Parameter MinValue="-18.0" MaxValue="18.0" ID="Gain" Value="0.0"/> <Parameter MinValue="0.0" MaxValue="1.0" SkewFactor="0.3010300099849701" ID="Smoothing" DefaultValue="0.009999999776482582"/> <Parameter MinValue="0.0" MaxValue="1.0" StepSize="1.0" ID="Mode" Value="1.0" DefaultValue="0.0"/> <Parameter MinValue="0.0" MaxValue="1.0" StepSize="1.0" ID="Enabled" Value="1.0"/> </Parameters> </Node> <Node ID="split1" FactoryPath="container.split" Bypassed="0" Name="split1"> <Nodes> <Node ID="chain3" FactoryPath="container.chain" Bypassed="0" Name="chain3"> <Nodes/> <Parameters/> </Node> <Node ID="chain4" FactoryPath="container.chain" Bypassed="0" Name="chain3"> <Nodes> <Node ID="expr" FactoryPath="math.expr" Bypassed="0" Name="expr" NodeColour="4294901962"> <Properties> <Property ID="Code" Value="Math.tanh(value*input)/Math.tanh(value)"/> <Property ID="Debug" Value="0"/> </Properties> <Parameters> <Parameter MinValue="0.1" MaxValue="2.0" ID="Value" DefaultValue="1.0" Automated="1"/> </Parameters> </Node> <Node ID="mul2" FactoryPath="math.mul" Bypassed="0" Name="mul2" Comment="The Math.mul node inverts the phase of the signal"> <Parameters> <Parameter MinValue="-1.0" MaxValue="1.0" ID="Value" Value="-1.0" DefaultValue="1.0"/> </Parameters> </Node> </Nodes> <Parameters/> </Node> </Nodes> <Parameters/> </Node> <Node ID="mul1" FactoryPath="math.mul" Bypassed="0" Name="mul1" NodeColour="4285726464"> <Parameters> <Parameter MinValue="0.0" MaxValue="1.0" ID="Value" DefaultValue="1.0" Automated="1"/> </Parameters> </Node> <Node ID="mul5" FactoryPath="math.mul" Bypassed="0" Name="mul5" Comment="The Math.mul node shifts the phase of the signal bock to the original"> <Parameters> <Parameter MinValue="-1.0" MaxValue="1.0" ID="Value" Value="-1.0" DefaultValue="1.0"/> </Parameters> </Node> <Node ID="gain2" FactoryPath="core.gain" Bypassed="0" Name="exciter_xFaderGain" NodeColour="4294967040"> <Parameters> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="Gain" DefaultValue="0.0" 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/> </Node> <Node ID="chain2" FactoryPath="container.chain" Bypassed="0" Name="chain2"> <Nodes> <Node ID="faust" FactoryPath="core.faust" Bypassed="0" Name="faust"> <Properties> <Property ID="ClassId" Value="pitchShifter"/> <Property ID="NumParameters" Value="0"/> </Properties> <Parameters> <Parameter MinValue="-12.0" MaxValue="12.0" StepSize="0.1000000014901161" ID="shift (semitones)" Value="-12.0" DefaultValue="0.0"/> <Parameter MinValue="50.0" MaxValue="10000.0" StepSize="1.0" ID="window (samples)" Value="1000.0"/> <Parameter MinValue="1.0" MaxValue="10000.0" StepSize="1.0" ID="xfade (samples)" Value="10.0"/> </Parameters> <SwitchTargets/> </Node> <Node ID="ladder" FactoryPath="filters.ladder" Bypassed="0" Name="ladder" NodeColour="4282842880"> <ComplexData> <Filters> <Filter Index="-1"/> </Filters> </ComplexData> <Parameters> <Parameter MinValue="20.0" MaxValue="20000.0" SkewFactor="0.2299045622348785" ID="Frequency" DefaultValue="1000.0" Automated="1"/> <Parameter MinValue="0.300000011920929" MaxValue="9.899999618530273" SkewFactor="0.2647178173065186" ID="Q" Value="1.917178459625202" DefaultValue="1.0"/> <Parameter MinValue="-18.0" MaxValue="18.0" ID="Gain" Value="0.0"/> <Parameter MinValue="0.0" MaxValue="1.0" SkewFactor="0.3010300099849701" ID="Smoothing" Value="0.009999999776482582"/> <Parameter MinValue="0.0" MaxValue="1.0" ID="Mode" Value="0.0"/> <Parameter MinValue="0.0" MaxValue="1.0" StepSize="1.0" ID="Enabled" Value="1.0"/> </Parameters> </Node> <Node ID="gain1" FactoryPath="core.gain" Bypassed="0" Name="shifter_xFaderGain" NodeColour="4278251007"> <Parameters> <Parameter MinValue="-100.0" MaxValue="0.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" ID="Gain" DefaultValue="0.0" 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/> </Node> <Node ID="fft" FactoryPath="analyse.fft" Bypassed="0" Name="fft"> <ComplexData> <DisplayBuffers> <DisplayBuffer Index="-1"/> </DisplayBuffers> </ComplexData> <Parameters/> </Node> </Nodes> <Parameters> <Parameter ID="exciter_hipassGain_dB" MinValue="-100.0" MaxValue="12.0" StepSize="0.1000000014901161" SkewFactor="5.422270774841309" Value="0.3000014945864538" DefaultValue="1.0"> <Connections> <Connection NodeId="gain" ParameterId="Gain"/> </Connections> </Parameter> <Parameter ID="exciter_hipassFreq" MinValue="20.0" MaxValue="20000.0" SkewFactor="0.2299045622348785" Value="4712.715462207803" DefaultValue="1.0"> <Connections> <Connection NodeId="one_pole" ParameterId="Frequency"/> </Connections> </Parameter> <Parameter ID="excite_blendHP_01to1" MinValue="0.0" MaxValue="1.0" Value="1.0"> <Connections> <Connection NodeId="mul1" ParameterId="Value"/> </Connections> </Parameter> <Parameter ID="exciter_Drive_0to2" MinValue="0.1" MaxValue="2.0" Value="2.0" DefaultValue="1.0"> <Connections> <Connection NodeId="expr" ParameterId="Value"/> </Connections> </Parameter> <Parameter ID="exciter_harmonicsCompThreshold_dB" MinValue="-100.0" MaxValue="0.0" SkewFactor="5.422270774841309" Value="0.0" DefaultValue="1.0"> <Connections> <Connection NodeId="jcompressor" ParameterId="Treshold"/> </Connections> </Parameter> <Parameter ID="xfader_exciterShifter_zeroToOneHalf" MinValue="0.0" MaxValue="1.0" Value="0.0" DefaultValue="1.0"> <Connections> <Connection NodeId="xfader" ParameterId="Value"/> </Connections> </Parameter> <Parameter ID="shifter_NotchFreqBoost_dB" MinValue="20.0" MaxValue="20000.0" SkewFactor="0.2299045622348785" Value="126.6309339761271" DefaultValue="1.0"> <Connections> <Connection NodeId="ladder" ParameterId="Frequency"/> </Connections> </Parameter> </Parameters> </Node> </Network>
-
@clevername27 Brilliant! This is moving into SPL Vitalizer territory :)
-
This is my own take. I made slight modifications.
I'm using a linkwitz-riley filter (even though it's not suited for modulation - a svf can do the job)
I put the LP filter before the pitcher and the compressor after the HP filter.
I coupled the exciter and the pitcher for more flexibility.HiseSnippet 3408.3oc6as0aiabElx1i8ZmMW1KHI.snfvsAvNwVKGdQjrAEY80cM5ZutVtKxCKf.M4HKFSwgkjx1JEEHu09Gn+dZ6Oi9VepO2G6aomgjhhjhV2rVmjBqEqr3b8b46blyYFNjqCItVDqFAt1ddjPNtJyerO0jDDP84prxoc8HbUdHpdW2vV6zxv1k6fc4p7Qnc86zNfeO2VFtlDets65YDDPr3pTY9WvZUkkWfK5y+4q11vg0n9Eww8FpsI4U1ssC6W5wO+2Z63rugE4T61YZs7yOvj5tC0g1Ann4QBbdFlWXbN4HCVylCw8RifVbU9bjgjjUyZ0zzsLkUv5MMTsLOSRWgXIJKQzIVVpRVm0rIWkE2yxNj5WOzHjDvUYgsoVcq2hdka7D7F6.6ybHrGvb0gYNt38oNVLVjUJ2NsrcrREUAffCkQvMerf6onCssrSKOq.jUAe+djU.VYt7j274HObVxSHC4UBIUICIsPLI8HTcSeauv90vnm2CcfaHwuoAnmxRJwskqxeGsCEZfaX01FWP12GdHsCqUSPXCd3q0+xlcbMCsot7T2ingjW6t15q7GWY4U9SqvWrplMKsN1z3ScbH9kVMCZ3OrNtlam1mQ72f+RCmNjzFBredYJ5lkoYU4lwbclFRcOv0N70dD2aBHvkHpfe86OXWiPClhHoLncdD+PaFITYWxkfYPrZYYztjfKBodfgv.5L.sPs53XDlGBwLzRp.jA4zaLkiafcX2rFhyLb03RhOBcrcnYqxow4JgFAI06BZLwZ78Q60rIwLrOAt.Z+u9tyzakDSOXNYS9CSdje+uFWpQ2eA0Gf64S7L7ImRO1wn6ZAFs8bHm.z3F7m4PMunt82RFzpvKlD1l0h0LAW0tDmfow3YwwVpfGtR4DZmPa2yOzHz29ZvJ7nNsqC90MI6jPcPYUliYCE+r.6YFtnNrLUzCeO7IoRL64JIUh6UYFyuiHgWQ8uHRcj7atJKwj8+Bja7yML53a3r20l1f2rjkyr3dCwOfAWqrDRnJ7OtsbbnWsCssmcBPFTSQkcL0oqWKpqsIqn3VziY1pMsCPGIbDrJ0oF1NLje8NAf+CqW6VGZbzRiLj2QTK3WKsugIHp6drQXKlEDyCD.WI9UMSgsif56ikXZg3kIGQWXJyiM7glBkFDqHYzSukciUB.60lIYYK5VYdV8LQ6BwD9hLJ6AnqaBqf6ykiK9nHt..XUSpsLJLsqYm2GhjEU0DwhZ0jJL8YbkBkj7D3KYNFc7gLjUFF5ML.Ma1DibLjsoKx7bQ50BD5jCqCHpqXNtN0v+bRXz3msfD+4tjHymf7OxEqHOvhAdNGzXhbozAqvEibameFlrADW9.lgaYde58DvRGZ6lxcLv7gFWm9LFdlIEVBEWzVcBosAq7jvb1kzzniSXbcbb4zzAdN1ghb2HdMp9RU0+739BTWCRLPbKWq5sraFVP8OLX2bYHlkPwFGiv1oLZoWWG2osRloEgZ2wI+jtBBjdspxJurYKtGiXtla1nJyUQNEYRYbYMgxgexUSzRYYsXdH5ff2vp0zvo2r.t3xANhDpJSiBIsuSGPHF0MEfxGiRvhM5ANmJJHg7w2EXwkxLuKF4aH+r9dvr5Spd9MMeI8onCWMUYIAcLdXnx4yfJWpOp7AnMwB4AlKhvhPA0CIdrnTXIEITEZTzGrrt.FWChZ3BxUwzNWkmfTpJKJJpJnpJqIiAhgKlEi7zMbWTkSWEsVd.hQASFYwZfj.VPBZfttlrtp.NI4o5sozvVPfMboLsnv.VcIExM1htXpdFH4dH5DR.IrfeAgR7KHLfegLXrUPTWRCOJDpWNb1iQMscX.ipo0WFbKS2KB4zk0A5VPq.PmEOkC45dIQse7rz+mvONv0hbMKR9MwEVCbwLx4E6KmSzB8kxKCEj.FJnsEE00EjUpIJJIqopojns22m7G5.ws0sfzKETU.gxUNg7jH7TrxDqKJnKpmgpdBRuplN6SMrlhjfnpzfzWMYUrpFVURnlBVqVD8MO52MNt9KcQkk.onVQqWsj0URL+FC3yDrf0DafkeF+X1fJnG+QUslrlnhl3MIwuARH09p+ZnECJDOF75TMQKi1y0.xcxZRWtNiY46i9FSvPwONayBVleiUfW0r0WlkY9QnDiSArZMg7FmKTv3bWaXcSita2AxwN1FMWIC0TcgxEi2rKwwvm2JnSA9oE0wpTM23YiFK4yZNHIVBpUtlhlffhljTMQEUcoj3vNgkqHWpAsbU.ZqIqnJvf3JJ3QZZNDH0RHoR8YIoUSSQDnFM4ZLCCt3fR1JLzv7h9zhndUQYE8Z5ZhxXYIc02EzhnfjptByCJVVTVrVBh+DhCwHH05pWuyS.KghU84Q882JozbyJIoD7zD+WZeuEQ8IcKB3UZbm32EQpKeWP34jXKBga64WLd0njmhpn73UippT+S50DKFu5v1ffEQ6jwA+5nCYSbngaq0h16qO210qS35OqPwqOvtGrDZWxYcNu+FLHL9Yhiy4WSrP5akYOVzoUN4IjYo3DkLZRWRkZRnSaQ3OLoK7tvfya6dIvsA7gPMds.qVdZynGBrO20nrTYGuzWWDbsOd4ulzx6fDXuwAX.4Ldxky3ASyRQEBfql76jj+GGzyPYQkImEU5yIunDnT.aCdtQjD+YTyK3CoQEQ8sO29GYvqb6xP7F6MQIa+zz8W3Z1gb5+hxR8FbkUSUPVX1j58LK+wjP+GQbTYMgtO66YS12uCVqW7VrVu3XuV+7Yl3OD4X6dwU1gequsCoa94+SR27f7MpLpn3.MfKUQM3KMg62FgY41HvNDL.S+C5FIr3LeiDF9NHLa2lAwwbaFD9w71LrDBZbPg8V+gwq5EWS46ocbcixuwPiVeYzNNvHePJ4+AHO1wm06Li3F2i+qXz4yWtfkAeEmhcwlM2OAEEnC+ZAj11gTWRv5bEF1IPEuHRonaFrPwEO6qmeL5JaWK5U7Iuh.8m6G.tmj0FXxSc1Lla.xvm9GEeFtkM6XIMkRVSFGM2ENt0Ai0BOowZEDiLFVrVpfQLvLp2Gq08wZcGl.YLfVZx.z85zDcxw2eFc2ibm8HW4oA4J+tB4Nqc6dOv8GpCWFgZ1rPvkuOxv0voa.DeYyva38ogUynhsb1cRU2rYWkkyJ4YLzmjtgOsrYTNCe0vZat6.OwIC1igDOTi5Hj4mjrtnboQ7Odu7YIurHC+cOKQW9zBrNKUWtYSty8OMMUPRohUjg5DT0DjtE7Vl2Lgb7W1jzykoKiI+3DlrAjWkq0KOtg.Njh4FU5YIO7HnxZBZJxBBR5B0DUtUplnMXNGo2aaNGfr6qa1029RRCgPpH2nNXhToNtpLVUPFqA9mvpvetUjczw4LRxNBR8K6CoL7aydgaCXl0m1J4PdGok03cxwIM9onME0qJHIVSRQWEiwxJ2F7U9yWOGCm4XpGPU8YIuRr8dKISR2sw2R7omResK4kFNMGW.2xK7E+4O9edzZ+quZ54iz2Q2wSm8yRSC6HJjeGyVZaJMHLutZl3M.KiqJBZJcMoZXAUQsag1p3tLNVtDVJdovj218W2I7NzO+xK7e+9uRki6yd9zyz8xvXT92i3yOHp75gFmSFImNShyHkQ+NNtWY17e+2tsLp7MvnSQry.j9h1FQWyfa8E94I8toJa0wxl9JJqybwdsiJgmUDO6NfP7wyhacm2Xeq6p200LZ2JyLIQWumS8MLufEdZlohQl81wwLs+DHRV1s+J6s9qdzVEAXI+PX3yNHmPtDBshjqr8AKx3P+NEs6u9satI+t68F9M27su7f5681WXG9xNmweBwi915w2nwfMek8Y9F9ceaj.j0+f2900eUCrnRinawXi8633zPt5UFWx0lIDiCgrsA6BpT469qyw4.bSDA1qNmH1ypW8UleX2mP7TdeBW3Gc2mveBb0zxcuqVtGMV2lgw1y8RhCXQkrSoItP5UZdyoCotzd2qmrHxPe6yOm4GrOsWJCk79VkVxSedu25ozh9UO+U1tDC+hFUSfr.Ow2AsR0WeZxqGFOyG.+OcuRgy++0Wov6jKO2cwbz1vzm1H4JgwvoOHpDfuci7ruL5P1y7XtK6sreOcYavKWCSy7C0.cTbZ6nzz1Q4osiJSaGqMscTcZ6n1n6HaQnjcPiYZxwc3w6EEPTkJoQCTYdNR6yHVvRewWzUFzNsDWx0QKQy7d0zlYVLG6OwTxmFeVhOK6Y+U0Jvq20zlat+wbHKhoigOgm0E9jOqlsGq9kqzqMWFeOOiaCDBYlpL5D1h5mz8WvBULSkNPfTtAwC+paWe2LUYR85BqQzJjU0Zlq+hS15v83gDZpAMZE9m8rMGqOrVxCAa1kOHZsKdehgCeHy+bDuvmjY0DLhq.CD0ObsUCBshjiUcrOa00ApJZDSFP9eC+km6S63s1pQdZ46I01fmzrZnugafGMfr1J7iwmVAN1P5hqsZwSkDFMVN.avqHD+K1eVeiIaPKbViQiI7+oe.G3fa4gwDFnMwhav+ErufTWVeLFyAaSjXN1YNHgyJv2H2SeIG2+CvbymKw
-
@Matt_SF Very cool! I'll check it out…