Chord Voicing
Smart chord voicing for professional arrangements
Overview
Transform chords with professional voicing techniques. Create jazz voicings, wide spreads, and smooth voice-led progressions.
Voicing Styles
| Style | Description |
|---|---|
| close | Notes stacked tightly (default) |
| spread | Alternating low/high for width |
| drop2 | Second voice dropped octave (jazz) |
| drop3 | Third voice dropped octave |
| quartal | Stacked perfect 4ths (modern) |
| piano | Bass separated, chord in middle |
Syntax
chord |> voicing("style")
chord |> voicing("style", inversion: 1, smooth: true)
chord |> voicing("style", low: "C2", high: "C6")Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| style | string | "close" | Voicing algorithm |
| inversion | int | 0 | Chord inversion (0, 1, 2, ...) |
| smooth | bool | false | Enable voice leading optimization |
| low | note | "C2" | Lowest allowed note |
| high | note | "C6" | Highest allowed note |
Examples
Basic Voicing
// Close voicing (default)
Cmaj7 |> voicing("close") |> saw
// Wide spread for pads
Cmaj7 |> voicing("spread") |> sine |> reverb(0.6)
// Jazz drop2 voicing
Dm7 |> voicing("drop2") |> saw |> lowpass(800)Voice Leading
Use smooth: true for minimal movement between chords:
// Smooth jazz progression
[Cmaj7 Am7 Dm7 G7]
|> voicing("drop2", smooth: true)
|> saw
|> lowpass(1000)
|> reverb(0.4)Style Comparison
// Same chord, different voicings
let chord = Cmaj7
// Close: C E G B (stacked)
chord |> voicing("close")
// Spread: C G E+oct B+oct (wide)
chord |> voicing("spread")
// Drop2: C B E G (jazz standard)
chord |> voicing("drop2")
// Quartal: C F Bb Eb (4ths)
chord |> voicing("quartal")
// Piano: C (bass) + E G B + C (top)
chord |> voicing("piano")Inversions
// Root position
Cmaj7 |> voicing("close", inversion: 0)
// First inversion (E in bass)
Cmaj7 |> voicing("close", inversion: 1)
// Second inversion (G in bass)
Cmaj7 |> voicing("close", inversion: 2)Range Constraints
// Keep voicing in specific range
Cmaj7 |> voicing("spread", low: "E2", high: "G5")Use Cases
Jazz Comping
tempo 120
let changes = [Dm7 G7 Cmaj7 Am7]
|> voicing("drop2", smooth: true)
|> saw
|> lowpass(800)
|> reverb(0.3)
play changesEpic Pads
let pad = [Cmaj7 Fmaj7 Am7 G7]
|> voicing("spread")
|> sine
|> convolve("hall", mix: 0.6)
play padModern Ambient
let ambient = [Dm7 Em7 Am7]
|> voicing("quartal")
|> triangle
|> delay(1/4, 0.5)
|> convolve("space", mix: 0.7)
play ambient