Tuesday, September 15, 2009

OffSiteNoise - inudge

Just a neat little musical toy to play with :)

Tuesday, July 21, 2009

OffSiteNoise - Resonant Filter

L.72 just posted an interesting device on the Propellerhead User forums -
"a CV Delay combi geared towards drums and is a new take on dub with a bit of glitch thrown in for good measure."
This led me to his new blog at:

http://resonantfilter.blogspot.com

This blog has only been in existence for a month but already has over 20 posts - all well written and thoughtful. There's a good variety of technical and artistic articles covering subjects like Reason, Record, real hardware, musical opinion and a few other bits and pieces. There's a good assortment of interesting pictures and linked videos too. If the current posting rate continues, the site will be a very interesting place to regularly visit if you're interested in a broad range of musical technology and techniques.

Thursday, May 14, 2009

Shultz's Triple-X Fader

Last month on the Propellerhead Users Forum, Shultz (aka E-Note) posted an innovative device that allows a crossfade between four different audio sources. Essentially, as the mod-wheel is moved through its range, the output audio fades between each adjacent input. I would like to try to explain how this device works for the benefit of everyone else.


Figure 1 - Shultz's Triple-X Fader

The key behind this amazing device is Shultz's clever use of the Thor Shaper. According to the Reason manual, the shaper distorts incoming audio in various ways, and also suggests a certain random element for some algorithms. One of the shaping algorithms is the Rectify function. This is a very simple function that resembles a diode or 'absolute value' function - the output signal follows the input, except when the input is below zero. In this situation, the output signal is inverted. This means it never falls below zero. Figure 2 shows this relationship.


Figure 2 - rectification function

The fading is performed by the Level CV inputs on the back of the Mixer. Each of four channels are driven by a CV signal that consists of a single peak. Each peak is distributed evenly across the mod-wheel domain, so that each channel will be at minimum attenuation (i.e. maximum volume) at a distinct point of the mod-wheel. When one channel is at maximum volume, the other three will be somewhere below.


Figure 3 - Thor programming

The Triple-X Fader consists of two Thor devices, each handling one half of the mod-wheel range. Each Thor performs almost the same function except that different DC signals are combined with the shaper input signal to offset the domain to either the upper or lower half.


Figure 4 - first peak

Figure 4 shows how the first peak is created. On Thor1, CV Out1 is a direct inversion of the mod-wheel added to a constant DC level. This results in a signal that starts at 41 with the mod-wheel input at zero, and falls linearly as the input increases. It crosses zero at an input value of 41. This results in mixer channel 1 at maximum amplitude when the mod-wheel is at zero, and falls away to silence as the mod-wheel increases.


Figure 5 - second peak

Figure 5 shows how the second peak is created. In this case, the mod-wheel input is inverted and fed into the shaper via Filter1. Note that the Thor sequencer is set to run constantly, which keeps a voice "open" and therefore holds the filter & shaper open. A positive DC offset is also added so that the signal into the shaper starts at 41 when the input is zero. This signal also falls to zero as the input increases to 41 and proceeds to go negative for greater values (black line). The shaper rectifies this signal (makes it positive, if negative), so that for input above 41, the signal now increases away from zero (blue line). The return signal is then inverted (turned upside-down) and a positive DC offset is added to raise the peak (red line) up to the same level (41) as the first peak. Clever huh?

The other two peaks are created in the same manner by the second Thor device. However the DC offsets used are different, which positions the peaks in the top half of the input domain. Also, the last peak is an increasing function of the input signal - it increases as the mod-wheel increases.

Each peak signal drives a separate mixer channel, but figure 6 might help you understand how they fit together.


Figure 6 - combined mixer control signals

One major shortfall of Reason is the lack of CV computation. It is very difficult to create even basic CV functions. Thor provides a way to implement addition and subtraction, and now it also provides an absolute value function. Shultz has demonstrated a very clever use of this in his 4-channel fader.

He has kindly granted me permission to provide a link to his Triple-X Fader here.

Update - Noise Gate

A quick and minor update to my Noise Gate.

I've added a Side Channel Monitor button, that allows you to switch off the main audio input and listen directly to the Side Channel input. This may be useful for setting the level of your gate triggering signal.

Version 11:
The updated Combi patch is here.
The updated Calibration RNS file is here.

Monday, April 27, 2009

Update - CV Monitor Tool

A quick update to the CV Monitor Tool.

presiato posted an improvement that allows the four Rotary inputs to be used for bipolar CV signals, rather than the unpleasant truncation that occurred in version 0.0.3.

His original post is here (if you have access to the forum). Many thanks for the improvement!

I have posted the improved CV Monitor Combi patch here:

CV Monitor Tool 0.0.4

Note that the display range is set from 1 to 2000 - this is because a direct mapping between a bipolar CV value and the DDL numeric display does not seem possible. You can get pretty close, but it's often out by 1 or 2. To ensure that this inaccuracy does not confuse anyone, I deliberately extended the range to approximately 1000 in either direction. Feel free to consider this +/- 100.0% if you like. Note that the mid-point is now 992 (for a CV value of zero). I realise this isn't ideal, but it's due to inaccuracies generated by rounding within Reason.

If you can improve it, please let me know!

Thursday, April 23, 2009

OffSiteNoise - Peff's Scream4 Waveforms

One of the things I want to do with this blog is direct readers towards interesting articles written by other people. I will call these OffSiteNoise posts. They will probably be Reason-related, although some may cover more general topics like music theory or audio synthesis theory.

So here's the first OffSiteNoise post!

Following my previous post about the Scream4 tape phase inversion, I wish to highlight the observations reported by Peff for the other Scream4 distortion algorithms. You can read all about it with pretty pictures of mangled saw-teeth right here.

Scream4 Tape Algorithm - Phase Inversion

Peff points out here that the Scream4 'tape' algorithm has an effect of inverting the output waveform at lower frequencies. This can have the effect of canceling with the original signal if mixed back (e.g. as a Send Effect). He posts a couple of solutions and a good example that illustrates this "feature".

I have seen many examples where the tape algorithm is used on drums - this is definitely something to keep in mind if you're not using it purely as an insert.

I did my own test with an Oscilloscope application, listening on my sound-card's "stereo mix" or "What U Hear" channel, and as you can see in Figure 1, mixing the 'taped' signal with the original (blue) cancels out a huge part of the original signal (red). Only the higher frequencies remain.


Figure 1

My test RNS file is here.

Thursday, April 2, 2009

Blog Review: boddicker.org

Today I came across boddicker.org, via a new Side-Chain Compression tutorial posted on ReasonTutorials.

boddicker.org is dj.boddicker's site. I don't know any more about this person than what is there, but what really struck me is the small but notable collection of Reason-related posts.

These devices are great. There's the side-chain compression tutorial I mentioned earlier as well as:
The RNS files are provided, as well as demo music files, so have a listen!

What impresses me is how simple in concept these devices are, yet so elegantly constructed. Even better, the examples provided are top-notch and illustrate the devices perfectly.

There is also a small collection of high-quality tutorials, not all related to Reason, that are very interesting and well written. In particular, "how to make drums sound bigger" answers many questions that confound the search for good rhythms.

Great site dj.boddicker - looking forward to trying out your future creations!

Tuesday, March 24, 2009

Dual Edge CV Gate

Allow me to introduce a rather unusual device. I'm not sure if a proper name exists for this, but I have decided to call it a "Dual Edge CV Gate".


Figure1

RNS File

Actually it's not really a gate - it's more like a switch. The device is designed to switch on or off depending on the input CV signal. When the switch is on, it will output a high CV signal (127); when off it will output a low CV signal (0) . There are two thresholds - lower and upper, such that if the input signal is between these thresholds, then the switch is on. If it is below the lower threshold, or above the upper threshold, then the switch is off. Figure 2 illustrates this relationship.


Figure 2

It would be fairly straightforward to extend this switch to control a gate which passes or inhibits the original input CV signal. This way you would get a 'piece' of the input CV signal for a particular domain, instead of a straight on/off value.

So how does it work?


Figure 3

Well, once again the Thor synthesiser is more than just an audio synth. Inside a Combinator and with some careful routing rules, Thor is able to implement two step functions. One of these step functions is flipped over. When combined with a logical "AND" operation, the result is a pulse, as illustrated by figure 3.


Figure 4


Figure 5

Figure 4 shows a simplified view of the cabling connections on the rear of the device and figure 5 shows the Thor configuration. The input CV signal is connected to the "CV Input" Spider CV Merger, which drives the Combi's Modulation Wheel input and in turn the Thor modulator wheel. Routing rules 1 to 4 combine this value (sum) with DC signals (via CV In1). However these DC values are scaled by the two Thor Rotaries, labelled "Lower Trigger" and "Upper Trigger". Combi knobs 1 & 2 adjust these rotaries, thereby allowing the user to adjust the DC level added to the Mod Wheel value. The output from these rules (CV Out1 & Out2) are connected to the Combi knobs 3 & 4. These are programmed to modulate the Thor Main Buttons. In a similar manner to my Noise Gate, these buttons only activate when the controlling knob reaches it's maximum value (127). Knob 3 activates Button 1 when the sum reaches 127, and knob 4 activates Button 2 when it reaches 0.

This provides two configurable thresholds - upper and lower. The difference between them is that one will activate when the input signal is above the lower threshold, the other activates when the signal is below the upper threshold. You can see the Thor Button1 & Button2 lights activate when the respective thresholds are crossed. You can adjust the thresholds by setting Combi knobs 1 & 2. Typically, you would set knob 1 to be less than knob 2, otherwise the gate will never open.

The long routing rule (CV In1 > CV Out3 / Button1 / Button2) implements an "AND" operation. CV In1 is a DC signal (value 127). This value is passed to CV Out3 when both buttons are on. If either or both are off, CV Out3 is driven to zero.

There's a bit of logic to implement the "invert" function when Button1 on the Combi is selected.

The CV outputs are taken from the "Gate Output" Spider Splitter. The SplitA output is the normal or inverted output, while the SplitB output is always the inverted output.


Figure 6

Figure 6 shows the gate activating when the Modulator Wheel on the Combi is set within the two thresholds. Both Thor Buttons are lit. Note the two DDL Delays in the CV Monitor Combi - as the Modulator Wheel is moved, the gate will open or close and the DDL displays will indicate this. A value of 127 on the left DDL shows that the gate is open (i.e. the switch is on). The right DDL shows the inverted output (switch off).


Figure 7

Figure 7 shows the input CV value set by the Modulator Wheel below the Lower Threshold. Only one Thor button is lit, because the input signal is below the Upper Threshold, and the gate is closed (switch is off). The left DDL shows zero. The right DDL shows the inverted output (switch on).

So what can this device be used for?

That is actually a really good question!

One idea is to use a CV input value from a Malström LFO. With several Dual Edge CV Gates, you could divide the LFO range into sections, where each section enables a particular instrument. In this example file, the LFO changes through several waveforms, having a distinct effect on the sound. Note that there is some overlap between each section, so that sometimes more than one SubTractor is audible at a time. It's a bit cheesy, but it works.

Example 1 RNS
Example 1 OggVorbis

Another use may be to select different instruments or effects depending on the velocity of a MIDI note, or to select different effects or signal paths in response to the amplitude envelope of another audio source such a drum loop.

Example 2 RNS
Example 2 OggVorbis

This device is really a solution looking for a problem - a building block towards larger, more complex configurations. So if you have any good ideas for creative uses of this device, I'd really love to hear about them.

Friday, March 6, 2009

CV Monitor Tool

In the course of developing my Noise Gate, I found it very useful to visualise CV signals in real time. In fact, it surprises me that there isn't a built-in way to do this. So I thought I'd share my very simple "CV Monitor" combinator.


Figure 1 - The CV Monitor


Figure 2 - Connect CV signals to indicated ports

It's a very straightforward device to use - simply connect any CV signal you're interested in to one of the ports on the back of the Combi, as figure 3 demonstrates with the SubTractor's LFO output.


Figure 3 - SubTractor LFO connected to Pitch Bend CV input

Turn the rack around and you'll see one or more of the DDL digital displays changing in real time according to the incoming CV signal. Because the DDL delay starts at one, not zero, I have centred the displays at 1000. So just ignore the leading 1 and read the CV value directly.

Note that the rotary and modulator monitors are restricted to unipolar CV signals from 0 to 127. If you want to view a bipolar signal (such as the sinewave from the Malström LFOs) then you'll want to connect this to the Pitch Bend input. This will display the CV signal from 1 to 2000 for full-range deflection of the Pitch Bend wheel.

