Toms Midi-Learn Controller Script

Post Reply New Topic
RELATED
PRODUCTS

Post

Hey everybody,

some of you may remember how I started writing tutorials to ease the pain in the beginning when even changing the name of a generic controller script needed scripting.

My working with Bitwig was all about bringing about some changes to areas that I saw as showstoppers for many people in 1.0, like external hardware support, PDC improvements, midi improvements and, last not least, many changes to the controller API.

One of the first things I envisioned was a controller configurator, be it integrated or as an external software, where you have visual controls that you can place similar to your controllers layout, set parameters and options for them, learn their CCs, create pages and also define buttons to switch through those pages...

This was a bit too ambitious for 1.0.x, although I still hope we will see something like this at one point in the future, either from the devs at Bitwig or from a 3rd party developer.

What I was able to help bringing about is the preferences that now are part of the API and allow controller scripts to have their own settings in both the preferences dialogue (global) and/or in the I/O panel (per document).

One of my test-cases for this was a script that allows to midi-learn knobs and buttons so that at least a certain amount of "slightly advanced" usage is possible in a generic way without scripting.

It turned out that the preferences as they are now are not the optimal way to go about something like this, but I still wanted to create this script as a kind of "proof of concept":
For the community to think about/test, for other scripters to maybe get some inspiration and for the devs at Bitwig to hopefully get an idea how to do it (much) better in the future. ;-)

So after all this introduction, here's the script:
https://github.com/ThomasHelzle/Toms-Mi ... Controller

Check the readme on Github to get an idea what it does and what it doesn't do.

Maybe it is useful to some of you, even with all the limitations.

Happy holidays and Cheers! :party:

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
Sculptures ScreenDream Mastodon

Post

ooooo......Solid Gold Tom :tu:

Definitely gonna give this a go :D

Thanks! :tu:

Merry Christmas to all!

Happy Musiking!
dsan
My DAW System:
W7, i5, x64, 8Gb Ram, Edirol FA-101

Post

Hey dsan,

yeah, it should be especially helpful for unsupported controllers with transport, 8 knobs, 8 faders and some buttons or any mixture of those.

I just fixed a stupid bug where I accidentally deleted part of the script, so please everybody who downloaded it already, do so again. :oops:

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
Sculptures ScreenDream Mastodon

Post

Tom, this is pure Genius! Tested with my Impulse 49 and Finaly got it Implemented in Bitwig almost completly.
Absoltly briliant work

Post

astartes wrote:Tom, this is pure Genius! Tested with my Impulse 49 and Finaly got it Implemented in Bitwig almost completly.
Absoltly briliant work
Good to hear it's useful :-)

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
Sculptures ScreenDream Mastodon

Post

HHi Tom,

thank you for this interesting option. I try to make it work for my Linux based Bitwig Studio.

But I'm not able to follow your instructions.

I've done this:
Installation: Move the two scripts "TomsMidiLearnController.control.js" and "TomsMidi.js" in a folder of your choice (z.B. "TomsGeneric") in "Documents\Bitwig Studio\Controller Scripts\" The path is pretty much the same on all OS', the documents folder in your user directory.
But now I can't follow anymore:
Start Bitwig Studio and got to Preferences -> Controllers -> Add controller manually -> Generic -> "Controller"
Under "Generic" is only: "Keyboard & 8 Device Knobs" "Midi Clock Transmitter" and "Midi Keyboard" but no "Controller".

Any idea?

BTW I have installed the latest "Push4Bitwig" in my Controller Scripts folder and it working fine. But I have an extra controller and not the patience nor experience to write a controller script.
[del]AudioLinux sucks.[/del]

Post

could you add this one to the community scripts on the page as well?

Post

@Lump: Are you sure you downloaded the script correctly with the "Download Zip" button on the right side of the Github page linked to above? I just tried it on Linux Mint and it works as expected for me.
The only thing I got wrong in the explanation is, that the path to the Bitwig Studio user folder on Linux seems not to be inside of "Documents" but directly in the User folder itself...

@Suloo: Are you talking about this: http://www.bitwig.com/en/community/cont ... learn.html ???
What's wrong with it? Can you elaborate? :shrug:

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
Sculptures ScreenDream Mastodon

Post

ah ok, i thought it was a different one, cool.

Post

Hi Tom:

Thank you, my mistake, I just downloaded the most recent js - after installing the content of the zip everything working as expected (or not, I will evaluate ;)
the path to the Bitwig Studio user folder on Linux seems not to be inside of "Documents" but directly in the User folder itself...
Thats true but was no big prob for me.

(EDIT later, after some evaluating)

I have a Samson Graphite MF8 Desktop Controller. Not so far from the Korg Nanocontrol, but with some improvements. One of the best is the big master button midst the controller. I want to use this a pure mixing unit. Transport and Volume Fader doing fine now. But I need also Master, Pan and Record/Solo Buttons. (and not another Macro controller) Hope your script will be improved in the future. I know this is "poc" ;)

Another idea: give the script the ability to parse this as a separate js document to make it easy to generate controller scripts!

But anyway, great job, thank you!
[del]AudioLinux sucks.[/del]

Post

Hi can you help me out with the Axiom pro 49 keyboard. I can map all the faders and knob sand pads but cant make the start stop record and loop buttons work.

I would not have a problem of donating some dosh to your favorite charity if you help me out
cheers
kevin
BWS 5.0.6,Spark LE, V Collection 9.2 BS1 & BS PRO, KS & KS pro keylab 25, Axiom pro 49,Behringer UMC1820,LPP ProFx8 v2 Icon m+, KRK 10/3,win 10 pro,i7 5820k 4ghz ,16G ddr 4 1TB NVMe.M2 msi x99a sli + NV GF Gt710, Matrix Brute Roland TR8S

Post

I currently work on other things so the script will not be updated from my side for the foreseeable future, but feel free to fork and improve it anyway you like.

@turbo_kev: I don't know anything about the Axiom so I can't help you there. But you can check if it sends either CCs and/or MMC sysex for the transport buttons. If not, the script/midi learn will not work, so be sure you set it to send one of these. Loop has no MMC equivalent so it always has to send CCs and needs to be learned, even if the other controls use MMC.

Cheers,

Tom
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
Sculptures ScreenDream Mastodon

Post

A quick bump:
I fixed a bug today that was introduced by "timbresmith" when he added a relative mode to the script a while ago.
Any values above 64 would reset the knobs in Bitwig to zero since the script always ran in relative mode.
This is now fixed and I hope the script works fully again.
If you find other bugs, please let me know.

Cheers,

Tom

P.S. I'm no longer on KVR much since I dive fully back into 3D ATM, so if you want to reach me, better send me a PM.
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
Sculptures ScreenDream Mastodon

Post Reply

Return to “Controller Scripting”