Supports importing generated MIDI files into Bitwig Studio for music production.
Enables generation of professional MIDI files including chord progressions, drum patterns, bass lines, melodies, and full arrangements compatible with any MIDI 1.0 standard software.
Supports importing generated MIDI files into Pro Tools for music production.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@DAW MIDI Generator MCPcreate a 4-bar house drum pattern at 128 BPM"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DAW MIDI Generator MCP π΅
An MCP (Model Context Protocol) server that enables Claude AI to generate professional MIDI files for any DAW.
πΉ What It Does
This MCP server gives Claude the ability to generate complete, production-ready MIDI files:
Chord Progressions - Any key, any progression (I-V-vi-IV, ii-V-I, custom)
Drum Patterns - House, Techno, Trap with precise General MIDI mapping
Bass Lines - Steady, Syncopated, Walking patterns
Melodies - Major, Minor, Pentatonic scales
Full Arrangements - Chords + Drums + Bass in one command
All files are standard MIDI 1.0 compatible with every DAW.
β Compatible DAWs
Logic Pro X
Ableton Live
FL Studio
Cubase
Pro Tools
Reaper
Bitwig Studio
Studio One
GarageBand
Any MIDI-compatible software
π Requirements
macOS (tested on Sequoia 15.7.2+) or Linux
Python 3.10+
Claude Desktop (download here)
Any DAW that supports MIDI import
π Installation
Step 1: Clone the Repository
Step 2: Install Python Dependencies
This installs:
mcp- Model Context Protocol librarymido- MIDI file generation library
Step 3: Get the Absolute Path
Copy the output (e.g., /Users/yourname/daw-midi-generator-mcp)
Step 4: Configure Claude Desktop
Open Claude Desktop's configuration file:
macOS:
Linux:
Add this configuration (replace YOUR_USERNAME with your actual username):
β οΈ CRITICAL: Use the absolute path from Step 3. Relative paths don't work.
Save the file:
In nano:
Ctrl+O,Enter,Ctrl+X
Step 5: Restart Claude Desktop
Completely quit Claude Desktop:
macOS:
Cmd+QLinux: Close the application
Wait 3 seconds, then reopen Claude Desktop.
Step 6: Verify Installation
Open Claude Desktop and type:
Claude should generate a MIDI file and show you the path.
π Project Structure
Output Directory
MIDI files are saved to:
This directory is created automatically the first time the server runs. You don't need to create it manually.
πΌ How It Works
The Architecture
Step-by-Step Example
1. You ask Claude:
2. Claude calls the MCP server:
3. The Python server executes:
4. Claude responds:
5. You import the file into your DAW
When Does the Server Run?
The server runs automatically in the background:
Starts: When you open Claude Desktop
Runs: While Claude Desktop is open
Stops: When you quit Claude Desktop
You never run it manually. Claude Desktop handles everything.
The Five Tools
The server exposes 5 tools to Claude:
Tool Name | What It Does | Parameters |
| Creates chord MIDI files | key, progression, tempo, bars |
| Creates drum patterns | pattern_type (house/techno/trap), tempo, bars |
| Creates bass lines | key, pattern (steady/syncopated/walking), tempo, bars |
| Creates melodies | scale (major/minor/pentatonic), key, tempo, bars |
| Creates all 3 above | key, genre, tempo, bars |
π¬ Usage Examples
Chord Progressions
Output: Single MIDI file with chord voicings
Drum Patterns
Styles:
house - Four-on-floor kick, snare on 2-4, hi-hats on eighths
techno - Driving kick pattern, tight hi-hats, occasional open hats
trap - Syncopated kicks, 16th note hi-hats, hard snares
Bass Lines
Patterns:
steady - Root notes on every beat (4/4 time)
syncopated - Off-beat grooves with rests
walking - Jazz-style ascending/descending patterns
Melodies
Scales:
major - Happy, bright melodies
minor - Sad, dark melodies
pentatonic - Simple, catchy melodies (great for leads)
Full Arrangements
Output: 3 MIDI files (chords + drums + bass)
π₯ Importing into Your DAW
Logic Pro X / GarageBand
File β Import β MIDI File
Navigate to
~/Music/DAW/Claude_MIDI/Select one or more MIDI files
Click Open
Or drag & drop files directly into the timeline.
Ableton Live
Drag MIDI files from Finder into Session or Arrangement View
Ableton automatically creates a new track
Assign an instrument
FL Studio
File β Import β MIDI file
Navigate to
~/Music/DAW/Claude_MIDI/Select file and import
Cubase / Pro Tools / Reaper / Bitwig
Drag & drop MIDI files into the timeline.
π§ Technical Details
MIDI Specification
Format: MIDI 1.0 standard
Timing: 480 PPQ (pulses per quarter note)
Drums: General MIDI Channel 10 mapping
Kick: MIDI 36
Snare: MIDI 38
Closed Hi-hat: MIDI 42
Open Hi-hat: MIDI 46
Velocity: Dynamic (50-100)
Time Signature: 4/4 (currently)
Python Architecture
Main Components:
Key Libraries:
mido- MIDI file creation and manipulationmcp- Model Context Protocol server implementationasyncio- Asynchronous I/O for MCP communication
π Troubleshooting
Server Won't Start
Error: ModuleNotFoundError: No module named 'mcp'
Solution:
Claude Doesn't See the Server
Problem: Claude says "I don't have access to that tool"
Solutions:
Check the config path is absolute:
Should show: /Users/yourname/daw-midi-generator-mcp/midi_generator_server.py
Not: ~/daw-midi-generator-mcp/... β
Check the logs:
Look for:
Completely restart Claude Desktop:
Cmd+Q(not just close window)Wait 5 seconds
Reopen
Test the Server Manually
Should output:
Press Ctrl+C to stop.
MIDI Files Are Empty or Don't Play
Check:
β Assigned an instrument to the track
β Track volume is not zero
β Track is not muted
β Using the correct MIDI channel (drums = channel 10)
Output Directory Not Created
The directory ~/Music/DAW/Claude_MIDI/ is created automatically by this line:
If it doesn't exist:
The server hasn't run yet
Check file permissions on
~/Music/
π οΈ Customization
Change Output Directory
Edit midi_generator_server.py:
Add New Drum Patterns
Edit the patterns dict in create_drum_pattern_midi():
Add New Scales
Edit the scales dict in create_melody_midi():
Add New Tools
Create a new generator function
Register it in
@app.list_tools()Handle it in
@app.call_tool()
After any changes: Restart Claude Desktop
πΊοΈ Roadmap
Support for alternate time signatures (3/4, 6/8, 7/8)
More drum patterns (breakbeat, dnb, funk)
Advanced chord voicings (9th, 11th, 13th)
Arpeggiators
Swing/groove quantization
MusicXML export
Integration with AI music generation models
π€ Contributing
Pull requests are welcome! For major changes, please open an issue first.
Fork the repository
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m 'Add AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)Open a Pull Request
Ideas for contributions:
More drum patterns
Additional scales and modes
Chord voicing variations
Time signature support
Humanization/randomization
MIDI effects (swing, velocity curves)
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π€ Author
S2D01
GitHub: @s2d01
Website: s2d01.github.io
π Acknowledgments
Built with Anthropic's Claude and Model Context Protocol
MIDI handling powered by mido
Inspired by the need for AI-assisted music production
β Support
If you find this project useful:
β Star this repository
π Report bugs in Issues
π‘ Suggest features in Issues
π§ Contribute code via Pull Requests
π΅ Happy music making!