DrivenByMoss: Bitwig extension for many hardware controllers (version 23.2.2)

RELATED
PRODUCTS
Bitwig Studio 5 Maschine

Post

EricP_______ wrote: Mon May 27, 2024 3:09 am Hi Moss, first of all THANK YOU !
I have a small request. On Push, when adjusting clip start and loop length, I'd like to be able to adjust to finer values. Currently, with "shift" button pressed, I can get loop length down to 0.1.0 and loop start down to 0.1.1.

Being able to adjust the last digit (with shift or shift+select) would be great
Noted but this is a topic where I would like to see some improvement on Bitwigs side.

Post

rainfactor wrote: Mon May 27, 2024 11:44 am Hello,

Would like to thank you first of all for your amazing work.
I have recently purchased Bitwig and hooked it up to my Push 2 using your wonderful script.
Not sure why but when using the Drum Machine the 2nd pad on the Push2 is always skipped. Like all the pads are shifted by one with the exception of the 1st one
Like 1st is ok 2nd has a sound on it in DM but doesn't play when Push 2 pad is being pressed. 3rd plays the sound that's on 4th and so on.....
Not sure if it's something I'm doing wrong or is it with Bitwig.
I used 5.1 and now 5.2 Beta 3 and is doing the same thing.

Thank you
Are you using the drum mode?

Post

TwinkleToes wrote: Tue May 28, 2024 11:37 am Is it possible to control the arp by having the arp display on the pads?
???

Post

jekblad wrote: Wed May 29, 2024 2:43 pm I love the script - wondering if anyone has issues with Bitwig being a bit laggy? For example I click on a track header and there is a few millisecond delay. If I turn off the controller scripts Bitwig is snappy again. Any troubleshooting steps I can take?
I am not aware of such an issue. Which controller are you using? What is lagging? What's in your project?

Post

moss wrote: Wed May 29, 2024 11:28 pm
nowiamone wrote: Sat May 25, 2024 2:13 pm Hello dear Moss,
I'm experimenting with Instrument Selector and your OSC Script:
1.
/device/layer/{1-8}/name and /device/layer/selected/name is giving out the names of the Instruments within the Instrument Selector just fine, but via /device/layer/{1-8}/activated there doesn't come any info about the activated instruments
Also, i was hoping that maybe it's possible to also use /device/layer/{1-8}/activated as sending adress, to activate specific Instruments? Doesn't seem to work though.
"Activated" is somehow missing. Will add it to the wishlist.
nowiamone wrote: Sat May 25, 2024 2:13 pm 2.
Most importantly: Is there any chance to read out (recieve) the name of the currently activated device layer (=the name of the currently activated instrument within the instrument selector)? This would be awesome to have - and should be possible in theory, as the individual names appear to be present, at least via /device/layer/1-8/name :)
/device/layer/{1-8}/name should already work. Note that you only will see it when it changes.
1. Thank you!!
2.: "/device/layer/{1-8}/name should already work. Note that you only will see it when it changes." Yes, it already works, but it is giving out names based on the "is it selected?" logic, and not "is it activated?".
There's sadly no adress which shows the name of currently active(!) devicelayer :)
Names of the currently selected devicelayer are sadly not necessarily equal to the currently active devicelayer.
:)
I built a Looper for Bitwig! :) https://www.youtube.com/watch?v=-z5ywDo2bU0

Post

Dear Moss, hello again!
Is there any chance to see arturia beatstep pro script from you? I guess there is not so much difference between beatstep pro in controller mode and basic beatstep vesrsion

Post

nowiamone wrote: Thu May 30, 2024 3:30 am 2.: "/device/layer/{1-8}/name should already work. Note that you only will see it when it changes." Yes, it already works, but it is giving out names based on the "is it selected?" logic, and not "is it activated?".
There's sadly no adress which shows the name of currently active(!) devicelayer :)
Names of the currently selected devicelayer are sadly not necessarily equal to the currently active devicelayer.
:)
Ah, now I see what you mean. You need to check the "Index" parameter of the Instrument Selector device.

Post

LayersOfSilence wrote: Thu May 30, 2024 5:14 am Dear Moss, hello again!
Is there any chance to see arturia beatstep pro script from you? I guess there is not so much difference between beatstep pro in controller mode and basic beatstep vesrsion
No. I supported it in the past but had to remove it since you basically had to navigate it blind and it worked not very reliable. But you can have the same feature set by using Generic Flexi.

Post

moss wrote: Fri May 31, 2024 4:18 am
nowiamone wrote: Thu May 30, 2024 3:30 am 2.: "/device/layer/{1-8}/name should already work. Note that you only will see it when it changes." Yes, it already works, but it is giving out names based on the "is it selected?" logic, and not "is it activated?".
There's sadly no adress which shows the name of currently active(!) devicelayer :)
Names of the currently selected devicelayer are sadly not necessarily equal to the currently active devicelayer.
:)
Ah, now I see what you mean. You need to check the "Index" parameter of the Instrument Selector device.
Interesting! I still don't understand though, because What OSC adress would that index parameter be, please? :)
I checked the OSC protocol, and there are no instrument names incoming for the Instrument selector, when changing the currently activated instrument in the selector! Only names for the instruments' remotecontrol-pages (/primary/param/x/name) and remotecontrol-parameters (/primary/page/1/name).
So when i have this instrument selector here, i never get the "E-Hat", "E-Kick", "E-Snare" names in the OSC Protocol, when changing the currently activated instrument! These names don't appear in the OSC protocol:
instr.jpg
instr1.jpg
It's only when selecting a different instrument in the selector, that i get the name. But that's not what i'm looking for:
instr sel.jpg
RECEIVE | ENDPOINT([::ffff:127.0.0.1]:53746) ADDRESS(/device/layer/selected/name) STRING(E-Kick) = not what I'm looking for :)
I'm looking for the seemingly non-existant "/device/layer/{1-8}/activated/name" :D :harp:
Maybe, if you're willing to make the /device/layer/{1-8}/activated adress functional again, you're so in the flow, that you're willing to add the /name , too ? would be very nice :)
You do not have the required permissions to view the files attached to this post.
I built a Looper for Bitwig! :) https://www.youtube.com/watch?v=-z5ywDo2bU0

Post

nowiamone wrote: Fri May 31, 2024 6:22 am
moss wrote: Fri May 31, 2024 4:18 am
nowiamone wrote: Thu May 30, 2024 3:30 am 2.: "/device/layer/{1-8}/name should already work. Note that you only will see it when it changes." Yes, it already works, but it is giving out names based on the "is it selected?" logic, and not "is it activated?".
There's sadly no adress which shows the name of currently active(!) devicelayer :)
Names of the currently selected devicelayer are sadly not necessarily equal to the currently active devicelayer.
:)
Ah, now I see what you mean. You need to check the "Index" parameter of the Instrument Selector device.
Interesting! I still don't understand though, because What OSC adress would that index parameter be, please? :)
I checked the OSC protocol, and there are no instrument names incoming for the Instrument selector, when changing the currently activated instrument in the selector! Only names for the instruments' remotecontrol-pages (/primary/param/x/name) and remotecontrol-parameters (/primary/page/1/name).
So when i have this instrument selector here, i never get the "E-Hat", "E-Kick", "E-Snare" names in the OSC Protocol, when changing the currently activated instrument! These names don't appear in the OSC protocol:
instr.jpg
instr1.jpg

It's only when selecting a different instrument in the selector, that i get the name. But that's not what i'm looking for:
instr sel.jpg
RECEIVE | ENDPOINT([::ffff:127.0.0.1]:53746) ADDRESS(/device/layer/selected/name) STRING(E-Kick) = not what I'm looking for :)
I'm looking for the seemingly non-existant "/device/layer/{1-8}/activated/name" :D :harp:
Maybe, if you're willing to make the /device/layer/{1-8}/activated adress functional again, you're so in the flow, that you're willing to add the /name , too ? would be very nice :)
Should be on the first page, if not add it:
You do not have the required permissions to view the files attached to this post.

Post

moss wrote: Fri May 31, 2024 7:17 am
nowiamone wrote: Fri May 31, 2024 6:22 am
moss wrote: Fri May 31, 2024 4:18 am
nowiamone wrote: Thu May 30, 2024 3:30 am 2.: "/device/layer/{1-8}/name should already work. Note that you only will see it when it changes." Yes, it already works, but it is giving out names based on the "is it selected?" logic, and not "is it activated?".
There's sadly no adress which shows the name of currently active(!) devicelayer :)
Names of the currently selected devicelayer are sadly not necessarily equal to the currently active devicelayer.
:)
Ah, now I see what you mean. You need to check the "Index" parameter of the Instrument Selector device.
Interesting! I still don't understand though, because What OSC adress would that index parameter be, please? :)
I checked the OSC protocol, and there are no instrument names incoming for the Instrument selector, when changing the currently activated instrument in the selector! Only names for the instruments' remotecontrol-pages (/primary/param/x/name) and remotecontrol-parameters (/primary/page/1/name).
So when i have this instrument selector here, i never get the "E-Hat", "E-Kick", "E-Snare" names in the OSC Protocol, when changing the currently activated instrument! These names don't appear in the OSC protocol:
instr.jpg
instr1.jpg

It's only when selecting a different instrument in the selector, that i get the name. But that's not what i'm looking for:
instr sel.jpg
RECEIVE | ENDPOINT([::ffff:127.0.0.1]:53746) ADDRESS(/device/layer/selected/name) STRING(E-Kick) = not what I'm looking for :)
I'm looking for the seemingly non-existant "/device/layer/{1-8}/activated/name" :D :harp:
Maybe, if you're willing to make the /device/layer/{1-8}/activated adress functional again, you're so in the flow, that you're willing to add the /name , too ? would be very nice :)
Should be on the first page, if not add it:
Ahhh, now i understand, thanks alot for clarifying!
well it seems this isn't 100% the solution, because a) it can't be combined with the selection of instruments via program change.
111.jpg
b) When using the index parameter, the selection of instruments is horrible via buttons, because the index parameter requires incoming values between 0 to 127, which are dynamically changing based on the number of instruments inside of the selector.
So when having 3 instruments, button 1 needs to send a value from 0 to 42, button 2 needs to send a value from 43 up to 88, and button 3 needs to send a value between 88 up to 127...
As soon as loading up an instrument selector with another count of instruments inside, the buttons are worthless, because they would select totally different instruments, not instruments 1 to 3.
2222.jpg
That's why i would have loved to work without the index parameter, and prefered a pure osc solution, which directly adresses the /activated layer.
Thanks anyway for showing me this workaround on how i could get the names in theory. It just won't fit in my current setup right now.

Here's a 20 second clip to show you how awesome a browsing experience of Bitwigs instrument selectors already is, thanks to your OSC script! Seeing the currently activated instr.selector names would just be the cherry on the top.
https://youtu.be/savIdV3Jvbk
You do not have the required permissions to view the files attached to this post.
I built a Looper for Bitwig! :) https://www.youtube.com/watch?v=-z5ywDo2bU0

Post

Thank you @moss!

This is my first foray into Bitwig-your script combo.
Indeed the Drum mode was not selected.Once selected things are smooth.
I apologize for wasting your time :)

Post

