From 32fe73aba2949a4725f458844a558e275afd9591 Mon Sep 17 00:00:00 2001 From: Aria Date: Tue, 19 Aug 2025 11:10:34 -0500 Subject: [PATCH] Update effects documentation to include information on signal flow --- website/public/img/strudel-signal-flow.png | Bin 0 -> 37017 bytes website/src/pages/learn/effects.mdx | 118 +++++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 website/public/img/strudel-signal-flow.png diff --git a/website/public/img/strudel-signal-flow.png b/website/public/img/strudel-signal-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..c5099c917c0e569dd8b5f78bb4eb36e0f7c77baf GIT binary patch literal 37017 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 + +The signal chain in Strudel is as follows: + +- An sound-generating event is triggered by a pattern + - This has a start time and a duration, which is usually +controlled by the note length and ADSR parameters + - If we exceed the max polyphony, old sounds begin to die off + - Muted sounds (one whose `s` value is `-`, `~`, or `_`) are skipped +- A sound is produced (through, say, a sample or an oscillator) + - This is where detune-based effects (like `detune`, `penv`, etc. occur) +- The following will only occur if their respective parameters are turned on. Note that all of these are +_single use_ effects, meaning that multiple occurrences of them in a pattern will simply override the values +(i.e. you can't (currently) do `s("bd").lpf(100).distort(2).lpf(800)` to lowpass, distort, and then lowpass +again) + - Phase vocoder (`stretch`) + - Gain is applied (`gain`) + - This is where the main (volume) ADSR happens + - A lowpass filter (`lpf`) + - A highpass filter (`hpf`) + - A bandpass filter (`bandpass`) + - A vowel filter (`vowel`) + - Sample rate reduction (`coarse`) + - Bit crushing (`crush`) + - Waveshape distortion (`shape`) + - Normal distortion (`distort`) + - Tremolo (`tremolo`) + - Compressor (`compressor`) + - Panning (`pan`) + - Phaser (`phaser`) + - Postgain (`post`) +- The sound is then split into multiple destinations + - Main output (amount controlled by `dry` parameter) + - This is where the `duck` function will apply sidechain + - Analyzer (used for tooling like `scope` and `spectrum`) + - Per-orbit effects (see the section below) + - Delay send (amount controlled by `delay` parameter) + - Reverb send (amount controlled by `delay` parameter) + +## Orbits + +Orbits are the way in which outputs are handled in Strudel. If you are listening in +normal circumstances, you will just hear all of them mixed down to stereo at the output. However you can also +use routers like Blackhole 16 to retrieve and record all of the split channels in a DAW for later processing. +By default all orbits are mono, however with the "Multi Channel Orbits" setting (under settings at the right) +you can use them as 2 channel stereo outs. + +The default orbit is `1` and it is set with `orbit`. You may send a sound to multiple orbits via mininotation + + + +but please be careful as this will create three copies of the sound behind the scenes, meaning that if they are mixed +down to a single output, they will triple the volume. We've reduced the gain here to save your ears. + +⚠️ There is only one delay and reverb per orbit, so please be aware that if you attempt to change the parameters on two +patterns pointing to the same orbit, it can lead to unpredictable results. Compare, for example, this pretty pluck +with a large reverb: + + + +versus the same pluck with a muted kick drum coming in and overwriting the `roomsize` value (occasionally) + + +This is due to them sharing the same orbit (the default of `1`). It can be corrected simply by updating the orbits to be +distinct: + + + +## Continuous changes + +As all of the above is triggered by a _sound occurring_, it is often the case that parameters may not be +modified continuously in time. For example, + + + +Will not produce a continually LFO'd low-pass filter due to the `tri` only being sample every time the note hits +(in this case the default of once per cycle). You can fake it by introducing more sound-generating events, e.g.: + + + +Some parameters _do_ induce continuous variations in time, though: +* The ADSR curve (governed by `attack`, `sustain`, `decay`, `release`) +* The pitch envelope curve (governed by `penv` and its associated ADSR) +* The FM curve (`fmenv`) +* The filter envelopes (`lpenv`, `hpenv`, `bpenv`) +* Tremolo +* Phaser + # Filters Filters are an essential building block of [subtractive synthesis](https://en.wikipedia.org/wiki/Subtractive_synthesis).