This hints at something to be aware of. Reason seems to do CV scaling where necessary, so thinking in terms of absolute CV values can be dangerous at times. For example, if you connect the SubTractor triangle-wave LFO to the Pitch Bend input, you'll see full deflection of the Pitch Bend and therefore the DDL will display a signal oscillating between 1 to 2000. But if you connect the same signal to, say, Rotary 1, then two things happen:
  1. the signal is truncated for negative values, so the DDL will show 1000 for those parts of the LFO waveform.
  2. the signal is scaled so that the maximum CV value maps to the full range of the control being modulated, in this case 127.
So what is the actual CV value? Does it actually matter? It looks like the effect of the CV signal depends on what you connect it to. This is actually quite useful because it means if the CV generator is oscillating full-range, then whatever you connect it to will also oscillate full range, regardless of the resolution of this destination. Therefore I suppose it might make more sense to think of CV signals as percentages, where unipolar full-range is 0 to 100%, and bipolar full-range is -100% to 100%.

I'll think about this some more - if this is true then it might make far more sense for the rotaries to map from 1000 to 1100 instead.

Also note that the Pitch Bend wheel generates CV values from -8192 to 8191, a range that exceeds the display capability of the DDL delay. The Combi programming scales this range down to 1-2000 for display.

The Combi also accepts and displays Aftertouch and Expression MIDI signals, in case that's useful.

Here is the Combinator Patch.

RNS Example 1 has a bunch of CV automations driving the Combi controls directly. Hit 'play' to view.

RNS Example 2 has several LFOs being monitored simulataneously by the device. Note that the SubTractor LFOs are all bipolar, so you'll see the display stick at 1000 for those parts of the waveform that are below half-way.

I hope you find this useful at some stage.

Sunday, March 1, 2009

Blog Review: "Reason: Patch A Day"

Robbneu from Reason: Patch A Day very kindly mentioned this site recently, so I thought it would be good to review his site here, since I have been following it myself for several months.

Robbneu updates his site regularly. His goal is to create a new Reason patch, every day in fact, as a means of learning new methods of synthesis and sharing these with his readers. While I suspect real life occasionally gets in the way of such an admirable goal, he's certainly prolific. There are currently over 100 great patches posted since the site began only six months or so ago.

Robbneu obviously spends a fair bit of time creating each patch, and this shows. These aren't your typical trance leads that anyone can create in just a few minutes. Although experimentation and luck can play a large part in designing new sounds, it's clear that he usually has something in mind. Each patch comes with a short description of the inspiration or intended result, and some include suggestions for taking things further. A small RNS file is usually provided to demo the patch, and if it's an effect then the demo may turn the patch on and off to highlightthe change in sound.

The patches are typically of very good quality and sometimes follow a theme. For example, recently the theme was "Saturn's Rings" - a collection of subtle atmospheric sounds that have a definite 'space' feel to them. Other times the patches may focus on a particular synth or effect within Reason, or even a particular type of sound, like drums.

Just to note - you'll need a copy of Reason (full or demo) to hear the patches, as recorded samples are not provided. Patches are developed with Reason 4 although perhaps some would work in earlier versions.

Robbneu was kind enough to allow me to post a patch myself. I thought it would be interesting to imagine a sound and then find a way to create it. I didn't quite end up with exactly the sound I set out to find, but I was pretty happy with what I ended up with.

Summary: a great blog to follow if you like to hear new and interesting sounds in Reason. Regular updates mean there's often something new to download and try out yourself.

Friday, February 27, 2009

Thor's Destination Amount

Just an interesting observation I made while developing the noise gate. The "Destination Amount" in each of Thor's routing rows goes from -100 to 100 and modifies the Source signal as it goes to the Destination. However this is not a linear modification. It turns out that it's cubic! 100 is still 100% and -100 is 100% inverted, but smaller values follow a cubic relationship. Therefore, a setting of 80 is actually (80/100)*(80/100)*(80/100) = 0.512, or about 50%.


Figure 1 - Thor Destination Amount

Figure 1 makes this clear. Note that this means values of Dest Amount between about -25 to 25 are very close to zero. The regions between -100 & -80 and 80 & 100 are reasonably close to linear.


Figure 2 - Thor Scale Amount

However the scaling caused by the Scale parameter is linear, as figure 2 shows.

Designing a Noise Gate in Reason 4


Figure 1 - The Noise Gate

