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

Post Reply New Topic
RELATED
PRODUCTS
Bitwig Studio 6$399.00Buy Maschine

Post

Hi! Yes its pretty programmable with the software they include called Kilowatt. I have everything setup right in the controller software. Feedback works just fine in Ableton, just not in Bitwig. I used midi monitor to spy on messages, and the Arduino in test mode. I see the feedback when buttons are mapped in Ableton. I dont see it when in Bitwig. I am really stumped. The only thing I think of is something changed in Flexi. Is there any other options to try, that you would recommend? I am out of ideas, and your pretty smart at this stuff! Thank you so much.
Kevin

www.myspace.com/kevinalvesakagift

Baroque, Blackhole, Lost Language, Solaris

Bestport artist: Gift

Post

giftmusic wrote: Sat Mar 19, 2022 8:20 pm Hi! Yes its pretty programmable with the software they include called Kilowatt. I have everything setup right in the controller software. Feedback works just fine in Ableton, just not in Bitwig. I used midi monitor to spy on messages, and the Arduino in test mode. I see the feedback when buttons are mapped in Ableton. I dont see it when in Bitwig. I am really stumped. The only thing I think of is something changed in Flexi. Is there any other options to try, that you would recommend? I am out of ideas, and your pretty smart at this stuff! Thank you so much.
Sorry, no real idea here and without the ability of testing it I am afraid I cannot help you.
What function(s) did you use to test this? Are these knob LEDs or buttons?
Can you try something simple like "Play"?

Post

moss wrote: Sat Mar 19, 2022 8:54 am
Dipe wrote: Wed Mar 16, 2022 2:31 pm Ohh thank you so much that would be awesome! I also wondered if it is possible to send midi cc values via virtual midi loop channels and your flexi script? i am trying to accomplish sth similar like in this video but its not working as i hoped :/

i also tried the generic controller script but it has only 1 midi in and no out
That is simply not necessary since you can use pure OSC in Bitwig. See my tutorial series:
https://www.youtube.com/playlist?list=P ... okJ6SruEpq
Hey Jürgen thanks for taking your time to reply!

I already watched all of your videos many times. However i cant code until now (workin on it) and wasnt able to create the page i have in mind. The Ideal scenario would be to have one simple page with around 8 faders and 8 buttons for instace. It would be awesome if those buttons/faders could be quickly maped in bitwig with the midi learn function inside the workspace and/or in the shortcuts menue (to assign the launch next scene command to it for instance).
This would be a tremendous timesaver during the production process with a touchscreen.
The only idea i came up would be to rearrange your user tab somehow. However for me it wasnt possible to map the user controls to some of bitwigs controls. For Example the mapping on solo/mute buttons or inside the shortcut/controller menu didnt work out.

As i said because i cant code its super hard to edit the script or even change the parameters of cloned user parameters to change them individually. Somewhere i read that i have to adjust the bank size in the settings of your script to have access to more than 8 user paramets at a time, is this right?

Again thank u for all your ongoing help and if you could just give me some small hints how to solve this problem it would be fantastic :clap: :)

Post

moss wrote: Wed Mar 09, 2022 8:48 pm
Alban18 wrote: Wed Mar 09, 2022 8:34 pm
moss wrote: Wed Mar 09, 2022 6:27 pm
Alban18 wrote: Wed Mar 09, 2022 3:12 pm Hey TJ,

So you are basically saying the labels don't matter, but the cc# does? And to get my midi cc#, I have to use a midi monitor?
Is this midi monitor a software I can download? If I can get this HUI script, how do I apply it to my controller in Bitwig?
Is there a manual for the device? I could not find any on the m-audio webpage.

The upper part in Generic Flexi is a MIDI monitor. If you press a button and nothing is showing up, the controller does not send anything (at least on the port you selected). I think there is also an editor for the controller, if yes, you can check what commands are supposed to be send by specific buttons/knobs.

