105 lines
2.5 KiB
Markdown
105 lines
2.5 KiB
Markdown
# Modulation
|
||
|
||
Modulation effects vary parameters over time using LFOs or envelopes.
|
||
|
||
## Vibrato
|
||
|
||
Vibrato modulates pitch with an LFO.
|
||
|
||
```forth
|
||
saw 5 vib 0.5 vibmod . ( 5 Hz, 0.5 semitone depth )
|
||
```
|
||
|
||
| Parameter | Range | Description |
|
||
|-----------|-------|-------------|
|
||
| `vib` | Hz | LFO rate |
|
||
| `vibmod` | semitones | Modulation depth |
|
||
| `vibshape` | shape | LFO waveform (sine, tri, saw, square) |
|
||
|
||
## FM Synthesis
|
||
|
||
FM modulates the carrier frequency with a modulator oscillator.
|
||
|
||
```forth
|
||
sine 440 freq 2 fm 2 fmh . ( modulator at 2× carrier frequency )
|
||
```
|
||
|
||
| Parameter | Range | Description |
|
||
|-----------|-------|-------------|
|
||
| `fm` | 0+ | Modulation index |
|
||
| `fmh` | ratio | Harmonic ratio (modulator / carrier) |
|
||
| `fmshape` | shape | Modulator waveform |
|
||
|
||
Use `env` to apply a DAHDSR envelope to FM depth: `0 5 0.01 0.1 0.3 0.5 env fm`.
|
||
|
||
## Amplitude Modulation
|
||
|
||
AM multiplies the signal by an LFO.
|
||
|
||
```forth
|
||
pad 4 am 0.5 amdepth . ( 4 Hz tremolo )
|
||
```
|
||
|
||
| Parameter | Range | Description |
|
||
|-----------|-------|-------------|
|
||
| `am` | Hz | LFO rate |
|
||
| `amdepth` | 0-1 | Modulation depth |
|
||
| `amshape` | shape | LFO waveform |
|
||
|
||
## Ring Modulation
|
||
|
||
Ring modulation multiplies two signals, producing sum and difference frequencies.
|
||
|
||
```forth
|
||
saw 150 rm 0.8 rmdepth . ( ring mod at 150 Hz )
|
||
```
|
||
|
||
| Parameter | Range | Description |
|
||
|-----------|-------|-------------|
|
||
| `rm` | Hz | Modulator frequency |
|
||
| `rmdepth` | 0-1 | Modulation depth |
|
||
| `rmshape` | shape | Modulator waveform |
|
||
|
||
## Phaser
|
||
|
||
Phaser sweeps notches through the frequency spectrum using allpass filters.
|
||
|
||
```forth
|
||
pad 0.5 phaser 0.6 phaserdepth .
|
||
```
|
||
|
||
| Parameter | Range | Description |
|
||
|-----------|-------|-------------|
|
||
| `phaser` | Hz | Sweep rate |
|
||
| `phaserdepth` | 0-1 | Sweep depth |
|
||
| `phasersweep` | cents | Sweep range |
|
||
| `phasercenter` | Hz | Center frequency |
|
||
|
||
## Flanger
|
||
|
||
Flanger mixes the signal with a short modulated delay (0.5-10ms).
|
||
|
||
```forth
|
||
pad 0.3 flanger 0.7 flangerdepth 0.5 flangerfeedback .
|
||
```
|
||
|
||
| Parameter | Range | Description |
|
||
|-----------|-------|-------------|
|
||
| `flanger` | Hz | Modulation rate |
|
||
| `flangerdepth` | 0-1 | Modulation depth |
|
||
| `flangerfeedback` | 0-0.95 | Feedback amount |
|
||
|
||
## Chorus
|
||
|
||
Chorus uses multiple modulated delay lines with 120° phase offset for stereo width.
|
||
|
||
```forth
|
||
pad 1 chorus 0.4 chorusdepth 20 chorusdelay .
|
||
```
|
||
|
||
| Parameter | Range | Description |
|
||
|-----------|-------|-------------|
|
||
| `chorus` | Hz | Modulation rate |
|
||
| `chorusdepth` | 0-1 | Modulation depth |
|
||
| `chorusdelay` | ms | Base delay time |
|