While looking around for useful music production tutorials, I came across this article by Francis Preve. Francis describes the operation and control of a noise gate - an often overlooked audio effect device that was originally designed to help remove noise from an audio recording. I won't repeat the article here as it's well written and comprehensive.

The most interesting aspect of the noise gate is the effect you can create by using a second audio source, for example a drum track, to trigger the gate and allow through another signal such as a sustaining pad. When carefully set up, this can result in some great rhythmic dynamic effects.

Propellerhead's Reason 4 "music system" software has many interesting built-in devices but it does not have a noise gate. So I set about designing one.


Figure 2 - Typical Noise Gate Response

This diagram shows the relationship between the input signal and the output signal. The output signal is shaped by the Gate Envelope, which is triggered when the input signal exceeds the threshold. As long as the input is above the threshold, the Gate Envelope rises at the Attack rate to fully-open, where it then sustains. When the input signal falls back below the threshold, the Gate Envelope will hold fully-open for a certain period of time (Hold Time), and then fall back to zero at the Release rate.

The first thing to notice is that this system is non-linear. Excluding infinite sums of cosines, there isn't a way to create this relationship without a step function. The question is, how do we implement this in Reason? Reason has fairly primitive support for addition and subtraction of CV signals, but how can we get a step response?

The answer that I found is to use the Combinator. Normally, a Combi knob (or rotary) is programmed to modify a similar knob or slider on an internal device. But what happens if a knob is used to modify an on/off button or switch? It turns out that the switch will remain off until the Combi knob is at maximum (127), at which point the switch will turn on.

There's a well-known trick with the Combi where you can program a Combi knob to control an aspect of an internal device and then use an LFO or CV signal to control that knob via the port on the back of the Combi. Reason even animates the effects as if you were changing the knob manually. So if a CV signal is set to drive a Combi knob that is programmed to a button, then that button will turn on if and only if that CV signal drives the Combi knob to maximum. If that button is used to trigger the Gate Envelope, then we have the beginnings of a noise gate.

Figure 3 shows my noise gate with all devices except Thor expanded. I'll explain Thor's configuration a bit later.


Figure 3 - Expanded Front View


Figure 4 - Expanded Rear View

The wire routing on the back in figure 4 is pretty confusing, so I have created this diagram to make things easier to follow:


Figure 5 - Rear Connections Simplified

The design is pretty straightforward once you understand how all the parts work together.

First, an input audio signal enters via the Combi Inputs, or via the Side Audio Input - the Spider Audio Merger/Splitter at the top. A Combi only has two audio inputs, so this Spider is used as a secondary input and you use an External Route to connect an audio source.


Figure 6 - Input Mixer

The Input Mixer selects either the main audio input or side audio input, depending on the mode set by the Combi 'Side Channel' button. The result, or Trigger Audio in the image above, is directed into the Scream4 unit. It goes via the Tail Delay effect, which I will explain later.

Normally the Scream is a distortion effect, but in this case it is used purely as an amplitude envelope follower. It takes the incoming audio signal and generates a CV signal that essentially 'joins-the-dots' between each positive peak in the signal. So for example a burst of equal-amplitude sine waves would produce a rectangular-shaped amplitude envelope. This signal emerges via the Auto CV Output port.

This envelope is fed into Thor's CV Input 4. Without explaining the details just yet, it then emerges via CV Output 4 as 'Trigger' and this drives the Modulation Input port for the Combi's Pitch Bend Wheel, causing the Pitch Bend Wheel to respond to the input audio amplitude.

Now, why the Pitch Bend Wheel? Well, it turns out that the Combi's knobs and Mod Wheel have a resolution of 128 steps, 0 to 127. However the Pitch Bend wheel has a resolution of 2000 steps. It sits idle at 1000 and can travel down to 1 or up to 2000. When the incoming CV (it's bipolar remember) is zero, the Pitch Bend wheel sits at 1000, so this is our idle point. As the amplitude envelope of the input audio increases, the Pitch Bend wheel is driven higher towards 2000. If the signal is negative, the wheel goes towards 1. The Combi is programmed so that the Pitch Bend wheel controls Thor's Button 1, labelled "Gate Trigger". When it hits 2000, the Gate Trigger is turned on. Any other value and it's off.

So I am only using half of the Pitch Bend Wheel's resolution (1000 to 2000) but I have found this gives much better results than 128 steps and also frees up a Combi knob for use as a setting.


Thor - The "Computer"

Now I have to explain how Thor is configured. First, I renamed Thor as "Computer", since it does not provide any audio output in this device. It is acting merely as a signal processor. Thor is incredibly useful in this capacity and should be considered far more than just a (great) synthesiser.


Figure 7 - Thor, The "Computer"

You can see six rows configured in the Matrix and almost everything else is turned off.

Row 3 in the left column contains a rule that passes an incoming CV signal on CV In4 out to CV Out4, scaled by the level of Rotary2, labelled "Input Pre-Gain". As mentioned above, this signal is the detected amplitude envelope of the input audio signal. So this rotary acts as a gain control, scaling this envelope signal up or down. This is useful if the input signal is too loud or too quiet for the default calibration of the noise gate.

Row 2 in the right column has a rule that triggers Thor's Global Envelope when Button1 is on. Recall that Button1 is triggered by the input amplitude envelope causing the Combi's Pitch Bend control to hit 2000. Therefore, when the input signal is loud enough, it will trigger the Global Envelope. This envelope becomes the Gate Envelope. Note that the Global Envelope is set to maximum sustain and zero decay so that the gate is fully open once the attack phase is complete.

The Combi knobs 'Attack' and 'Release' are programmed to directly modify the Global Envelope's Attack and Release sliders. In this way, you can shape the Gate Envelope when it opens and closes.


Figure 8 - Combi Programming for Thor


Gate Mixer

This Global Envelope directly drives the Mod Wheel modulation input on the back of the Combi. The Mod Wheel behaves just like a normal Combi knob, with a resolution of 128. I use this control so I have all four normal Combi knobs available for settings. The Mod Wheel is programmed to control the Channel 1 & 2 levels on the Gate Mixer (Figure 9). Normally Channel 1 is unmuted and Channel 2 is muted. When the Mod Wheel is at its lowest, then Channel 1 Level is zero and Channel 2 Level is maximum. As the Mod Wheel increases, so does the Channel 1 level, but Channel 2 Level drops towards zero. Both channels are receiving the audio signal from the main audio input and the Gate Mixer is connected to the Combi audio outputs, so this is how the Global Envelope affects the output signal.


Figure 9 - Gate Mixer

Because Channel 2 operates in the inverted sense, when the "Flip" setting is enabled, Channel 1 is muted and Channel 2 is unmuted. In this mode the gate works 'backwards' - audio is passed through the gate when it is off, and inhibited when the gate is open. This can create some interesting effects.


Threshold

So now we have a device that opens to allow through audio whenever the input amplitude envelope causes the Pitch Bend control to hit 2000. But this corresponds to a particular loudness and it would be much better if this limit, or "threshold" could be configured. The Input Pre-Gain rotary on Thor goes some way to provide this, but it has another role to play as a secondary adjustment. Instead, a constant (or "DC") offset is used to adjust the zero level of Thor's CV 4 Output. I.e. the Pitch Bend bias.

Imagine a sine wave that oscillates between -1 and +1. The average level of this signal is zero. If you add a constant value, say 4 to every point on the sine wave, you get a signal that oscillates between 3 and 5, with an average level of 4. Using this principle, a constant value can be added to the input amplitude envelope to bring it closer to the magic 2000 limit. In this way, the gate can be made to trigger for quieter signals.

For example, normally the Pitch Bend Wheel idles at 1000. If you adjust the threshold you will see this value increase towards 2000. Because it starts closer to this limit, then it should be fairly obvious that it only takes a smaller signal to get there.


Figure 10 - Malström LFOs

The Malström is used to generate this DC signal. LFO1 is set to the constant waveform and this CV output is fed into Thor CV Input 1. Within Thor, the first two rows of routing entries in the left column adjust this DC level and add it to the signal going out via CV Out4. The first row configures Rotary 1 to scale the DC signal that goes to CV Out4. Note that combining routing rules with the same Destination results in simple addition of the signals. The -8 amount is a small adjustment used to calibrate the system.

Combi "Threshold" knob is programmed to modify Thor's Rotary 1.

So now we can adjust the threshold and cause the gate to trigger at the amplitude level we desire.

Note that the hold period starts at the same time as the attack period, so if the hold period is longer than the attack, the attack will always complete.

Hold

