52 lines
1.4 KiB
Markdown
52 lines
1.4 KiB
Markdown
# The Prelude
|
|
|
|
When you define a word in a step, it becomes available to all steps. But when you close and reopen the project, the dictionary is empty again. Words defined in steps only exist after those steps run.
|
|
|
|
The **prelude** solves this. It's a project-wide script that runs automatically when playback starts and when you load a project.
|
|
|
|
## Accessing the Prelude
|
|
|
|
Press `d` to open the prelude editor. Press `Esc` to save and evaluate. Press `D` (Shift+d) to re-evaluate the prelude without opening the editor.
|
|
|
|
## What It's For
|
|
|
|
Define words that should be available everywhere, always:
|
|
|
|
```forth
|
|
: kick "kick" s 0.9 gain . ;
|
|
: hat "hat" s 0.4 gain . ;
|
|
: bass "saw" s 0.7 gain 200 lpf . ;
|
|
```
|
|
|
|
Now every step in your project can use `kick`, `hat`, and `bass` from the first beat.
|
|
|
|
## When It Runs
|
|
|
|
The prelude evaluates:
|
|
|
|
1. When you press Space to start playback (if stopped)
|
|
2. When you load a project
|
|
3. When you press `D` manually
|
|
|
|
It does not run on every step, only once at these moments. This makes it ideal for setup code: word definitions, initial variable values, seed resets.
|
|
|
|
## Practical Example
|
|
|
|
A prelude for a techno project:
|
|
|
|
```forth
|
|
: k "kick" s 1.2 attack . ;
|
|
: sn "snare" s 0.6 gain 0.02 attack . ;
|
|
: hh "hat" s 0.3 gain 8000 hpf . ;
|
|
: sub "sine" s 0.8 gain 150 lpf . ;
|
|
0 seed
|
|
```
|
|
|
|
Step scripts become trivial:
|
|
|
|
```forth
|
|
c1 note k sub
|
|
```
|
|
|
|
The sound design lives in the prelude. Steps focus on rhythm and melody.
|