AUTO-ADMIN: Non-MP3, WAV, OGG, SoundCloud, YouTube, Vimeo, Twitter and Facebook links in this post have been protected automatically. Once the member reaches 5 posts the links will function as normal.
Hallo Jürgen... ich habe deine allerneuste Version in der Bitwig 5.2 Beta 5 version installiert. Kann es sein, dass die Funktion "Send Value to device" nicht funktioniert? Mein Controller (Yaeltex) bekommt die daten nicht, wenn ich in Bitwig den einen Drehregler betätige. Ich habe unter https://github.com/Knochenschall/Toms_Bitwig_Scripts (https://github.com/Knochenschall/Toms_Bitwig_Scripts) ein Script gefunden dass TomsMultiBiController heisst, da funktioniert es. Kann es sein, dass ich bei deinem Driver was falsch konfiguriert habe?
You do not have the required permissions to view the files attached to this post.

Post

dotzspee wrote: Sat Jun 01, 2024 5:40 am Hallo Jürgen... ich habe deine allerneuste Version in der Bitwig 5.2 Beta 5 version installiert. Kann es sein, dass die Funktion "Send Value to device" nicht funktioniert? Mein Controller (Yaeltex) bekommt die daten nicht, wenn ich in Bitwig den einen Drehregler betätige. Ich habe unter https://github.com/Knochenschall/Toms_Bitwig_Scripts ein Script gefunden dass TomsMultiBiController heisst, da funktioniert es. Kann es sein, dass ich bei deinem Driver was falsch konfiguriert habe?
Hallo, das, wonach du suchst (LED Feedback das zurück zum Controller gegeben wird) funktioniert beim generic flexi script nur über "project remotes" -> set parameter 1-8, wenn ich mich richtig erinnere. Irgend eine dieser 'set / toggle parameter 1-8' war es in den Submenüs, wenn ich mich richtig erinnere. Früher hieß das user controls.
Die traurige Nachricht: Ja, das geht immer nur für 8 parameter gleichzeitig, ist also in bank-pages gequetscht.
Bitwig bietet keinen generischen support für bidirektionale Controller Ansteuerung, ziemlich traurig ist das...
Das fällt aber nur Menschen mit "ungewöhnlichen" Controllern überhaupt auf, für die es kein spezifisches Skript gibt - so wie mir (arbeite mit Touch OSC).
Ich kenne auch nur TomsMultiBiController.control.js als script, das Bi-direktionalität ermöglicht, ohne dabei alles in 8-parameter Bänke zu zerstückeln. Wenn ich Javascript/Java können würde, würde ich mein bestes geben, das Generic controller script von Bitwig und Toms Script zu vereinen. Denn Toms Script alleine kann wirklich nur die 'user controls' ansteuern, d.h. alles, was man per Rechtsclick Midi-Mappen kann in Bitwig - alle anderen midi-mappable Elemente aber nicht (!) (wie z.b. das Selektieren von Tracks, oder Bitwigs Shortcut Liste.
----------
Translation so everyone can read:
Hi, what you are looking for (LED feedback given back to the controller) only works with the generic flexi script via “project remotes” -> set parameter 1-8, if I remember correctly. It was one of these 'set / toggle parameter 1-8' in the submenus, if I remember correctly. It used to be called user controls.
The sad news: Yes, it only works for 8 parameters at a time, so it's squeezed into bank pages.
Bitwig does not offer generic support for bidirectional controller control, which is pretty sad...
But only people with “unusual” controllers for which there is no specific script - like me (I work with Touch OSC) - will notice this.
I also only know TomsMultiBiController.control.js as a script that enables bi-directionality without splitting everything into 8-parameter banks. If I knew Javascript/Java, I would do my best to combine the Generic controller script from Bitwig and Tom's script. Because Tom's script alone can really only control the 'user controls', i.e. everything that can be right-clicked midi-mapped in Bitwig - but not (!) all other midi-mappable elements (such as selecting tracks, recarm etc, or Bitwig's shortcut list.).
I built a Looper for Bitwig! :) https://www.youtube.com/watch?v=-z5ywDo2bU0

Post

Hi

I have a question about using the Flexi script with the Launch Control XL. 1. is there a way to have more than 1 user template page - each with its own assignments? also how do I get the bottom buttons to light up when I press them?

Return to “Controller Scripting”