DrivenByMoss: Bitwig extension for many hardware controllers (version 26.6.1)
-
- KVRer
- 19 posts since 2 May, 2004
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
www.myspace.com/kevinalvesakagift
Baroque, Blackhole, Lost Language, Solaris
Bestport artist: Gift
- KVRAF
- Topic Starter
- 4874 posts since 13 May, 2004
Sorry, no real idea here and without the ability of testing it I am afraid I cannot help you.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.
What function(s) did you use to test this? Are these knob LEDs or buttons?
Can you try something simple like "Play"?
-
- KVRer
- 22 posts since 20 Dec, 2010
Hey Jürgen thanks for taking your time to reply!moss wrote: Sat Mar 19, 2022 8:54 amThat is simply not necessary since you can use pure OSC in Bitwig. See my tutorial series: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
https://www.youtube.com/playlist?list=P ... okJ6SruEpq
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
-
- KVRist
- 51 posts since 3 Nov, 2021
Hey Moss,moss wrote: Wed Mar 09, 2022 8:48 pmNormally 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.Alban18 wrote: Wed Mar 09, 2022 8:34 pmYeah 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.moss wrote: Wed Mar 09, 2022 6:27 pmIs there a manual for the device? I could not find any on the m-audio webpage.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?
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.
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.
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.
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?
-
- KVRist
- 51 posts since 3 Nov, 2021
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?
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?
- KVRAF
- Topic Starter
- 4874 posts since 13 May, 2004
Someone would need to write a specific script for the Oxygen.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?
-
- KVRist
- 51 posts since 3 Nov, 2021
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.moss wrote: Mon Mar 21, 2022 8:56 amSomeone would need to write a specific script for the Oxygen.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?
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.
- KVRAF
- Topic Starter
- 4874 posts since 13 May, 2004
Cancel all appointmentsAlban18 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.
-
- KVRist
- 51 posts since 3 Nov, 2021
Awesome, hopefully I can learn how to write a script good enough to share with you for my keyboard. Thanks for the link.
- KVRAF
- Topic Starter
- 4874 posts since 13 May, 2004
DrivenByMoss 16.1.0 is out!
Get it from http://mossgrabers.de
Enjoy!
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!
-
- KVRer
- 3 posts since 22 Mar, 2022
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!
Thanks again!
-
- KVRer
- 1 posts since 25 Feb, 2021
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.
Hi!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?
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
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!
- KVRAF
- Topic Starter
- 4874 posts since 13 May, 2004
You can use the 8 actions. Zoom actions can be found in "Zooming" and "Arranger".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.
- KVRAF
- Topic Starter
- 4874 posts since 13 May, 2004
Thank you Franco for the detailed analysis! You can switch MPE off in the settings (might be hard to spot since there are so manydeliriodelux 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?
If you are interested to have a deeper integration with your devices simply PM me.
-
- KVRer
- 3 posts since 22 Mar, 2022
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.moss wrote: Wed Mar 23, 2022 8:46 amYou can use the 8 actions. Zoom actions can be found in "Zooming" and "Arranger".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.
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).
