gitmyhub

openwig

Python ★ 38 updated 8d ago

Algorithmic composition for Bitwig Studio. Write Python, get songs.

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.

PythonBitwig Studiosetup: hardcomplexity 3/5

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.

Where it fits