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, and full multi-track songs from a Python
program, then render to .wav.
Free and open source (GPL-3.0). Windows only. Early beta.
from openwig import Song, Note
s = Song(tempo=128, bars=4, clean=True)
kick = s.track("KICK", device="v9 Kick")
kick.clip([Note(36, beat, dur=0.25) for beat in range(16)])
bass = s.track("BASS", device="FM-4")
bass.fx("Filter")
bass.clip([Note(33, beat+0.5, dur=0.4, vel=0.85) for beat in range(16)])
duck = []
for beat in range(16):
duck += [(beat, 0), (beat + 0.99, 1)]
bass.automate("volume", duck)
hats = s.track("HATS", device="v9 Hat Closed")
hats.clip([Note(42, beat + 0.5, dur=0.2, vel=0.6) for beat in range(16)])
s.master(["EQ+", "Compressor+", "Peak Limiter"])
print(s.render("first.wav"))
Compatibility
| openwig | Bitwig Studio | Python | OS |
|---|---|---|---|
| 0.1.x | 6.0.6 | 3.11+ | Windows |
Install
pip install openwig
python -m openwig install # copies the controller into Bitwig's user dir
Then in Bitwig: Settings → Controllers → openwig → Add → OpenwigBridge (one time), and verify with python -m openwig doctor.
Full guide (requirements, troubleshooting, uninstall): Install docs →
Contributing
Issues and PRs welcome. Currently Windows + Bitwig 6, tested on 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.2.tar.gz.
File metadata
- Download URL: openwig-0.1.2.tar.gz
- Upload date:
- Size: 57.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdffecdbcb42d76c3a321527b65d8013649762bd3b010f715510f571289bf71e
|
|
| MD5 |
00b79d0b54f5a32d6270f3d64582aa82
|
|
| BLAKE2b-256 |
26867d6675585a7102789a8d402ef3a5d65916c248339957ba083f2002fbb046
|
Provenance
The following attestation bundles were made for openwig-0.1.2.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.2.tar.gz -
Subject digest:
fdffecdbcb42d76c3a321527b65d8013649762bd3b010f715510f571289bf71e - Sigstore transparency entry: 1723334930
- Sigstore integration time:
-
Permalink:
Axyom/openwig@98f2bae201b1e191f119887c335a232e9b252389 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/Axyom
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@98f2bae201b1e191f119887c335a232e9b252389 -
Trigger Event:
push
-
Statement type:
File details
Details for the file openwig-0.1.2-py3-none-any.whl.
File metadata
- Download URL: openwig-0.1.2-py3-none-any.whl
- Upload date:
- Size: 56.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 |
7ad06091b217c1db62db20b7447667cbd7a6e947f962aa73bf7edda42d03f1d6
|
|
| MD5 |
7a11fdf228bb47e3653a1d834a685774
|
|
| BLAKE2b-256 |
4f731268653ec9e6497644823295ed10ba229a714890f7296c780ebd5f3f5d01
|
Provenance
The following attestation bundles were made for openwig-0.1.2-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.2-py3-none-any.whl -
Subject digest:
7ad06091b217c1db62db20b7447667cbd7a6e947f962aa73bf7edda42d03f1d6 - Sigstore transparency entry: 1723335014
- Sigstore integration time:
-
Permalink:
Axyom/openwig@98f2bae201b1e191f119887c335a232e9b252389 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/Axyom
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@98f2bae201b1e191f119887c335a232e9b252389 -
Trigger Event:
push
-
Statement type: