3. ADSR - Make Envelopes
Goal¶
In this tutorial, we will be learning how to build and trigger an ADSR envelope. The tutorial is a continuation of the "Intro To Bell - Make A Synth" tutorial series.
Example Patcher
Prerequisites¶
This tutorial is designed for users with a cursory understanding of Bell. If you are unfamiliar with Bell, we recommend heading to the beginning of our Intro To Bell - Make A Synth tutorial series.
For this tutorial, you will need:
- Computer with an internet connection
- Web browser
Tutorial¶
Video Tutorial
Let's begin!
To get started, open up bell.audio in a web browser.
Step 1: Open subtractive_synth.bell
¶
Log into your Bell account. Then click File, then click Open project....
For this tutorial, we will be using the subtractive_synth.bell
project from the Shape Sound - Filter & VCA Bell tutorial. If you do not have this file, either follow the Bell tutorial, or download the file here.
Step 2: Remove vca~
Knob And Add adsr~
¶
Select and delete the knob
connected to vca~
. Then, create an adsr~
object and connect it to the vca~
's gain inlet.
adsr~
is a four-stage envelope, broken up into attack, decay, sustain, and release stages. adsr~
requires a boolean signal at the trigger input, and outputs a signal range between 0.0 and 1.0.
Step 3: Add toggle
¶
Create a toggle
object, and connect its outlet to the adsr~
's trigger inlet. Lock the patcher, and click the toggle on and off to activate and deactive the envelope!
Step 4: Add metro
¶
Create a metro
object and give the argument a value of 500. Patch the metro~ 500
outlet to the toggle
inlet. Open the metro~ 500
inspector and set it to active.
metro
is a time-based metronome, which outputs a bang at its determined rate. In this example, we are sending a bang to the toggle every 500 milliseconds. Subsequently, our adsr~
now triggers every second!
Step 5: Add Knobs To adsr~
¶
Create 4 knob
objects. Then, create 3 scale 0 1 0 1000
objects. For the attack, decay, and release inlets, patch a knob
object to a scale
object, then patch the scale
outlet to the appropriate argument inlet. The fourth knob
can be patched directly into the sustain inlet.
Our adsr~
inlets give us control over each stage of the envelope. The attack, decay, and release inlets accept an argument in milliseconds, while the sustain inlet accepts a range between 0 and 1.
In this example, we use scale
to give our knobs a 1 second range for each stage control.
Bloom: Gate Length¶
Toggle length is an important control when taking full advantage of adsr~
, but how can we set up an adjustable control for that in Bell?
Or, more specifically, how can we send a bang to the toggle to turn it on, and how can we send a second bang to turn it off? Then, how can we adjust the time between the first and second bang?
Solve the problem on your own, or take a look at our example below!
Gate Length Example
Recommended Reading¶
Recommended Watching¶
Next Steps¶
We've learned how to make sound, how to shape it, and how to automate that shaping with an envelope. However, there's one big piece missing from our subtractive synth: sequencing!
Head to the next tutorial where we will learn how to control our synth's pitch, and how to generate a quantized melody!