As TJ suggested above, check if it supports HUI or MCU (MCU would be better) out of the box and then use my HUI/MCU implementation.
Yeah so yes m-audio does have an editor which is the main reason I came here. The play button midi cc# is different from the cc# that your midi monitor generated. So I didn't know if I was basically messing stuff up when I assigned the play button transport using midi cc# 93 when my m-audio editor says the play button uses cc# 4.

I will check what my controller supports when I get home but I believe that I use an MCU script that Bitwig has in it's controller scripts. I would continue using that but I was having problems using my controller whenever I would finger drum while recording which would start desyncing and just throw off the timing horribly. But that only happens when my midi input is on. When I turned it off, I can record my drums fine.

But your script is amazing that I can assign each button on my controller a parameter in my daw and save it without having to midi cc learn everything everytime.

But yeah basically, I get a different cc# from my editor when flexi or just no cc# is populated. But since my m-audio editor cc# is different from the labels, I was hesitant to assign stuff.
Normally such editors support different templates. Could be that you are looking at the wrong one or it is not the one that is active/transmitted to the controller.

Also check out the MCU implementation coming with DrivenByMoss. This gives you much more options and is up to date compared to the stock Bitwig one.
Hey Moss,

So I think my problem was understanding how inputs and outputs work. I'm still fuzzy with it but I think I know a bit more.

So apparently MCU isn't fully functional with my controller after testing. The Bitwig scripts that work so far are generic 'midi controller' and 'controller'. Now, when I select my controller in either of those scripts, the only thing that works is my keys, pitchbend, and mod wheel. My faders or transport buttons don't work though.

So how did I get my transport buttons to work in Bitwig before? Well I opened a new script and used MCU Pro and chose Input = 'Midiin3 (Oxygen Pro 49)' and output = 'Oxygen Pro 49'. So basically I used the 'midi controller' script to play my keys and used the MCU Pro script for my transport.

So basically, when I chose flexi script to set up my buttons, it seems like I have to have a different script to play my keys, pitchwheel, and mod wheel; and the flexi script to map my transport buttons and faders.

Is their anyway I could only use one script or do I have to just stick with this method?

Post

Okay, my flexi script now works like this:
Output: Can be anything except none. Flexi doesn't work if output is none.

If input = 'oxygen pro 49' then keys, pitchbend, and mod wheel work but transport and faders don't work
If input = 'midiin3 (oxygen pro 49)' then transport and faders work but not keys, pitchbend, or modwheel.

So I believe I need two scripts for flexi,
1st script
input = 'midiin3'; output = 'Oxygen Pro 49' for my transport and fader
2nd script
input = 'Oxygen Pro 49'; output = 'Oxygen Pro 49' for my keys, pitchbend, and mod wheel.

Is this the only option? Is their another option to only use one script?

Post

Alban18 wrote: Sun Mar 20, 2022 6:19 pm Okay, my flexi script now works like this:
Output: Can be anything except none. Flexi doesn't work if output is none.

If input = 'oxygen pro 49' then keys, pitchbend, and mod wheel work but transport and faders don't work
If input = 'midiin3 (oxygen pro 49)' then transport and faders work but not keys, pitchbend, or modwheel.

So I believe I need two scripts for flexi,
1st script
input = 'midiin3'; output = 'Oxygen Pro 49' for my transport and fader
2nd script
input = 'Oxygen Pro 49'; output = 'Oxygen Pro 49' for my keys, pitchbend, and mod wheel.

Is this the only option? Is their another option to only use one script?
Someone would need to write a specific script for the Oxygen.

Post

moss wrote: Mon Mar 21, 2022 8:56 am
Alban18 wrote: Sun Mar 20, 2022 6:19 pm Okay, my flexi script now works like this:
Output: Can be anything except none. Flexi doesn't work if output is none.

If input = 'oxygen pro 49' then keys, pitchbend, and mod wheel work but transport and faders don't work
If input = 'midiin3 (oxygen pro 49)' then transport and faders work but not keys, pitchbend, or modwheel.

