Packages
Examples
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.
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.
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.