AI-native music composition and score editing — powered by MCP
Compose, edit, and arrange music through conversation with AI.
Connect Claude Code, or any MCP-compatible AI and compose together.
Park Byoung Gu (박병구)
Director & SW Group Manager at AXT (Ajinextek) — a leading company in industrial motion controller markets — where he leads software R&D.
ArkComposer is a personal hobby project, built on weekends and spare moments, driven by a deep love of music.
Most notation software is a tool you use. ArkComposer is a tool you talk to.
- MCP Server built-in — Connect any LLM (Claude, etc.) via stdio or TCP and compose through natural conversation
- Built-in AI voice leading — 11 tunable parameters for harmonic lines, chord voicings, and accompaniment generation
- Full score editor — Not just a viewer. Notes, rests, expressions, key/time signatures, lyrics, and more
- Melody & Rhythm Variation — Inversion, retrograde, augmentation, pentatonic, passing tones, genre-based rhythm patterns
- Melodic Mood Overlay — Visual stability/tension analysis on every note (3 color styles)
- Multi-track score editor with treble and bass clef support
- Note input: whole, half, quarter, 8th, 16th, 32nd (+ dotted variants)
- Accidentals, dynamics (p, mf, f, cresc, dim), tempo marks (accel, rit)
- Key signature: major/minor, all 15 keys, 3 apply modes (pitch-fixed / position-fixed / transpose)
- Time signatures: 4/4, 3/4, 2/4, 6/8, 12/8
- Chord symbol display above measures
- Lyrics editor with per-measure editing
- Multi-document tabs with independent undo/redo per tab
- Add, delete, merge, split (by pitch range), reorder tracks
- Hide/show individual tracks
- Per-track instrument settings: SoundFont, Program (0–127), MIDI Channel, Bank MSB/LSB, Volume, Pan, Percussion
- Chord Suggestions — Analyzes melody, infers chords per measure
- Voice Leading — Generates melodic lines with 11 tunable parameters
(stepwise bias, tension use, cadence force, leap compensation, common tone hold, and more) - Accompaniment Generator — Arpeggio, Chord Beat, Drum Groove styles
- Melody Variation — Inversion, retrograde, augmentation, pentatonic, passing-tone rich
- Rhythm Variation — Genre-based and custom pattern reassignment
- Modes: Pop, Jazz, Emotional, Functional, Circle of 5ths
- Full MCP server built into the app (stdio and TCP modes)
- Compatible with Claude Code and any MCP-capable AI client
- Compose through natural language: "Add a jazz piano accompaniment in measures 5–8"
- Scope control: next measure / selected range / whole song
- MCP exposes self-documentation — AI clients can fetch tool usage guides automatically
- Playback with SoundFont synthesis (.sf2)
- Export audio: WAV (lossless) / MP3 (compressed, requires
lame.exeinTools/) - Export score: PDF / PNG / JPG
- Import / Export MIDI
- Native save format:
.arkscore/.json(human-readable)
- Built-in audio effect filters (Distortion, Echo, and more)
- Extensible plugin architecture for custom effects
Launch ArkComposer in MCP stdio mode:
ArkComposer.exe --mcp-modeAdd to your claude_desktop_config.json:
{
"mcpServers": {
"arkcomposer": {
"command": "C:/path/to/ArkComposer.exe",
"args": ["--mcp-mode"]
}
}
}Then talk to Claude Code:
"Create an 8-bar melody in C major, 4/4 time"
"Add an arpeggio accompaniment track"
"Apply jazz voice leading to measures 1–4"
"Continue the melody for 4 more measures"
- Launch ArkComposer normally
- In the left palette, click MCP Server
- Enter a TCP port (e.g.
7890) → Click Start - Connect your MCP-compatible client to
localhost:7890
Note on ChatGPT: ChatGPT does not natively support MCP.
To use ArkComposer with ChatGPT, you need to implement a separate OpenAPI server that bridges ChatGPT function calls to ArkComposer's MCP tools.
ArkComposer exposes a full score editing API over MCP:
| Category | Tools |
|---|---|
| Score reading | get_score, get_score_range |
| Note editing | add_note, add_notes_batch, change_note, delete_note |
| Track management | add_track, delete_track, set_track_props |
| Measure management | add_measure, delete_measure, delete_measures_range, clear_measure, set_measure_props |
| Document | new_song, set_title, undo |
Full AI usage guide:
docs/HowToUse_ArkComposerForLLM.md
Also available at runtime via MCP resource:arkcomposer://docs/how-to-use-llm
- Windows 10 / 11 (64-bit)
lame.exeinTools/folder — required for MP3 export (download)
ArkComposer ships with:
GeneralUser GS v1.471.sf2— GeneralUser GS License v2.0 (S. Christian Collins)GeneralUser_GS_SoftSynth_v1.44.sf2— GeneralUser GS License v2.0 (S. Christian Collins)
Additional high-quality SoundFonts (optional):
- MuseScore General — MIT License
- FluidR3 GM — MIT License
Place .sf2 files in the SoundFonts/ folder.
- macOS / Linux support (C++ / JUCE core is cross-platform ready)
- Cloud sync
- Plugin marketplace
- More AI model integrations
| Component | Author | License |
|---|---|---|
| JUCE Framework | Raw Material Software | JUCE Starter |
| GeneralUser GS v1.471.sf2 | S. Christian Collins | GeneralUser GS License v2.0 |
| GeneralUser_GS_SoftSynth_v1.44.sf2 | S. Christian Collins | GeneralUser GS License v2.0 |
| FluidSynth | Peter Hanappe and contributors | LGPL 2.1 |
| LAME MP3 Encoder | Mark Taylor and contributors | LGPL 2 |
| SDL3 | Sam Lantinga and contributors | zlib |
| libsndfile | Erik de Castro Lopo and contributors | LGPL 2.1 |
See CREDITS.txt for full details.
ArkComposer is free to download and use.
Music created with ArkComposer may be used for personal or commercial purposes without restriction.
Redistribution of ArkComposer itself is not permitted.
Source code is proprietary and not included in this distribution.
Built with C++ and JUCE
Website: arkcomposer.com
