6.7 KiB
Music Theory for Strudel Production
Practical music theory for generating professional-sounding Strudel code.
1. Notes & Octaves
Note Names (Strudel format)
C C#/Db D D#/Eb E F F#/Gb G G#/Ab A A#/Bb B
Octave range: 0-8. Middle C = c4 (MIDI 60). Sub bass = c1-c2. Melody sweet spot = c4-c6.
MIDI Note Numbers
C1=24, C2=36, C3=48, C4=60, C5=72, C6=84
2. Scales
When to Use Which Scale
| Scale | Mood/Feel | Best for |
|---|---|---|
| minor | Sad, dark, introspective | R&B, trap, lo-fi, ambient |
| major | Happy, bright, uplifting | Pop, dance, house |
| dorian | Minor but warm/jazzy | Neo-soul, funk, lo-fi hip-hop |
| mixolydian | Major but bluesy | Funk, rock, blues |
| minor:pentatonic | Universal minor | Any genre, safe choice |
| major:pentatonic | Universal major | Pop, EDM, any happy genre |
| phrygian | Dark, Spanish, exotic | Metal, flamenco, dark electronic |
| lydian | Dreamy, ethereal, floating | Ambient, film score, dream pop |
| blues | Gritty, raw | Blues, blues-rock, jazz |
| harmonicMinor | Dramatic, Middle Eastern | Dramatic builds, ethnic music |
| chromatic | Dissonant, all notes | Sound effects, transitions |
Scale Formulas (semitones from root)
| Scale | Steps |
|---|---|
| major | 0 2 4 5 7 9 11 |
| minor | 0 2 3 5 7 8 10 |
| dorian | 0 2 3 5 7 9 10 |
| mixolydian | 0 2 4 5 7 9 10 |
| phrygian | 0 1 3 5 7 8 10 |
| lydian | 0 2 4 6 7 9 11 |
| minor:pentatonic | 0 3 5 7 10 |
| major:pentatonic | 0 2 4 7 9 |
| blues | 0 3 5 6 7 10 |
3. Chords
Building Chords in Strudel
Chords are multiple notes played at once using commas or brackets:
// Method 1: explicit notes
note("[c3,eb3,g3]") // Cm chord
// Method 2: scale degrees
n("[0,2,4]").scale("C:minor") // same Cm chord
// Method 3: voicing function
voicing("Cm7") // automatic voicing
Essential Chord Types
| Name | Formula (semitones) | Strudel notes (from C) | Feel |
|---|---|---|---|
| Major | 0,4,7 | [c,e,g] |
Happy, resolved |
| Minor | 0,3,7 | [c,eb,g] |
Sad, introspective |
| Major 7 | 0,4,7,11 | [c,e,g,b] |
Dreamy, lush |
| Minor 7 | 0,3,7,10 | [c,eb,g,bb] |
Warm, jazzy |
| Dominant 7 | 0,4,7,10 | [c,e,g,bb] |
Tension, bluesy |
| Diminished | 0,3,6 | [c,eb,gb] |
Tense, unstable |
| Suspended 2 | 0,2,7 | [c,d,g] |
Open, ambiguous |
| Suspended 4 | 0,5,7 | [c,f,g] |
Yearning |
| Add9 | 0,4,7,14 | [c,e,g,d4] |
Modern, bright |
| Minor 9 | 0,3,7,10,14 | [c,eb,g,bb,d4] |
Rich R&B |
4. Chord Progressions
By Genre
Pop / Dance / Happy
| Name | Numerals | In C Major | Strudel |
|---|---|---|---|
| Classic Pop | I-V-vi-IV | C-G-Am-F | note("<[c3,e3,g3] [g2,b2,d3] [a2,c3,e3] [f2,a2,c3]>") |
| Four Chord | I-IV-vi-V | C-F-Am-G | note("<[c3,e3,g3] [f2,a2,c3] [a2,c3,e3] [g2,b2,d3]>") |
Sad / Dark / R&B / Trap
| Name | Numerals | In C Minor | Strudel |
|---|---|---|---|
| Sad Minor | i-VI-III-VII | Cm-Ab-Eb-Bb | note("<[c3,eb3,g3] [ab2,c3,eb3] [eb3,g3,bb3] [bb2,d3,f3]>") |
| Dark Trap | i-iv-VI-V | Cm-Fm-Ab-G | note("<[c3,eb3,g3] [f2,ab2,c3] [ab2,c3,eb3] [g2,b2,d3]>") |
| Neo-Soul | i7-iv7-VII7-III7 | Cm7-Fm7-Bb7-Eb7 | note("<[c3,eb3,g3,bb3] [f2,ab2,c3,eb3] [bb2,d3,f3,ab3] [eb3,g3,bb3,db4]>") |
Lo-fi / Chill
| Name | Numerals | In D Dorian | Strudel |
|---|---|---|---|
| Dorian Chill | i7-IV7 | Dm7-G7 | note("<[d3,f3,a3,c4] [g2,b2,d3,f3]>") |
| Jazz ii-V-I | ii7-V7-Imaj7 | Dm7-G7-Cmaj7 | note("<[d3,f3,a3,c4] [g2,b2,d3,f3] [c3,e3,g3,b3]>") |
House / Techno
| Name | Numerals | In A Minor | Strudel |
|---|---|---|---|
| Minimal | i-VII | Am-G | note("<[a2,c3,e3] [g2,b2,d3]>") |
| Deep House | i7-iv7 | Am7-Dm7 | note("<[a2,c3,e3,g3] [d3,f3,a3,c4]>") |
Dramatic / Cinematic
| Name | In C Minor | Strudel |
|---|---|---|
| Epic | Cm-Ab-Bb-Cm | note("<[c3,eb3,g3] [ab2,c3,eb3] [bb2,d3,f3] [c3,eb3,g3]>") |
5. Rhythm Theory
Time Signatures & Subdivision
Standard 4/4: 1 cycle = 1 bar = 4 beats.
- Whole notes:
"c"— 1 per cycle - Half notes:
"c c"— 2 per cycle - Quarter notes:
"c c c c"— 4 per cycle - Eighth notes:
"c*8"or 8 items — 8 per cycle - Sixteenth notes:
"c*16"— 16 per cycle - Triplets:
"c*3"or"c*6"or"c*12"
Swing / Shuffle
Shuffle feel: elongate first of each pair with @:
note("[c@2 e] [g@2 b]") // swing feel
Common Drum Patterns (16-step grid notation)
Each [ ] = one beat (4 sixteenths), x=hit, -=rest:
Four-on-the-floor (house/techno)
Kick: [x---] [x---] [x---] [x---]
Snare: [----] [x---] [----] [x---]
HH: [--x-] [--x-] [--x-] [--x-]
→ s("bd*4, [~ sd]*2, [~ hh]*4")
Boom-bap (hip-hop)
Kick: [x---] [----] [--x-] [----]
Snare: [----] [x---] [----] [x---]
HH: [x-x-] [x-x-] [x-x-] [x-x-]
→ s("bd ~ ~ ~ ~ ~ bd ~, ~ ~ ~ ~ sd ~ ~ ~, hh*8").slow(2) adjusted to taste
Trap
Kick: [x------x] placed irregularly, sparse
Snare: on beat 3 (every 2 beats)
HH: very fast rolls *16 to *32 with velocity variation
Breakbeat / DnB
Kick: [x---] [----] [--x-] [----]
Snare: [----] [x---] [----] [x---]
→ Syncopated, off-grid kicks, fast tempo 170+
6. Arrangement Principles
Song Sections
Use <... > alternation and /N slowing for section changes:
// 4-bar chord progression cycling
note("<[c3,e3,g3] [a2,c3,e3] [f2,a2,c3] [g2,b2,d3]>")
// 8-bar pattern: 4 bars of A then 4 bars of B
note("<[pattern A]*4 [pattern B]*4>/8")
Building Tension
- Gradually open filter:
.lpf(sine.range(300, 3000).slow(16)) - Add density:
.every(4, x => x.ply(2)) - Raise pitch:
.add("<0 0 0 12>") - Increase delay feedback over time
Drop Technique
- Build section: filtered, rising, less drums
- Drop: full drums, open filter, bass hits hard
7. Frequency Ranges for Mixing
| Range | Hz | Role | Strudel tip |
|---|---|---|---|
| Sub bass | 20-80 | Felt not heard | .lpf(80) on sub, sine waveform |
| Bass | 80-300 | Bass body | .lpf(300) for warmth |
| Low-mid | 300-800 | Warmth/mud | Be careful, can muddy mix |
| Mid | 800-2000 | Presence | Melody/vocal territory |
| High-mid | 2000-6000 | Clarity/bite | Lead synths, snares |
| High | 6000-20000 | Air/sparkle | Hi-hats, cymbals |
Gain Staging Guidelines
| Element | Gain range | Notes |
|---|---|---|
| Kick | 1.0-1.2 | Loudest element |
| Snare/Clap | 0.6-0.8 | Prominent but below kick |
| Hi-hats | 0.15-0.35 | Subtle, dynamic |
| Bass | 0.4-0.6 | Strong but not overpowering |
| Pads/Chords | 0.1-0.25 | Background wash |
| Lead melody | 0.15-0.3 | Present but not harsh |
| FX/Textures | 0.05-0.15 | Barely audible atmosphere |