-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add DAW Controller support for various Arturia controllers #743
base: main
Are you sure you want to change the base?
Conversation
Build for testing: |
Thank you very much for this contribution @soyersoyer. Unfortunately I don't have the matching hardware to test this with, but I am sure many users will find this extremely useful. Semi off topic: Do you know any good/straightforward documentation how the display and encoder on the Keystep communicates with the host over USB? It just so happens that recently I was thinking about building something the other way around (unrelated to MiniDexed), a simple microcontroller + display + encoder combination that does what a Keystep can do (e.g., to browse presets of the free Analog Lab Play), but without needing an actual Keystep. |
Well users of this specific MIDI controller maybe, but I'm really not sure about hardcoding support for just one vendor's device in MiniDexed... In that SysEx message, 0x00, 0x20, 0x6B is the Arturia SysEx Vendor ID - right? It's a little hard to tell as I didn't seem to be able to find any mention of the MIDI implementation of Arturia devices from the manufacturer themself. Do you have a link? If we were to go down this route, then I think we'd have to have some way of querying a connected device and mapping MiniDexed features to the features of the device itself rather than hard-code in specific SysEx messages in my view. Do we know what other controllers support displays and how they do it? @probonopd you weren't keen on me adding bespoke SysEx to MiniDexed to support this kind of thing between MiniDexeds, so I'm a little surprised you seem quite happy to be considering adding bespoke vendor MIDI messages other than Yamaha...? Kevin |
Do you think KeyLab? KeyStep doesn't have a display. In the MiniLab 3 there is an 'Arturia' program for Analog Lab, but I don't know how it communicates. Probably after an initial model query, the main Encoder sends relative CC-s, the other encoders send absolute CCs, the Analog lab sets the encoder values on preset change and updates the display with sysex. If you think, I can capture it. For the DAW mode, I found this:
This is a very popular controller, so I think it might be worth adding. Additional vendors may be added later.
Yes
From Arturia, No. We can send generic device inquiry with You are right, the DAWDisplayEnabled config option is too broad and should enable some auto-detection mode. |
787cbe1
to
0211e16
Compare
Build for testing: |
@soyersoyer You beat me to it while planning to do the same. It works with my MiniLab3 (firmware 1.1.1). The only issue is the Dumping MIDI to console which seems not reliable. Also you don't configure the any of the available sliders, knobs to actual functions like Pan, Volume etc. Let me take a look. |
0211e16
to
0b55ac6
Compare
I refined it a bit. Now it does a sysex inquiry and only sends sysex if it is MiniLab3 or KeyLab 3 Essential. Does this fix your MIDI issue? |
Build for testing: |
0b55ac6
to
fd5e834
Compare
Build for testing: |
fd5e834
to
c692205
Compare
Build for testing: |
c692205
to
4f88b13
Compare
Build for testing: |
|
How should they work? Should they send CC-s to channel 1? |
4f88b13
to
98788fa
Compare
Build for testing: |
Now, it maps the encoders. Also updates the encoders values at performance load from TG0. Unfortunately the pads cannot be configured to send CC-s in DAW mode, they send notes only on channel 10. What I want also:
|
98788fa
to
d1140e2
Compare
Build for testing: |
d1140e2
to
9f174f6
Compare
I think the encoders should set the parameters based on the menu, so if the display is on the TG1, it should set the TG1 parameters, if on the performance, it should set all TG-s parameters, if it is on the effects it should set the effect parameters. I will try to make this later on a different branch. |
Build for testing: |
9f174f6
to
bb72a25
Compare
32bbc25
to
1614b92
Compare
News:
|
Build for testing: |
That should show up only during boot time. Where and when do you see it? |
I only ever see the version on my pirate display. The output and buttons work, I'm playing sounds, everything is as expected, except the screen only ever shows the version. Whereas with the same config and the vanilla version, it showed the menu. On the newest build. Absolutely loving the arrows, the _ when at the end, and the text. Very elegant. Great update!! I'm enjoying pressing shift to see what the knob values are. I'm not so sure I love the by default showing the list of what does what. It looks very busy and jumbled. Though I get it's a lot of info and a very small screen. Do we really need that inélégant reminder of what's what? Slightly related. I'm still thinking I'd enjoy the behaviour to be context sensitive to where in the menu I am.. on the root, I guess info is better than just showing "TG1" all the time. But when I'm in TG2 already, I'm doing something there and I'd prefer the behaviour and inputs to support what I'm doing in that menu. I'm probably there to change things in that TG, so I'd prefer seeing that menu instead of the root info; and the inputs to change what I see on my screen and not all active TGs. (Instead of for example changing all voices of all active TGs.) When on the root, it does make sense to change all active ones. |
After rereading the latest posts, I see there is context aware stuff 🎉 Sorry for missing that. Poking through a bit more. However, the letter salad gets really heavy in the effects part; and while efficient, I was kinda surprised to be able to edit all in the first level effects menu. That said. Effects rotator 1 says compress, while 2 doesn't say Reverb, it confusingly says enable instead. (Not editing the previous post to not risk messing up the photo) Update. A thought on on/off selectors.. right now it looks like on is 90+ and below, off. I think I'd enjoy the choices to be spread over the range. (Kinda 100/options) ie 2 options to change around 50; 3 around 33, .. most do that but the binaries don't seem to. Update. And of course, something more to do for the sliders too, while we're at it. Though they definitely don't enable easy stable settings like the knobs do. Fun fun |
@GertSchepens what do you see on your RPi screen after booting with the normal firmware (not the one from this PR for Arturia controllers), when no USB controller is connected to it at all? |
1614b92
to
53937ae
Compare
Build for testing: |
53937ae
to
b797c8b
Compare
Build for testing: |
This is the merit of Arturia, it's the only way to set it up :)
I'm trying to put the encoders on as few pages as possible, maybe this is better than scattering them by type.
I'll check it.
That's a good idea, it can be solved.
Is there a better idea than the volume of the first 4 active MIDI channels?:) What I also thought about was that there could be encoder pages where there are individual values for the Operators, e.g. 6 output levels, or 6 detunes, etc. News:
|
b797c8b
to
dcf937f
Compare
News:
|
Build for testing: |
At some point I'm going to need a proper MiniLab 3 👍 |
dcf937f
to
d67c64c
Compare
Build for testing: |
News:
I miss the All TG menu a little bit now. But if there is a Unison mode, I don't think it will. |
d67c64c
to
133a088
Compare
News:
|
Build for testing: |
MiniLab 3 Keylab Essential KeyLab Essential mk3 KeyLab mkII based on https://github.com/PrzemekBarski/arturia-keylab-essential-mk3-programming-guide Tested on a Arturia MiniLab 3 and KeyLab mkII Keylab Essential and Keylab Essential mk3 is not tested
133a088
to
80490a7
Compare
Build for testing: |
Some Arturia keyboards have a Display and this can be used to display the menu.
I also added support for relative encoders, which sends 61 62 63 for decrement and 66, 67, 68 for increment.
With this config the MiniDexed can be controlled well with MiniLab3's Main Knob and Display in DAW mode:
The Home is the shift+Main click
Keylab Essential, Keylab Essential 3, KeyLab mkII work also