Closed tylerstraub closed 2 years ago
Hi, yes, MIDI is quite a universal protocol in my opinion and would suit Blaize 3. I recommend implementing a MIDI learn mode that lets users select a button/slider in Blaize an then press/move an element on their midi controller to connect to.
Remotely controlling Blaize has been on my todo list for some time, although I will probably use the Art-Net protocol to be able to use lighting control software as my remote controller and include Blaize in a "conventional" event lighting setup.
Have fun implementing, I look forward to your results!
Okay so, I am closing this thread out because I have deviated in my approach.
As you mentioned, the most practical use case for Blaize is on a separate machine, remotely controlled through a network protocol such as Art-Net.
After reverse engineering the TCP interface that is already somewhat roughly implemented I have come away with this:
// TRS DOCUMENTATION FOR BLAIZE EXPECTED TCP DATA STRUCTURE
- messages are split on new line (/n)
- messages expect a C value (address registry) and a V value (data registry)
// CHANGE CURRENT PRESET
- C values of 0-31 trigger preset changes (V value must be 0)
ex:
C10V0 (switch to preset 10)
// CHANGE COLORS
- value 32 triggers color buttons
- selectable V values for colors are a range from 0-7
0: RED
1: YELLOW
2: GREEN
3: CYAN
4: BLUE
5: MAGENTA
6: WHITE
7: RANDOM
ex:
C32V1 (change color to yellow)
C32V1/nC32V6 (change color to green and white when multicolor enabled)
// CHANGE BUTTONS (on/off)
- values 36-42 seem to toggle on/off buttons with value 0-1 (some do nothing?)
36: MULTICOLOR
37: BLACKOUT
38: BPM
41: LINE MOVE
// CHANGE SLIDERS
- C values of 44-47 control the main sliders with a V range of 0-100
44: SPEED
45: SIZE
46: BRIGHTNESS
47: STROBING
50: SHADING
My approach to enable indirect MIDI support is now going to be from a Max for Live patch. I intend on doing all of the MIDI bindings here, and having the Max patch connect directly to the TCP socket and forward stream the value changes there.
I will share this patch when it is complete! Also creating an external settings.cfg file the processing sketch can read from to configure certain functionality like output resolution settings, explicit target display definition, and configurable port number for the TCP server (maybe other things too...)
Art-Net interface would be cool someday too :)
I really want to help this project get decent midi support for interface control, is this a viable control mechanism?