We're almost there. There's just one more control to implement, and that's the Hold control. With a noise gate, the Hold control is used to ensure the gate remains open for a minimum period of time. This stops the gate from rapidly opening and closing (stuttering) if the audio signal crosses the threshold repeatedly and too quickly. There's a hold setting on Thor's Global Envelope but the problem with that is it does not take effect unless the trigger sustains, so it's useless in this situation.


Figure 10 - again

The solution is to use the second LFO on the Malström - a simple square pulse set to 'one-shot' mode. The Combi Hold knob is programmed to adjust the Mod B rate, which in turn affects the duration of the pulse. Within Thor, the gate trigger (Button1) is routed to output a CV signal on CV Out1. This is used to fire the Gate on the Malström and activate the LFO, producing the single square pulse. This pulse is fed back into Thor via CV In2 and used to retrigger the Global Envelope. Fortunately, if the Global Envelope is already active (as it will be in this case) then this simply continues the envelope, holding it in sustain until the pulse has finished, even if the audio envelope trigger has since fallen below the threshold. So in this way, the Hold feature is implemented.

Tail Delay

There's a quirk in the way Reason works. When a device no longer receives any input (and has emptied its delay buffers, if any) then it makes sense to stop outputting anything, since there's nothing coming in to actually process. This is both a CPU-cycle saving feature as well as a consequence of the design. Unfortunately it causes a problem in this device.

The Scream, at least in Auto CV mode, has no internal delay. So when the incoming audio signal suddenly stops (perhaps due to fast release or other gating) the Scream will also suddenly stop processing. This means it does not output the final CV sample - the one that shows the envelope returning to zero! Instead it holds the previous sample which in this case is obviously not zero. So for other devices down the chain, they see this signal as non-zero. If this held value is high enough then this has the side-effect of keeping the gate triggered and therefore open, even when the sound has completely gone. Not good for a noise gate!


Figure 11 - Tail delay

The solution is to use a Delay set to 0% feedback, 1ms delay, and 1% wet. This creates a very, very low single echo 1ms behind the main signal, which is enough to keep the Scream processing for a few more samples beyond a sudden audio cutoff without affecting the envelope. Problem solved.

Monitors


Figure 12 - Real-time Trigger & Gate Monitors

The delay devices labelled "Trigger Monitor" and "Gate Monitor" do not process any signals - instead they provide a visual way to monitor the trigger level and gate envelope in real-time. You can also visualise these signals by watching the movements of the Pitch Bend and Mod Wheel within Thor.

The Combi patch is here.

Calibration

In order to ensure the noise gate is operating correctly, I constructed a Calibration test bench. This involves of a main input signal consisting of a single sinewave at various volumes, with a rectangular amplitude envelope. There is also a similar side-channel input. Use of this test bench verifies the gate's behaviour and also led to the fine tuning seen in routing row two in Thor.

The Calibration RNS file is here.


How To Use

Recall these typical noise gate settings:
- Threshold: set the amplitude level that triggers the gate
- Attack: set the rate at which the gate opens, once triggered
- Hold: set the minimum period of time the gate will remain open.
- Release: set the rate at which the gate closes once the signal has fallen below the threshold and the hold has expired.

A fast attack with slower release and some hold time is reasonable setting.

There are at least three main ways to use a noise gate. All of them take a bit of time to set up, but the results can be quite good.

Firstly, you can use it to simply gate out quiet sounds. When the input signal is below the threshold, nothing gets through. With longer release, a louder sound may trigger the gate and allow subsequent quiet sounds to follow it through.

Secondly, you can use a side input to trigger the gate with a different audio source. This works great with drum loops triggering the gate on a sustaining pad.

Example RNS.
Ogg Vorbis.

Thirdly, you can "flip" the gate so that it only passes audio when it's *not* open. This seems to work best when the attack is set reasonably long and the release is short.

Example RNS.
Ogg Vorbis.

If you put a delay, say 3 steps, on the main or side input, you can generate some extreme weirdness!

Can you think of any more ways to use a noise gate?

If you use this noise gate in a new or great-sounding way, or improve it, please let me know as I'd love to hear about it.

Update: version 11 released.

Welcome

Hello, I am meowsqueak and welcome to my new blog about things related to audio and music production. I like to play with sound in my spare time and occasionally I'll come up with something interesting enough to share here.

If you're here with similar interests, please feel free to browse older posts and perhaps leave a comment or two.