/ Examples / Effects / Dyno


Projects .. AudioIO .. Control
NoteStreams .. Instruments
Filters .. Effects .. LiCK Effects
Plot .. Utility .. Pure ChucK


Wherein we present ChucK's Dyno ugen, a dynamics processor that includes Limiter, Compressor, Expander, Noise Gate, and Ducker.

Right-click to copy examples to your workspace

Dyno

Dyno is a built-in ugen of ChucK. It is documented here and includes three ChucK-only examples:

Dyno operates by inferring an amplitude envelope from an input signal.

Here we show how to use Dyno to duck a signal based on a sidechain signal. This is a similar goal of the CCSampler example and it may be worthwhile understanding the differences and similarities of both. Keep in mind that Dyno functionality isn't limited to ducking. In fact, the Compression and Limiting features may be Dyno's bread-and-butter.

Still, ducking is fun and requires additional setup. In the graph below, we see a typical arpeggiator notestream fed through a Square instrument and then into Dyno. This is the main signal chain which will be ducked by the sidechain signal delivered by CCSampler. Upstream from CCSampler is a SoundBuf Ctrl node armed with a vocal clip, obama_clip0.wav and running continuously (due to its loop parameter).

While the Preset parameter below allows you to select an effect from among Limit, Compress, Expand, Gate, and Duck, it's important to realize that all of these named effects are just the result of applying the same algorithm to produce an amplitude envelope. We achieve these effects with different parameter values and thus the effect names are analogous to named colors on the colorwheel. It's a good idea to develop an intuitive sense for what the parameters control as this will equip you to handle the quirks associated with a particular input signal and to efficiently achieve the effect you desire.

In this example, the DynoOut plot can help to visualize what's going on. Here we clearly see the shape of Dyno's envelope.

Preset updates/resets the parameters below according to the requested effect. Note that this stomps on your existing parameters so use with care. As you explore the parameter space it can be helpful to reset to a known state.

Threshold the point above which to stop using SlopeBelow and start using SlopeAbove to determine output gain vs input gain.

SlopeAbove the slope of the output gain vs the input envelope's level when the envelope is above threshold.

SlopeBelow the slope of the output gain vs the input envelope's level when the envelope is below thresh.

AttackTime the duration for the envelope to move linearly from current value to the absolute value of the signal's amplitude.

ReleaseTime the duration for the envelope to decay down to around 1/10 of its current amplitude, if not brought back up by the signal.

UseSideInput set to true to cue the amplitude envelope off of sidechain input instead of the input signal. Note that this means you will need to manually send SideInput (via a Controller). If false, the amplitude envelope represents the amplitude of the input signal whose dynamics are being processed.

home .. topics .. interface .. reference .. examples .. tipjar