I am looking for a control panel for Lightroom, Photoshop, Resolve, Solidworks CAD, Blender, .... you can call it a "do it all". To make it even more fun, it should be wireless (BT).
There are some commercial solutions like the Loupdeck ct (expensive and clunky software, that limits functionality, no battery), the XPPen ACK05 (looks great for my usecase but not a lot of info on software support and integration) and the TourBox (which I might consider if this project gets too complicated)
From what I understood the easiest way without programming your own driver is using a midi device and some Midi "translators" to bind custom functions to midi signals (midi2lr for LR and midikey2key for other programs).
My two (and a half) options are:
Buying a commercially available Midi Controller like the Behringer Xtouch Mini (which uses USB) and "making it" Bluetooth with an Arduino. I found this project for doing this with keyboards but I guess Midi over USB isn't quite the same and it probably won't work. Upgrade your USB keyboard to Bluetooth® with this Arduino device | Arduino Blog
the "half" option would be buying the controller and modding it completely to be run by an Arduino. Found some guides to build Bluetooth midi instruments/controllers/pedals like this one: DIY Bluetooth MIDI Pedal – Steve Travale - Sound Design
The only thing I am a bit frightened of is enabling the 2-Way communication (for something like the LED-Rings on the Behringer controller)
Full DIY! All the problems from the above but with more mechanical design necessary and finding appropriate dials and buttons that don't feel cheap. The main Problem won't be mechanical or electronic desing but programming the arduino (since this is my main weak point )
If Option 1 is feasible I would 100% go that route first and then maybe tinker a bit with option 3.
Has anyone ever done this? For me it kinda sounds easy to use a ESP or Arduino+BT module and just "transfer the full USB signal over Bluetooth", but something tells me it isn't that easy.
Someone will certainly enlighten me if one of the solutions is feasible or nudge me in the right direction on my plans. Thanks in advance for any help
I have started on a project that sends actual MIDI over BT. I built a small controller with 2 encoders and 2 faders and an LCD which is (LIPO) battery powered and uses a Pro-mini + HC05 and on the receiving end i have a micro + HC05 which will show up as a USB-midi device.
The basic idea is that it is really simple to transfer an actual midi signal into a bluetooth signal and then receive this.
So if you have a controller that also has an actual midi output (not just USB) then it is really easy to do.
If you built it into that or at least use the same power source, you probably don't even have to do the whole opto-coupler spec, since you can tap into the data signal and the 2 devices (controller and BT sender) do not need to be opto-isolated.
In that case it makes sense to use a board that has onboard BT (like an esp32) for the transmitter since you actually need 2 hw UARTs anyway (i could manage with just one since i am generating the midi internally on the arduino) mind you an ESP32 does use a fair bit more power than the ATmega328P + HC05 combo that i am using.
Ok this gets my hopes up to solve this the easy way. If I understand correctly you just use BT as an intermediate signal so the second arduino translates it back to USB-midi. I would need a connection directly to the internal BT of my macbook, is that possible with your approach or does this need its own driver to work?
If I go this route I am quite sold on the Behringer X-TOUCH MINI which uses USB-Midi if I am not mistaking.
I have not found a way to do that, it would require an additional service to run on your macbook. Mind you i did not look very hard, and i am it is possible to write that sort of software without to much issue. If you find something like that, let me know.
The reason i did not look very hard was that an Arduino-micro + HC-05 was nearly instant, as a solution.
That only has a USB out, which is not what i have been talking about.
That is the way i do it yes.
Midi is a protocol that uses 'Serial' at 31250bps , BT units like the HC-05 tend to work at 38400 which is a bit faster, mind you that is just for their communication with external devices, their transfer speed is a different matter.
You will first have to convert the signal that comes from the controller to BT and then convert it back to midi. It will naturally introduce some latency, but usually with controllers this is less of an issue than with keyboards.
The tutorial I linked in my first post describes a project that seems to just use Bluetooth for sending Midi, all done with a ESP (bc it has BT included).
I thought USB-Midi is a special form of Midi that gets recognized by the Host PC correctly (as MIDI), found this page on the topic: Basics of USB-MIDI – MIDI.org
There it says that midi can be sent via usb or BT, so just "translating" the signal sounds easy (if there is a library for it)
EDIT: If I understand correctly the MIDI Protocoll does support Bluetooth LE and USB, the messages shouldn't be different between those two, now I just need to figure out how to translate it
Yes it is, but even though most arduinos have a USB plug, they are a USB device which means they themselves do not act like a host. I did however find the usbhost library which works on an Arduino Due. And a thread about it on an ESP32 and this library on Github
Yeah i missed that. Well that seems the most simple solution. Just see if you can get it to work.
Ok so doing it wit the 5-Pin Midi is possible, then I just need to figure out how to do it with USB.
But this site kinda makes me to want to build my own... it looks like all I have to do is buy the encoders and buttons and thats it. Does the library support multiple midi layers too?