mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-13 22:58:34 +00:00
151 lines
3.1 KiB
Plaintext
151 lines
3.1 KiB
Plaintext
---
|
|
title: Audio effects
|
|
layout: ../../layouts/MainLayout.astro
|
|
---
|
|
|
|
import { MiniRepl } from '../../docs/MiniRepl';
|
|
import { JsDoc } from '../../docs/JsDoc';
|
|
|
|
# Audio Effects
|
|
|
|
Whether you're using a synth or a sample, you can apply any of the following built-in audio effects.
|
|
As you might suspect, the effects can be chained together, and they accept a pattern string as their argument.
|
|
|
|
# Filters
|
|
|
|
Filters are an essential building block of [subtractive synthesis](https://en.wikipedia.org/wiki/Subtractive_synthesis).
|
|
Strudel comes with 3 types of filters:
|
|
|
|
- low-pass filter: low frequencies may _pass_, high frequencies are cut off
|
|
- high-pass filter: high frequencies may _pass_, low frequencies are cut off
|
|
- band-pass filters: only a frequency band may _pass_, low and high frequencies around are cut off
|
|
|
|
Each filter has 2 parameters:
|
|
|
|
- cutoff: the frequency at which the filter starts to work. e.g. a low-pass filter with a cutoff of 1000Hz allows frequencies below 1000Hz to pass.
|
|
- q-value: Controls the resonance of the filter. Higher values sound more aggressive. Also see [Q-Factor](https://en.wikipedia.org/wiki/Q_factor)
|
|
|
|
## lpf
|
|
|
|
<JsDoc client:idle name="lpf" h={0} />
|
|
|
|
## lpq
|
|
|
|
<JsDoc client:idle name="lpq" h={0} />
|
|
|
|
## hpf
|
|
|
|
<JsDoc client:idle name="hpf" h={0} />
|
|
|
|
## hpq
|
|
|
|
<JsDoc client:idle name="hpq" h={0} />
|
|
|
|
## bpf
|
|
|
|
<JsDoc client:idle name="bpf" h={0} />
|
|
|
|
## bpq
|
|
|
|
<JsDoc client:idle name="bpq" h={0} />
|
|
|
|
## vowel
|
|
|
|
<JsDoc client:idle name="vowel" h={0} />
|
|
|
|
# Amplitude Envelope
|
|
|
|
The amplitude [envelope](<https://en.wikipedia.org/wiki/Envelope_(music)>) controls the dynamic contour of a sound.
|
|
Strudel uses ADSR envelopes, which are probably the most common way to describe an envelope:
|
|
|
|

|
|
|
|
[image link](https://commons.wikimedia.org/wiki/File:ADSR_parameter.svg)
|
|
|
|
## attack
|
|
|
|
<JsDoc client:idle name="attack" h={0} />
|
|
|
|
## decay
|
|
|
|
<JsDoc client:idle name="decay" h={0} />
|
|
|
|
## sustain
|
|
|
|
<JsDoc client:idle name="sustain" h={0} />
|
|
|
|
## release
|
|
|
|
<JsDoc client:idle name="release" h={0} />
|
|
|
|
# Dynamics
|
|
|
|
## gain
|
|
|
|
<JsDoc client:idle name="gain" h={0} />
|
|
|
|
## velocity
|
|
|
|
<JsDoc client:idle name="velocity" h={0} />
|
|
|
|
# Panning
|
|
|
|
## jux
|
|
|
|
<JsDoc client:idle name="jux" h={0} />
|
|
|
|
## juxBy
|
|
|
|
<JsDoc client:idle name="juxBy" h={0} />
|
|
|
|
## pan
|
|
|
|
<JsDoc client:idle name="pan" h={0} />
|
|
|
|
# Waveshaping
|
|
|
|
## coarse
|
|
|
|
<JsDoc client:idle name="coarse" h={0} />
|
|
|
|
## crush
|
|
|
|
<JsDoc client:idle name="crush" h={0} />
|
|
|
|
## shape
|
|
|
|
<JsDoc client:idle name="shape" h={0} />
|
|
|
|
# Global Effects
|
|
|
|
## Local vs Global Effects
|
|
|
|
While the above listed "local" effects will always create a separate effects chain for each event,
|
|
global effects use the same chain for all events of the same orbit:
|
|
|
|
## orbit
|
|
|
|
<JsDoc client:idle name="orbit" h={0} />
|
|
|
|
## delay
|
|
|
|
<JsDoc client:idle name="delay" h={0} />
|
|
|
|
## delaytime
|
|
|
|
<JsDoc client:idle name="delaytime" h={0} />
|
|
|
|
## delayfeedback
|
|
|
|
<JsDoc client:idle name="delayfeedback" h={0} />
|
|
|
|
## room
|
|
|
|
<JsDoc client:idle name="room" h={0} />
|
|
|
|
## roomsize
|
|
|
|
<JsDoc client:idle name="roomsize" h={0} />
|
|
|
|
Next, we'll look at strudel's support for [Csound](/learn/csound).
|