Algorithmic composition for Bitwig Studio. Write Python, get songs.
Project description
openwig
Algorithmic composition for Bitwig Studio. Write Python, get songs.
Goes where Bitwig's official Controller API can't: build arrangements, devices,
modulators, sidechains, automation curves, and full multi-track songs from a
Python program. Render to .wav, export to MIDI/JSON.
Free and open source (GPL-3.0). Windows only. Early beta.
from openwig import Song
s = Song(tempo=128, bars=16, clean=True)
kick = s.track("KICK", device="v9 Kick")
kick.fx("Saturator", Drive=0.20)
kick.clip(s.pulse(36, step=1.0))
bass = s.track("BASS", device="FM-4")
bass.fx("Filter")
bass.clip(s.pulse(33, step=1.0, off=0.5, dur=0.4, vel=0.85))
bass.pump(hi=0.82)
s.master(["EQ+", "Compressor+", "Peak Limiter"])
s.play()
print(s.render("song.wav"))
Compatibility
| openwig | Bitwig Studio | Python | OS |
|---|---|---|---|
| 0.1.x | 6.0.6 | 3.11+ | Windows |
The SDK reaches into Bitwig internals that move across releases, so it targets a specific Bitwig version. A mismatch refuses to connect with a clear error- bump the SDK when you bump Bitwig. Rendering uses WASAPI loopback (Windows).
Install
pip install git+https://github.com/Axyom/openwig.git
python -m openwig install # copies the controller into Bitwig's user dir
python -m openwig doctor # verify deps + controller + bridge
Then in Bitwig: Settings → Controllers → Add → OpenwigBridge (one time).
Contributing
Issues and PRs welcome. Currently Windows + Bitwig 6.0.6 only.
License
GPL-3.0-or-later. See LICENSE.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openwig-0.1.0.tar.gz.
File metadata
- Download URL: openwig-0.1.0.tar.gz
- Upload date:
- Size: 68.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
954795c3f60adb7b2a697404e16864e1e69552145babc59cf30b4dddabe9cda7
|
|
| MD5 |
a4d6479db9cc64aee6a6e9b8dc9be4ab
|
|
| BLAKE2b-256 |
185124e5b32a4a916545245ae055fa5ec64a03bbc660dcd485390b1d879e0545
|
Provenance
The following attestation bundles were made for openwig-0.1.0.tar.gz:
Publisher:
release.yml on Axyom/openwig
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openwig-0.1.0.tar.gz -
Subject digest:
954795c3f60adb7b2a697404e16864e1e69552145babc59cf30b4dddabe9cda7 - Sigstore transparency entry: 1711023599
- Sigstore integration time:
-
Permalink:
Axyom/openwig@e243350a04b240590e4f664a7f5089d3b8098474 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Axyom
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e243350a04b240590e4f664a7f5089d3b8098474 -
Trigger Event:
push
-
Statement type:
File details
Details for the file openwig-0.1.0-py3-none-any.whl.
File metadata
- Download URL: openwig-0.1.0-py3-none-any.whl
- Upload date:
- Size: 72.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfd64696728c8302445c51f3676940d70e308f606f19a2d86fa78fa93b970e47
|
|
| MD5 |
547be75fff5e8fe6340a6468125311e8
|
|
| BLAKE2b-256 |
2207371ad67229e0c02aed17be1248f2142c883afbb34e7a9c78114c6f4cdf7f
|
Provenance
The following attestation bundles were made for openwig-0.1.0-py3-none-any.whl:
Publisher:
release.yml on Axyom/openwig
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openwig-0.1.0-py3-none-any.whl -
Subject digest:
cfd64696728c8302445c51f3676940d70e308f606f19a2d86fa78fa93b970e47 - Sigstore transparency entry: 1711023632
- Sigstore integration time:
-
Permalink:
Axyom/openwig@e243350a04b240590e4f664a7f5089d3b8098474 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Axyom
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e243350a04b240590e4f664a7f5089d3b8098474 -
Trigger Event:
push
-
Statement type: