Skip to main content
Glama

chord-synth

Generate chord progression WAV files. Zero dependencies. Node.js only.

28 named presets, 22 arpeggio patterns, 7 instruments, slash chords (Am/E), transposition, pad/bass/drum tracks, reverb.

Quick Start

# Install globally
npm install -g chord-synth

# Generate a WAV file
chord-synth --preset "C G Am F" --bpm 120 --output pop.wav

# Custom jazz with slash chords
chord-synth --preset "Dm9 | G7/B | Cmaj7 | Am7/E" --instrument piano --drums bossanova --output jazz.wav

# Named preset transposed to key of G
chord-synth --preset "I-V-vi-IV (Pop)" --transpose 7 --output pop_in_G.wav

# Batch render from JSON file
chord-synth --batch render_jobs.json --output ./wavs/

Related MCP server: THIRI Chord Intelligence — Music Theory MCP Server

Use as MCP Server

Exposes generate_wav and list_options tools to any MCP-compatible agent (Claude Desktop, Claude Code, Cursor, Windsurf, etc).

Claude Desktop — add to claude_desktop_config.json:

{
  "mcpServers": {
    "chord-synth": {
      "command": "npx",
      "args": ["-y", "chord-synth", "mcp"]
    }
  }
}

Claude Code:


# Add to Claude Code (point to the installed mcp-server.js)
claude mcp add chord-synth -- npx chord-synth --mcp

Then ask Claude: "Generate a sad violin arpeggio over Am F C G at 80 BPM" — it will call generate_wav directly.

ChatGPT Codex:

Prompt:
I have a mcp tool to generate chord wav files at https://github.com/Misfits-Rebels-Outcasts/chord-synth,
use it generate a chord progression for violin "Am Dm G C" at 128 bpm 

Use as Node.js Module

const { renderJob, PRESETS, SCHEMA } = require('chord-synth');
const fs = require('fs');

// Render a WAV buffer
const wav = renderJob({
  preset: "C G Am/E F",
  bpm: 120,
  instrument: "piano",
  pattern: 1,        // Up
  enablePad: true,
  drumPattern: "poprock"
});

fs.writeFileSync('output.wav', wav);

Agent Interface

Agents should call chord-synth --schema to get the full JSON tool specification:

chord-synth --schema

Returns:

{
  "tool": "chord-synth",
  "description": "Generate chord progression WAV files...",
  "input_schema": {
    "type": "object",
    "required": ["preset"],
    "properties": {
      "preset": { "type": "string", "description": "Named preset or custom chords..." },
      "bpm": { "type": "integer", "default": 120 },
      "instrument": { "type": "string", "enum": ["piano","guitar","violin",...] },
      ...
    }
  },
  "examples": [...]
}

List all available options:

chord-synth --list

Parameters

Parameter

Type

Default

Description

preset

string

required

Named preset ("I-V-vi-IV (Pop)") or custom chords ("C G Am/E F")

bpm

int

120

Tempo

transpose

int

0

Semitones (-11 to +11)

pattern

int

1

Arp pattern index (see below)

rate

string

"1/8"

Note rate: 1/1 1/2 1/4 1/8 1/16 1/32 (add T for triplet)

instrument

string

"piano"

piano guitar violin flute clarinet cello bass

octaveRange

int

1

1-4 octave span

baseOctave

int

3

Starting MIDI octave

velocity

int

90

MIDI velocity 1-127

swing

float

0.5

0.5=straight, 0.66=medium, 0.75=heavy

loops

int

2

Progression repetitions

enablePad

bool

true

Sustained pad chord track

padOctave

int

4

Pad voicing octave

padVolume

float

0.12

Pad volume (0.0-0.3)

enableBass

bool

true

Auto bass (slash chords set bass note)

enableDrums

bool

true

Drum track

drumPattern

string

"poprock"

See drum patterns below

reverbMix

float

0.18

Reverb amount (0.0-0.5)

Named Presets

Category

Presets

Pop/Rock

I-V-vi-IV (Pop), I-vi-IV-V (50s), vi-IV-I-V (Sad), I-IV-V-IV (Rock), I-V-vi-iii-IV (Canon)

Jazz

ii-V-I (Jazz), I-vi-ii-V (Jazz Turnaround), iii-vi-ii-V (Coltrane), Autumn Leaves, So What, Steely Dan

Neo-Soul/R&B

Neo-Soul I, Neo-Soul II, R&B Smooth

Blues

12-Bar Blues, Minor Blues

Latin

Bossa Nova, Girl from Ipanema, Andalusian Cadence, Royal Road (JP)

Modal/Ambient

Dorian Vamp, Lydian Float, Ambient Pads

EDM

EDM Anthem, Trance, House

Classic

Pachelbel Canon, Gospel

Or use any custom chord string: "Fmaj7 Em7 Dm9 Cmaj7", "Am | Dm/F | E7 | Am", etc.

Arp Patterns

Index

Name

Index

Name

0

Chord (Block)

11

Pinky-Thumb

1

Up

12

Thumb-Pinky

2

Down

13

1-3-5-3

3

Up-Down

14

1-5-3-5

4

Down-Up

15

1-5-8-5

5

Up-Down (No Repeat)

16

1-3-5-8-5-3

6

Down-Up (No Repeat)

17

Alberti Bass

7

Random

18

Stride

8

Random Walk

19

Broken 3rds

9

Outside-In

20

Pedal Tone

10

Inside-Out

21

Alternating Bass

Drum Patterns

8beat 16beat poprock acousticpop bossanova swing funk rnb waltz arpeggio none

Chord Notation

Roots: C C# Db D D# Eb E F F# Gb G G# Ab A A# Bb B

Qualities: (major) m 7 maj7 m7 dim aug sus2 sus4 9 m9 maj9 11 m11 13 6 m6 dim7 m7b5 add9 5 power

Slash chords: Am/E (Am chord, E bass note), C/G, Dm7/A

Separator: spaces or | both work. C G Am F = C | G | Am | F

Output

WAV PCM 16-bit mono 44100 Hz. Compatible with all DAWs, audio players, and audio processing tools.

License

MIT

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Misfits-Rebels-Outcasts/chord-synth'

If you have feedback or need assistance with the MCP directory API, please join our Discord server