Skip to content

simon-lowes/generative-music-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Generative Music Setup

Documentation for AI-controlled generative music production — enabling Brian Eno-style autonomous composition where you set up rules, walk away, and return when something interesting happens.

The Goal

"I want to create some rules and go in the other room whilst Logic generates pieces. I'll either come back later or hear something I like and go to observe or bookmark the piece." — The Eno workflow

This repo documents how to achieve this using Claude + MCP (Model Context Protocol) servers to control DAWs programmatically.


DAW Comparison for AI Control

DAW API Quality MCP Server Available Recommendation
Bitwig Studio ⭐⭐⭐⭐⭐ Excellent WigAI Best choice — fully documented Java API, active community
Ableton Live ⭐⭐⭐⭐ Good ableton-mcp, ableton-copilot-mcp Solid support via Max for Live
Logic Pro ⭐⭐ Poor ⚠️ Generic only No real API — use macos-ui-automation-mcp as fallback

Bitwig Studio (Recommended)

Why Bitwig?

  • Open Controller Extension API — Fully documented, Java-based
  • Built-in debugging console — Makes script development fast
  • Official extensions are open source — Can adapt existing code
  • Active community — Lots of resources and examples

MCP Server: WigAI

Repository: https://github.com/fabb/WigAI

Capabilities:

  • Transport control (play, stop, record, tempo)
  • Track management (volume, pan, mute, solo)
  • Device parameter manipulation
  • Project information retrieval
  • Clip triggering

Setup:

  1. Install the WigAI controller extension in Bitwig
  2. Activate it in Bitwig's controller settings
  3. MCP server runs at http://localhost:61169/mcp
  4. Configure Claude Desktop to connect to this endpoint

Additional Resources

OSC Support

Bitwig has good OSC support via:


Ableton Live

MCP Servers

ableton-mcp (by ahujasid)

ableton-copilot-mcp (by xiaolaa2)

How It Works

Ableton exposes control via:

  • Max for Live devices
  • Remote Scripts (Python)
  • The MCP servers bridge these to Claude

Logic Pro

The Problem

Apple has historically refused to provide a proper external API for Logic Pro. The scripting options are:

  • Scripter — JavaScript for MIDI processing, but runs inside Logic, not external control
  • AppleScript — Very limited dictionary, mostly UI scripting workarounds
  • OSC — Only predefined controls, can't add custom ones

Workaround: macOS UI Automation MCP

Repository: https://github.com/mb-dev/macos-ui-automation-mcp

This MCP server uses macOS Accessibility APIs to control any native Mac app, including Logic Pro.

How it works:

  • Queries the Accessibility Tree (same thing VoiceOver uses)
  • Translates UI elements to JSON that Claude can parse
  • Can click buttons, type text, send key commands

Capabilities with Logic:

  • Start/stop transport
  • Trigger key commands (markers, record, etc.)
  • Interact with any visible UI element
  • Navigate menus

Limitations:

  • Slower than native API integration
  • Dependent on UI layout (may break with Logic updates)
  • Less granular control than Bitwig/Ableton MCP servers

Logic's Built-in Generative Tools

If you must use Logic, leverage its internal tools:

  • Scripter MIDI Plugin — JavaScript-based MIDI generation/transformation
  • Session Players — AI-powered backing musicians (newer feature)
  • Live Loops — For experimental/generative approaches

The Eno Workflow

Architecture

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  Claude + MCP   │────▶│   DAW (Bitwig)  │────▶│  Audio Output   │
│   (controls)    │     │  (generates)    │     │   (to ears)     │
└─────────────────┘     └─────────────────┘     └─────────────────┘
                                                        │
                                                        ▼
                                                   ┌─────────┐
                                                   │   You   │
                                                   │(listens)│
                                                   └─────────┘
                                                        │
                                              "that's interesting"
                                                        │
                                                        ▼
                                               ┌───────────────┐
                                               │ Tell Claude   │
                                               │ to bookmark   │
                                               └───────────────┘

Workflow Steps

  1. Design your generative system in Bitwig

    • Probability-based MIDI generators
    • Modular patches with randomization
    • Polymetric/polyrhythmic loops
  2. Set up Claude with WigAI MCP

    • Claude can start/stop, adjust parameters
    • Define rules: "every 5 minutes, slightly adjust tempo" or "if track 3 volume drops below X, raise it"
  3. Let it run

    • Go make tea, work on something else
    • Listen passively
  4. Intervene when inspired

    • Tell Claude to drop a marker
    • Adjust parameters
    • Capture the moment

What Claude Can't Do (Yet)

  • Listen to audio — Claude has no real-time audio input
  • Make aesthetic judgments — That's your job
  • Detect "interesting" moments — Would need a separate audio analysis component

Future Enhancement: Audio Analysis Bridge

For fully autonomous "detect interesting moments," you'd need:

  • A separate process monitoring audio output
  • Heuristics for "interesting" (harmonic tension, dynamic change, novel patterns)
  • Signal to Claude when triggered

This is possible but out of scope for basic setup.


Installation Checklist

For Bitwig (Recommended)

  • Install Bitwig Studio
  • Clone WigAI
  • Install the controller extension in Bitwig
  • Configure Claude Desktop with MCP endpoint http://localhost:61169/mcp
  • Test basic commands (play, stop, get project info)

For Logic Pro (Fallback)

  • Install macos-ui-automation-mcp
  • Grant Accessibility permissions
  • Configure Claude Desktop with the MCP server
  • Test UI automation with Logic open

For Ableton


References

MCP Servers

DAW Documentation

Generative Music Inspiration


License

MIT — use this however you like.

About

Documentation for AI-controlled generative music production using MCP servers with Bitwig, Ableton, and Logic Pro. Eno-style autonomous composition workflows.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors