Barely documented. Don’t ask chatgpt 🙂 Resources I’ve found:
https://www.youtube.com/watch?v=jSiF7tmkLHE
https://www.bitwig.com/support/technical_support/how-do-i-add-a-controller-extension-or-script-17
https://github.com/bitwig/bitwig-extensions
In the folder of your bitwig installation, you may find the API documentation:
<<bitwig programm folder>>/resources/doc/control-surface/api/help-doc.html#overview
Few first hints
In Bitwig, click on the bitwig symbol in the middle of the window title bar, then go to Help. Then documentation in the left pane of the dialog. Find controller API reference on the right side of the window. click on new project. Give it a name, add your company name, choose the folder where you want to develop your java controller script. It will be saved into a sub folder with the name you gave for the script.
Install maven and jdk (commands for Debian, jdk number may differ, or you likely have to current version installed anyway):
sudo apt install maven openjdk-21-jdk
The example code just requires API version 1. So you may change in /src/main/java/com/company name/*Definition.java:
public int getRequiredAPIVersion()
{
return 1;
}
Then only increase the value, if you use functions from newer API versions.
Go to the top folder of your created project an run:
mvn install
Find the *.bwextension file under project folder/target
Linux: copy it to your user folder /Bitwig Studio/Extension
Mac: copy it to Documents/Bitwig Studio/Extensions
Load your script in bitwig: click on the bitwig symbol in the middle of the window title bar, then go to Settings. Find Controller in the left pane. Hit „add controller“ on the right side. You should find your controller extension under the company name that you used when creating the java extension.