So I believe I need two scripts for flexi,
1st script
input = 'midiin3'; output = 'Oxygen Pro 49' for my transport and fader
2nd script
input = 'Oxygen Pro 49'; output = 'Oxygen Pro 49' for my keys, pitchbend, and mod wheel.

Is this the only option? Is their another option to only use one script?
Someone would need to write a specific script for the Oxygen.
So that means I currently need two scripts. Okay, I think that's still fine as I can just set my parameters on the script that uses the transport and fader knobs.

I heard you teach people how to write their own scripts, what are some good places to start? I mostly code in Python to write scripts but know some Java.

Post

Alban18 wrote: Mon Mar 21, 2022 1:40 pm I heard you teach people how to write their own scripts, what are some good places to start? I mostly code in Python to write scripts but know some Java.
Cancel all appointments :D

Post

moss wrote: Mon Mar 21, 2022 1:58 pm
Alban18 wrote: Mon Mar 21, 2022 1:40 pm I heard you teach people how to write their own scripts, what are some good places to start? I mostly code in Python to write scripts but know some Java.
Cancel all appointments :D
Awesome, hopefully I can learn how to write a script good enough to share with you for my keyboard. Thanks for the link.

Post

DrivenByMoss 16.1.0 is out!

Get it from http://mossgrabers.de
  • MCU
    • New: Added hardware profile for Behringer X-Touch.
    • New: EQ calls up new EQ mode which always edits the parameters of the EQ+ on the track.
    • New: INST calls up new instrument mode which always edits the parameters of the first instrument on the track.
    • New: DROP duplicates the selected track.
    • New: SOLO deactivates all solos, Shift+SOLO deactivates all mutes.
    • New: If 'display track names' is enabled and track mode is active, only the name of the selected track is displayed instead of the volume label.
    • New: Setting to use 7 characters in the display instead of 6 characters and a blank character. Makes sense for devices which do not have one large display but 8 separate ones which have a space in between already.
    • New: Setting 'Display colors (Behringer X-Touch)' enables the display back-light colors on the Behringer X-Touch and X-Touch Extender models.


Enjoy!

Post

Hi - first thanks so much for all the work you've put into this. I have a new midi controller and got it working pretty quickly with the generic flexi device. I see that there are scroll/pan options for the track and clips - I'm confident I can get those working once I tell my controller to send relative positions from the encoders rather than absolute. Are there options to control zoom? I'm considering wanting to map an encoder to the zoom of the detail editor, so that I can zoom/pan around with encoders while I'm using my mouse to enter notes. I didn't see something like this in the flexi config but I might have missed it.

Thanks again!

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.
moss wrote: Sat Mar 19, 2022 3:13 pm
Don't have a Yaeltex for testing but tried with a different controller and the feedback was working fine. Are you sure it accepts the same CC message as it uses for sending? Maybe you changed something?
Hi!

I am Franco, developer of Yaeltex's controllers.

Thanks for the hard work on this script!
It's really useful to integrate with our controllers.

After some back and forth testing with @giftmusic, we found the issue with his feedback to be a mix of the configuration for MPE done in the most recent version of the script and our RPN message feature.

Configuration of MPE on the script:
https://github.com/git-moss/DrivenByMos ... .java#L128 (https://github.com/git-moss/DrivenByMoss/blob/05586928ee26c37ed46e518b5e9089249f37df79/src/main/java/de/mossgrabers/framework/daw/midi/AbstractMidiOutput.java#L128)

Whenever activating the script, even with MPE off in every slot (I think it defaults to this), it sends this chain of messages to the controller:

