Skip to main content

Python library and MCP server for controlling Novation Circuit Tracks via MIDI

Project description

circuit-tracks-tools

A Python library and MCP server for controlling a Novation Circuit Tracks synthesizer via MIDI. Control your Circuit Tracks from Python scripts or let an AI agent create music through natural language — just like pair-programming, but for music.

Features

  • Synth & drum programming — select patches, play notes/chords, tweak parameters via CC/NRPN
  • Pattern sequencing — create and edit step-sequencer patterns across synth, drum, and MIDI tracks
  • Patch editing — read, modify, and save synth patches; load .syx patch files
  • Project management — transfer .ncs project files to the device
  • Macro control — configure and sweep macro knobs for expressive parameter control
  • Live transport — start/stop sequencer, set BPM, mute tracks, queue patterns

Requirements

  • Python 3.11+
  • A Novation Circuit Tracks connected via USB
  • Tested with firmware 1.2.1 (latest as of April 2026) — other versions may work but are untested

Installation

As a Python library

pip install circuit-tracks-tools

With MCP server (for AI agents)

pip install circuit-tracks-tools[mcp]

Quick Start: Python Library

from circuit_tracks import MidiConnection, PatchBuilder

# Connect to the Circuit Tracks
midi = MidiConnection()
midi.connect("Circuit Tracks MIDI")

# Play a C major chord on Synth 1
midi.note_on(channel=0, note=60, velocity=100)
midi.note_on(channel=0, note=64, velocity=100)
midi.note_on(channel=0, note=67, velocity=100)

# Build a pad patch from scratch
patch = PatchBuilder.preset_pad(cutoff=80, attack=40, release=90)

See the API Reference for full library documentation.

Quick Start: MCP Server

The MCP server runs as a subprocess launched by your AI agent. The easiest setup uses uvx (requires uv):

Claude Code

Add to your .mcp.json:

{
  "mcpServers": {
    "circuit-tracks": {
      "command": "uvx",
      "args": ["--from", "circuit-tracks-tools[mcp]", "circuit-tracks-mcp"]
    }
  }
}

Then talk to Claude:

"Let's create a dark techno loop"

The agent will program patterns on your Circuit Tracks as if a human were doing it — selecting sounds, writing sequences, adjusting parameters — and iterate with you on the result.

Claude Desktop (macOS)

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "circuit-tracks": {
      "command": "uvx",
      "args": ["--from", "circuit-tracks-tools[mcp]", "circuit-tracks-mcp"]
    }
  }
}

Claude Desktop (Windows)

Edit %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "circuit-tracks": {
      "command": "uvx",
      "args": ["--from", "circuit-tracks-tools[mcp]", "circuit-tracks-mcp"]
    }
  }
}

Without uvx

If you prefer a manual setup, install into a virtual environment and use the full path:

{
  "mcpServers": {
    "circuit-tracks": {
      "command": "/path/to/venv/bin/circuit-tracks-mcp"
    }
  }
}

Windows Setup

The library and MCP server work on Windows. Install Python 3.11+ from python.org and then:

pip install circuit-tracks-tools[mcp]

The Circuit Tracks appears as a USB MIDI device automatically — no additional driver installation is needed. You can verify it shows up in Device Manager under "Sound, video and game controllers".

Project Structure

src/circuit_tracks/   # Standalone library for Circuit Tracks control
  midi.py             # MIDI connection handling
  sequencer.py        # Pattern/step sequencer engine
  patch.py            # Synth patch read/write
  patch_builder.py    # Patch construction helpers
  constants.py        # CC numbers, NRPN mappings, channel assignments
  macros.py           # Macro knob configuration
  ncs_parser.py       # .ncs project file parser
  ncs_transfer.py     # SysEx project/patch transfer
  song.py             # Song format and device export
  morph.py            # Parameter morphing engine
src/circuit_mcp/      # MCP server (thin wrapper over the library)
  server.py           # All MCP tool definitions
docs/
  ncs-format.md       # Reverse-engineered .ncs file format spec

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

circuit_tracks_tools-0.0.1.tar.gz (180.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

circuit_tracks_tools-0.0.1-py3-none-any.whl (75.3 kB view details)

Uploaded Python 3

File details

Details for the file circuit_tracks_tools-0.0.1.tar.gz.

File metadata

  • Download URL: circuit_tracks_tools-0.0.1.tar.gz
  • Upload date:
  • Size: 180.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for circuit_tracks_tools-0.0.1.tar.gz
Algorithm Hash digest
SHA256 21e3b60d51a40e4bd2fde774ff3468a8ac4206cc98d6940a57079bea95bd0f30
MD5 5099da4e76ac585a919d7ec6d9337100
BLAKE2b-256 cb580d746c92930b3138448bd6a8c8612c9004154e81dbfc555e1a42cd7d99ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for circuit_tracks_tools-0.0.1.tar.gz:

Publisher: publish.yml on namirsab/circuit-tracks-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file circuit_tracks_tools-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for circuit_tracks_tools-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fd6756de0d29ad0dfe6429ef7c1d4c0789d3a5bc0140f676911ba6ba5ddbbe08
MD5 dd325ab9abea7d1afc89fa5f1b17db0a
BLAKE2b-256 38bfe1be884699c8886647921c6681f813cc3103a877d8775608a02574f2ae18

See more details on using hashes here.

Provenance

The following attestation bundles were made for circuit_tracks_tools-0.0.1-py3-none-any.whl:

Publisher: publish.yml on namirsab/circuit-tracks-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page