Sanic Boom

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

StyleDescription
closeNotes stacked tightly (default)
spreadAlternating low/high for width
drop2Second voice dropped octave (jazz)
drop3Third voice dropped octave
quartalStacked perfect 4ths (modern)
pianoBass separated, chord in middle

Syntax

chord |> voicing("style")
chord |> voicing("style", inversion: 1, smooth: true)
chord |> voicing("style", low: "C2", high: "C6")

Parameters

ParameterTypeDefaultDescription
stylestring"close"Voicing algorithm
inversionint0Chord inversion (0, 1, 2, ...)
smoothboolfalseEnable voice leading optimization
lownote"C2"Lowest allowed note
highnote"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 changes

Epic Pads

let pad = [Cmaj7 Fmaj7 Am7 G7]
    |> voicing("spread")
    |> sine
    |> convolve("hall", mix: 0.6)

play pad

Modern Ambient

let ambient = [Dm7 Em7 Am7]
    |> voicing("quartal")
    |> triangle
    |> delay(1/4, 0.5)
    |> convolve("space", mix: 0.7)

play ambient

On this page