Code: Select all (#)

PORT              MSG   CHN     PAR     VAL
MIDI_USB:         B	0	79	0
MIDI_USB:         B	0	101	0
MIDI_USB:         B	0	100	6
MIDI_USB:         B	0	6	0
MIDI_USB:         B	15	79	0
MIDI_USB:         B	15	101	0
MIDI_USB:         B	15	100	6
MIDI_USB:         B	15	6	0
MIDI_USB:         B	0	101	0
MIDI_USB:         B	0	100	0
MIDI_USB:         B	0	6	48
MIDI_USB:         B	0	79	0
MIDI_USB:         B	0	101	0
MIDI_USB:         B	0	100	6
MIDI_USB:         B	0	6	0
MIDI_USB:         B	15	79	0
MIDI_USB:         B	15	101	0
MIDI_USB:         B	15	100	6
MIDI_USB:         B	15	6	0
Last messages received are CC 101, CC 100 and CC 6, which are also used for RPN messages (http://www.philrees.co.uk/nrpnq.htm), and our controllers support these.

So when receiving this chain of messages, our controllers are waiting for the last CC message (CC 38) to be received to complete the full RPN message, or any other CC to unblock this state of reception.

But this doesn't happen unless there is some CC message mapped, which the script would send to the controller to update its value.
Note messages at this point are also blocked and this is something to improve on our side.

Luckily we found the issue and we already fixed this to not block further events, while still being able to decode RPN messages.

Maybe there should be a global configuration for the controller's script for MPE enabling/disabling, so these messages can be turned off?

Cheers!

Post

harmlessM wrote: Tue Mar 22, 2022 6:59 pm Hi - first thanks so much for all the work you've put into this. I have a new midi controller and got it working pretty quickly with the generic flexi device. I see that there are scroll/pan options for the track and clips - I'm confident I can get those working once I tell my controller to send relative positions from the encoders rather than absolute. Are there options to control zoom? I'm considering wanting to map an encoder to the zoom of the detail editor, so that I can zoom/pan around with encoders while I'm using my mouse to enter notes. I didn't see something like this in the flexi config but I might have missed it.
You can use the 8 actions. Zoom actions can be found in "Zooming" and "Arranger".

Post

deliriodelux wrote: Tue Mar 22, 2022 9:09 pm Last messages received are CC 101, CC 100 and CC 6, which are also used for RPN messages, and our controllers support these.

So when receiving this chain of messages, our controllers are waiting for the last CC message (CC 38) to be received to complete the full RPN message, or any other CC to unblock this state of reception.

But this doesn't happen unless there is some CC message mapped, which the script would send to the controller to update its value.
Note messages at this point are also blocked and this is something to improve on our side.

Luckily we found the issue and we already fixed this to not block further events, while still being able to decode RPN messages.

Maybe there should be a global configuration for the controller's script for MPE enabling/disabling, so these messages can be turned off?
Thank you Franco for the detailed analysis! You can switch MPE off in the settings (might be hard to spot since there are so many :-)).

If you are interested to have a deeper integration with your devices simply PM me.

Post

moss wrote: Wed Mar 23, 2022 8:46 am
harmlessM wrote: Tue Mar 22, 2022 6:59 pm Hi - first thanks so much for all the work you've put into this. I have a new midi controller and got it working pretty quickly with the generic flexi device. I see that there are scroll/pan options for the track and clips - I'm confident I can get those working once I tell my controller to send relative positions from the encoders rather than absolute. Are there options to control zoom? I'm considering wanting to map an encoder to the zoom of the detail editor, so that I can zoom/pan around with encoders while I'm using my mouse to enter notes. I didn't see something like this in the flexi config but I might have missed it.
You can use the 8 actions. Zoom actions can be found in "Zooming" and "Arranger".
Thanks - I was originally trying to have a relative encoder value so twisting right zooms in and left zooms out. That's not currently possible right? I have clicking an encoder mapped to zooming in and clicking the one next to it for zooming out for now.

Also, I didn't see a way to scroll/pan the detail editor window. Does that exist? (I found scrolling which track is selected, but I'm talking about the detail editor window where you enter notes).

Post Reply

Return to “Controller Scripting”