explaingit

axyom/openwig

21PythonAudience · developerComplexity · 3/5LicenseSetup · hard

TLDR

A Python library that controls Bitwig Studio music software with code, letting you script a full song arrangement and export it as a WAV audio file without touching the mouse.

Mindmap

mindmap
  root((openwig))
    What it does
      Script Bitwig songs
      Create tracks in code
      Export WAV audio
    Tech Stack
      Python
      Bitwig Studio 6
    Use Cases
      Automate arrangements
      Code-driven music
      Sidechain via script
    Setup
      Windows only
      Bridge install step
      Doctor command check
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Script a complete drum, bass, and hi-hat arrangement in Python and export it as a WAV file without ever using Bitwig's mouse interface.

USE CASE 2

Automate repetitive Bitwig tasks like setting up sidechains and loading effects across multiple tracks from a Python script.

USE CASE 3

Generate algorithmic or procedural music arrangements directly inside Bitwig Studio by writing code instead of drawing clips manually.

Tech stack

PythonBitwig Studio

Getting it running

Difficulty · hard Time to first run · 1h+

Windows only, targets Bitwig Studio 6.0.6, requires installing a bridge component into Bitwig's user directory and enabling it inside Bitwig's settings.

Free to use and modify, but any software you distribute that includes this library must also be released under the GPL-3.0 license.

In plain English

openwig is a Python library that lets you control Bitwig Studio, a music production application, by writing code instead of using the mouse. You describe a song in a Python script: the tempo, number of bars, which tracks to create, which instruments and effects to load, what notes to play, and any automation such as volume changes over time. The library then connects to the running Bitwig application, builds the arrangement inside it, and renders the result to a WAV audio file. The library goes further than what Bitwig's built-in controller scripting supports. The official API is designed for hardware controllers, but openwig creates and arranges tracks, loads devices, sets up sidechains, and writes automation directly inside the app. The code example in the README creates a four-bar song with a kick drum, a bass line with a filter effect and volume ducking, and hi-hats, then exports the result as a WAV file in roughly fifteen lines of Python. The project is in early alpha and runs on Windows only, targeting Bitwig Studio version 6.0.6. Installation involves installing the Python package, running a setup command that copies a bridge component into Bitwig's user directory, and then enabling the bridge controller once inside Bitwig's settings. A doctor command can verify the connection is working before you start composing. The source code is released under the GPL-3.0 license. A documentation site covers installation steps, troubleshooting, and uninstalling. The repository accepts bug reports and contributions through GitHub issues and discussions.

Copy-paste prompts

Prompt 1
I installed openwig and enabled the bridge in Bitwig Studio 6 on Windows. Write me a Python script that creates a four-bar beat with a kick, bass, and hi-hats and exports it as a WAV file.
Prompt 2
Using the openwig library, how do I set up a volume-ducking sidechain so the bass track dips every time the kick drum plays?
Prompt 3
I want to add a melody track with a specific synth preset loaded in Bitwig using openwig. Show me the Python code to create the track, load a device by name, and write MIDI notes.
Open on GitHub → Explain another repo

← axyom on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.