Newbie after some midi project advice

Hi. Totally new to arduino and my computer science skills/knowledge is very very basic, however looking forward to learning something new.

Reason I’m on board is that I’m looking to build a fairly basic foot operated push button midi controller for my lighting dmx controller.

Have seen quite a few units of varying complexity and am wondering if this is possible.

What I eventually would like is to have an 8 button midi controller. my dmx controller is quite basic so I’m hoping the following would be achievable using code.

6 buttons to manually select different lighting scenes - 1 button per midi signal
1 button to chase through scenes - sending 4 or 5 different bits of midi data on a loop with a delay between each transmission
1 button as a tap tempo for the above - adjusting the time between the midi transmission.

Without going in-depth, does that sound like something that will work and is achievable for a novice, with a bit of expert assistance.

Thanks.

Dave

I think this is definitely feasible for a beginner. Especially the 6 first buttons are quite easy. The tap tempo part will require some programming, but nothing too complicated.

For the first part, you could use something like this:

[color=#5e6d03]#include[/color] [color=#434f54]<[/color][b][color=#d35400]Control_Surface[/color][/b][color=#434f54].[/color][color=#000000]h[/color][color=#434f54]>[/color] [color=#434f54]// Include the Control Surface library[/color]
 
[color=#434f54]// Instantiate a MIDI over USB interface.[/color]
[b][color=#d35400]USBMIDI_Interface[/color][/b] [color=#00979c]midi[/color][color=#000000];[/color]

[color=#5e6d03]using[/color] [color=#5e6d03]namespace[/color] [color=#000000]MIDI_Notes[/color][color=#000000];[/color]
 
[color=#434f54]// Instantiate an array of push buttons that send MIDI notes[/color]
[b][color=#d35400]NoteButton[/color][/b] [color=#000000]buttons[/color][color=#000000][[/color][color=#000000]][/color] [color=#434f54]=[/color] [color=#000000]{[/color]
  [color=#000000]{[/color] [color=#000000]4[/color][color=#434f54],[/color]  [color=#000000]note[/color][color=#000000]([/color][color=#000000]C[/color][color=#434f54],[/color] [color=#000000]4[/color][color=#000000])[/color] [color=#000000]}[/color][color=#434f54],[/color] [color=#434f54]// Pin 4, note C4 on MIDI channel 1[/color]
  [color=#000000]{[/color] [color=#000000]5[/color][color=#434f54],[/color]  [color=#000000]note[/color][color=#000000]([/color][color=#000000]Db[/color][color=#434f54],[/color] [color=#000000]4[/color][color=#000000])[/color] [color=#000000]}[/color][color=#434f54],[/color]
  [color=#000000]{[/color] [color=#000000]6[/color][color=#434f54],[/color]  [color=#000000]note[/color][color=#000000]([/color][color=#000000]D[/color][color=#434f54],[/color] [color=#000000]4[/color][color=#000000])[/color] [color=#000000]}[/color][color=#434f54],[/color]
  [color=#000000]{[/color] [color=#000000]7[/color][color=#434f54],[/color]  [color=#000000]note[/color][color=#000000]([/color][color=#000000]Eb[/color][color=#434f54],[/color] [color=#000000]4[/color][color=#000000])[/color] [color=#000000]}[/color][color=#434f54],[/color]
  [color=#000000]{[/color] [color=#000000]8[/color][color=#434f54],[/color]  [color=#000000]note[/color][color=#000000]([/color][color=#000000]E[/color][color=#434f54],[/color] [color=#000000]4[/color][color=#000000])[/color] [color=#000000]}[/color][color=#434f54],[/color]
  [color=#000000]{[/color] [color=#000000]9[/color][color=#434f54],[/color]  [color=#000000]note[/color][color=#000000]([/color][color=#000000]F[/color][color=#434f54],[/color] [color=#000000]4[/color][color=#000000])[/color] [color=#000000]}[/color][color=#434f54],[/color]
[color=#000000]}[/color][color=#000000];[/color]
 
[color=#00979c]void[/color] [color=#5e6d03]setup[/color][color=#000000]([/color][color=#000000])[/color] [color=#000000]{[/color]
  [b][color=#d35400]Control_Surface[/color][/b][color=#434f54].[/color][color=#d35400]begin[/color][color=#000000]([/color][color=#000000])[/color][color=#000000];[/color] [color=#434f54]// Initialize Control Surface[/color]
[color=#000000]}[/color]
 
[color=#00979c]void[/color] [color=#5e6d03]loop[/color][color=#000000]([/color][color=#000000])[/color] [color=#000000]{[/color]
  [b][color=#d35400]Control_Surface[/color][/b][color=#434f54].[/color][color=#5e6d03]loop[/color][color=#000000]([/color][color=#000000])[/color][color=#000000];[/color] [color=#434f54]// Update the Control Surface[/color]
[color=#000000]}[/color]

Pieter

MIDI and DMX are different standards for different purposes.

It's possible to make a MIDI-to-DMX converter and that has been done but there is no standardized way to translate between MIDI & DMX commands so it's very specific to a particular situation and I wouldn't do it unless you already have a MIDI show/setup and you want the lights to synchronize with the existing MIDI.

You can of course, make a programmable DMX controller that runs programmed scenes/sequences and it's fairly common for a DMX controller to have an analog audio input/trigger so the lights can respond to the loudness or beat, etc. (That's not a "precise" as MIDI input.)

Thanks PieterP, looking forward to having a go at this.

DVDdoug. I work with midi and dmx quite a lot so am relatively up to speed there. My dmx contoller is quite basic but does enough for a particular rig I use. One of its features is a midi control input, hence the need for hands free controller. The mid map of the controller includes scene, scene bank & chase changes as well as blackout.

Thanks

Dave