Hello i have a frontier Alphatrackand 2 bcf2000. I am not an expert on the subject but I am interested in the thread
Cheers
I’ve not had time to work more on this, so I might just share my current progress script here.
I do hope Steinberg can make this happen on their end instead though as it’d be a fairly easy thing to do, and they could make it much neater.
If anyone is interested, I have had some good success in switching to MIDI Mode and setting up a custom generic controller in Cubase. If you set the volume and pan to transmit as well, then selecting a track will set the Pan and volume on the X-Touch whatever track you select. Yes, it is a pain having to set all the controls up, including all the transport, but I think it is worth it. The downside of course, is you don’t get any display on the LEDs nor the LCD, but to be honest, for me, I am not bothered as I am sitting in front of my screen anyway, that has all that info.
The other issue is lights, which as standard don’t work of course - e.g. you get no play or record lights on the X-Touch, However, I have found a way to do this using Bome MIDI Translator (BMT) and adding the ‘WK-Audio ID’ device in Cubase settings. I read somewhere else, that it sends out Sysex for everything you do in Cubase - select tracks, turn click on, enable recorders for a track etc. I spent sometime capturing the sysex and figuring out which were the relevant lines, and now use BMT to capture that info and then send the lighting instructions to the X-Touch. So for example, when I enable record on a track, I get a record light on the controller - if I then select a track without Rec enabled, the light goes off. Select one with and it comes on - in other words when you select a track, the X-Touch knows which things are active. I get the transport lights now as well.
The big advantage of using BMT, is that you can set it up so that when you press a certain button, you get a completely new set of MIDI notes or CC’s being sent out. E.g. I have it set that the scroll wheel increases and decreases the clip gain, but if I press the Zoom button, it now nudges the clip instead.
One slight downside to do with adding the WK-Audio controller, is that it uses a Bank of 24 tracks, so you get the white bank indicator on your 1st 24 tracks permanently. But, everything still works outside of those tracks.
I have figured out the ASCII text coming in Sysex from the WK, so just need to figure out how to get that to display on the X-Touch LCD - I know it is possible, as the manual says you can send Sysex text to the screen. So, I may well still be able to get the screen working as well (although not the LED timings).
Still interested in the auto banking in Mackie mode, but this works great! Sorry, if I have gone a bit off-topic here, but it is all related to fixing the annoyance of no auto-banking!
What about having the MCU to be able to “split”? For a multi channel surface it would be useful to have the most right (left to the master) to be following selected. And the split can also be used for other things. For example one group can be assigned to only work with busses while the other is used as it is today.
I haven’t had much time, but I put up what I currently use myself here, and you can give this a go and see if you can get it running.
Important things to note is that this assumes you have a way to set up virtual midi ports.
Things to hack in the script involve midi port names, and potentially the value for number of max jumps to attempt auto-banking. It can’t be infinite, or you’ll be stuck in an infinite loop in the cases where there is no valid bank (such as master track, midi tracks, folder tracks etc).
Also, if you want it to work faster, you can adjust the sleep timer variable to a lower value, but this will come at a cpu cost.
Again, this is very very very proof of concept stuff and inefficient. But it proves the concept can work very well.
Again this is so beta, and will require some small work potentially to get going, but I do have this running myself on MacOS and Cubase 11 Pro with an X-Touch One and it works quite well.
Thanks! I shall take a look at this in the next few days. Your efforts are appreciated!
Hi! It’s great that you tried to make this script for the Behringer X-Touch One and share it with everyone. I also have this controller and it is wildly inconvenient for me to switch banks in a multi-track project. Tell me really to make a small video instruction how it would be possible to use this script for those who do not understand programming? I think a lot of people have tried it and would be very grateful to you.
I think at its current state it’s a bit too hard to use unless you have a little idea of how to run and install python modules possibly.
Technically speaking, it is probably not too hard to make a helper app with a GUI to run this, but unfortunately I don’t foresee having a lot of time to do this right now.
If someone else feels up to the task I’d gladly share what I have found out so far though.
Ideally I hope Steinberg notices this and gives us some sort of option to do this, similar to what Logic already does, as it’s not a huge effort to make it work.
Bad news for us Windows users. This won’t work on our systems. Something to do with RtMidi not allowing virtual ports on Windows. EDIT: It works, check my newer posts.
Thanks anyway for the script, Shor. Hopefully Mac users will have more luck.
For the rest of us it’s up to Steinberg to implement auto-banking in Cubase.
Oh wow really?
That does suck.
Technically speaking you could piggy back off of any other midi devices you have though, so you don’t need to run through virtual devices. That does help though to keep it clean.
Actually, we had another go and, while it still didn’t work, we managed to get some response out of the script. The X-Touch however didn’t work as intended. Most buttons would just play a midi note, and only the Fader Bank and Channel buttons would elicit a response in the script itself (this was using virtual MIDI).
Also, the script didn’t initially run in Python 3.9. We had trouble installing Python 2 with all the necessary modules so we made a few changes to the script in order to get it to run on 3.9.
It seems though that it may be possible to get it to work on Windows after all, but that would require more changes to the script.
It’s also possible that we messed something up since we know almost nothing about Python.
I’m running lemur on Ipad, with a 16 channel MCU, and just simply created two “search” buttons that pop up when none of the select buttons are lit, one for “bank to the left”, one for ‘bank to the right" just until one of the 16 "channel "selected’ buttons are on again, then the script stops ad the buttons disapear. So if I select a channel by mouse, way out of focus of the MCU, it usualy takes a fraction of a second before the MCU on the ipad is showing the selected channel in one of the two banks again. Works for me…
Haha well… it’s something I threw together very much in a proof of concept way.
Where I think you may be tripping up is here:
- These should not be a part of all midi in Cubase, just to make sure it’s not doing dumb things where it shouldn’t be
- The virtual device (or the one actually being used for mackie) is confusingly named. For the midi in port, I set it up to use the midi OUT, and for midi out i use midi IN.
This is a bit confusing, but basically since it listens to cubase, and sends it out to the real x-touch etc… - In Cubase, you set up the virtual/piggybacked device as your mackie controller, not the physical X-Touch.
All communication to and from the X-Touch is done via the script
In Cubase, as I did make it unnecessarily confusing in step 2, I have midi out set to be the midi in on the virtual device, and midi in to be midi out. Feel free renaming this as needed - There’s a variable right now that I can’t recall that sets how many max steps to try to auto-bank before it stops, so keep that in mind as well
- If you have some latency, you can change the sleep timer variable as well
- Sorry, Python 2 is what I used to build this. All python things I build from now on will likely be in python 3 though, but yeah… 2 is what I used so there may be issues there.
This is basically what I do as well, but mine automatically searched when the selected track isn’t in the current bank.
I first scan forward x steps, and then back x steps, and if it finds it, it stops. After a certain number of attempts it stops searching.
Goes fairly quick. But it can be optimized.
OK so actually, after some more fiddling around, we finally managed to get it working! We changed the number of jumps to 100 and the bankCounter to 50, otherwise it wouldn’t handle bigger jumps between tracks. Reaction time varies from nearly instant to about a second in worst case scenarios, but this is still very usable and of course way better/faster than selecting banks manually!
Huge thanks for the script, Shor. Now my X-Touch can finally be more than just a $150 USB hub with pretty lights. If you happen to optimize the script further, let us know.
Haha that’s awesome!
I’m glad it’s working.
Improvements can definitely be made, and I know how to move on with it, it’s just hard to fit in my schedule (which basically means fitting it into my free time where I like to do other things as well).
Again, really killer to hear you got it running. To me it was a game changer for working with my x-touch, and it seems similar to you?
Definitely keep me (and others in the thread potentially) updated if you run into any issues, or any “it’d be good if…” things, as I will definitely make a proper version of this when I find the time, unless Steinberg beats me to it.
Btw a huge downside of running simply virtual devices in the script is that Cubase will (at least on Mac), lose the midi device reference when it restarts, but using a virtual port created by mac os (or using any static midi device) will prevent that from happening. I use the mac virtual port myself.
Doesn’t seem to lose device reference upon restarting Cubase and disconnecting/reconnecting the X-Touch (which has my MIDI keyboards plugged into it). I’m using loopMIDI for the virtual driver btw.
The script is for sure a game-changer for the X-Touch (and other Mackie controllers too I presume?) Funny how someone with some Python know-how can do something Steinberg couldn’t in 11 versions.
Steinberg, that doesn’t mean I don’t want you to implement native auto-banking still.
Ah, loopMIDI is probably what saves you from not losing the device. That’s great.
But yes I agree, I really hope Steinberg implements something like this as well, as it’d be a much much smoother and more efficient way since they know exactly which banks they need to change to.
I haven’t tried this with another mackie controller, so I’m not sure how it performs with a typical 8 channel controller. With 2 controllers it might struggle though, but I wouldn’t know without trying that setup.
Hopefully they look at the vote counts on this, and I hope more people vote on this to get more attention.
OK I’ve been playing with it a bit and I think I may have found my first “issue”.
When it’s searching for a bank it seems to skip some tracks on its way down, usually leading to it missing the track and only finding it on its way back up. Is this intended behavior?
Not intended, but I have noticed something similar happening sometimes
Sometimes it also thinks it needs to change banks when changing within the same bank. I’ve not taken a proper look why, but it is for sure something I can fix when I get back into coding.
Thanks though, I had forgotten about that.