Hi there, this is my first post and I am pretty new to all this.
I was wondering what the best way would be to convert receiving DMX data into midi protocol (USB), in order to control a synthesizer patch running on a bela system via the USB port.
I am doing the sound for an art installation which includes dynamic inflatable sculptures driven by blowers as well as lights. Everything is controlled by DMX. As the sound needs to be synchronous to movements and lights the idea is to control sound parameters with DMX as well. Basically include my bela device into the DMX chain so that everything can be controlled from one desk/node. The bela has a usb port and midi would be the most straight forward in order to control parameters. I'd need 4 cc messages in total corresponding to 4 DMX addresses.
I've looked through the forum as well as the net and there is a lot of information on how to convert midi to DMX but not the other way around.
I guess my first question would be more hardware related. Like what DMX shield would be a good option? For example "CQRobot DMX Shield MAX485"?
Which Arduino board? Would a uno be sufficient? Or rather a ARDUINO MEGA 2560 REV3 for example. Would I be able to get the midi out of the USB port or is there another USB shield needed?
Once I know I've got the right hardware I would probably need some help with a code as well.
My arduino experience is very limited. I build a couple of midi controllers with teensy boards and managed to get it all working but this seems to be on another level.
So suggestions, help or putting me in the right directions to find information would be greatly appreciated.
The DMX communication is done over an RS485 bus, which is handled by a DMX shield.
The MIDI communication can be handled over the standard USB or through a serial MIDI connection (5-pin DIN)
So an Arduino UNO or MEGA would fit the bill as you can send MIDI messages using the MIDI library for Arduino
I've not used it myself but the Seeed Studio DMX Shield or SparkFun DMX Shield are probably OK.
You would receive DMX Data and Map DMX to MIDI CC ➜ for each of the 4 DMX addresses you want to control, map them to corresponding MIDI Control Change messages and send them over using the Arduno library. It should not be too complicated (but I've never done that)
Neither the Arduino Uno nor the Mega support MIDI over USB natively. You'll need a microcontroller with a built-in USB interface. See Control Surface: MIDI over USB for a list of boards that support USB MIDI.
At first sight, a Leonardo seems to fit the bill. It has native USB support, you can use the hardware UART for DMX, and the form factor should be compatible with most DMX shields.