Explore Synth Building Blocks: Control Signals

Articles

Learning Synths

A chat with Jay Curtis / Lysdexic

Packages

RNBO Guitar Pedals

Synth Building Blocks

Synth Building Blocks: Intro

Synth Building Blocks: Generators

Synth Building Blocks: Buffers

Synth Building Blocks: Filters

Synth Building Blocks: Envelopes

Synth Building Blocks: Control Signals

Examples

Audio Effects
Event Sequencing
Random and Generative
Synthesis and Synthesizers
Sampling and Sample Playback
Utilities

Synth Building Blocks: Control Signals

Synthesis and sound design depend heavily on the use of control signals to modulate input parameters. Synth Building Blocks has four different control signal abstractions that can be patched into any of SBB's other abstractions. This include an LFO, a random generator, a step sequencer, and an arpeggiator.

Low Frequency Oscillator

We've seen SBB's LFO sbb.mod.lfo in a few basic examples from earlier. Beyond generating a simple low frequency waveform, sbb.mod.lfo has a number of other parameters that allow for even more variety. The jitter and smooth parameter are two examples.

Screen Shot 2022-09-18 at 3.30.05 PM.png

Setting the jitter percentage (0 - 100) causes random perturbations in the waveform's contour. The smooth factor can then be used to smoothen out these perturbations via interpolation. smooth takes values in milliseconds.

The SBB LFO can generate a sine wave, a ramp wave (saw), a square wave, a pulse wave with PWM options, and a triangle wave.

Random Generator

SBB also comes with a random generator called sbb.mod.rand. This abstraction is a randomness source that can generate both white noise and pink noise. It has two outputs, one which outputs continuous values, and another which can sample-and-hold values based on an input impulse generated from click~.

Sequencer and Arpeggiator

Finally, the Synth Building Blocks sequencer (sbb.mod.seq) and arpeggiator (sbb.mod.arp) are available as high level sequence generators that can be used to easily create instruments such as drum machines and MIDI step sequencers.

Screen Shot 2022-09-18 at 3.52.06 PM.png

The sbb.mod.seq abstraction only requires two parameters. The first is a message containing the sequence of values to be played—this could be frequency values, MIDI note values, or any other numerical values. The second is a time interval in milliseconds to step between these values.

If we're exclusively sequencing MIDI data and want to create an arpeggiating effect, the sbb.mod.arp abstraction can be used instead. Given a MIDI note in, sbb.mod.arp will arpeggiate over this note at a specified time interval in milliseconds.