chord-synth

chord-synth

Generates chord progression WAV files with 28 presets, 22 arpeggio patterns, 7 instruments, and drum tracks via MCP tools like generate_wav and list_options.

Category
Visit Server

README

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/

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured