This is a simple (
A way to get full control over a variety of lights-
Using existing music software (
Ableton live, logic, bitwig, garage band, pro tools, etc).
It also allows simple interfaces with programming environments such as pure data, MaxMSP, processing, and other languages.
It is ideal for sorting lights for live music performances, performing algorithmic light programming, mapping sound analysis, Internet data, or sensor data to any number of low-cost lights.
This will turn on the cheap DJ lights and turn them into flexible and expressive tools/instruments.
The elegant lighting performance of on-site technical equipment is easy to do this.
It turns out it\'s hard to find a good, supported, cheap DMX controller.
There are a lot of expensive DMX controllers with proprietary drivers.
There are a lot of cheap DMX controllers with little documentation. (
Although many of these days are copied from the uDMX project).
Some of them work intermittently, some work only on windows, and some work only in specific cases (unexciting)
DMX control software.
The UDMX project is the only open source option with full documentation, but in my experience,
Not so good.
It suffers from choppy frame rates and frequent exits, and on top of that, all the units I \'ve tried are barely responsive in a variety of software applications.
There is a basic design flaw: it relies on your computer to send DMX frames.
If your computer is processing audio (
For example, from pure data or Max)-
Your audio dropped badly.
In addition, your DMX frame rate is also affected due to different computer and USB bus performance issues.
As a huge fan of the Teensy micro controller board-
I contacted designer Paul Stoffregen who kindly shared some simple, fast and reliable DMX code that worked well on Teensy. (
The code is available in step 3! )
I then programmed Teensy to a USB midi device and converted the midi cc to a DMX channel value. (
Map cc number directly to DMX channel number).
Midi is my preferred control protocol for most things
Because there are so many kinds of software to send and receive.
I have been using this solution professionally.
In this example, teensy not only sends DMX to all these LED light bars, but also reads 9 ultrasonic ranges for motion detection.
A normal computer handles all sensor readings, DMX processing, animation design, and sound generation and processing.
I designed a PCB to make the circuit easy to build and assembled quite a few PCB with the students in the interactive course at Portland Community College.
These instructions will provide everything you need to build this simple, inexpensive, stable, ultra-fast usb midi and hardware midi DMX controller.
Don\'t calculate some kind of shell and some kind of light to control-
The total cost of the project is about $40. For lights -
You can build your own products using LED strips and DMX relays.
You also need a power supply if you go this way.
Or you can use a ready-made DMX lamp like this, or even a lamp with a motor control head (
You can also control all motion parameters with this board).
XLR cables are also required for each lamp.
Any lights from any vendor who says DMX and XLR jacks should work!
It\'s easy to find powerful RGB par-style lights for around $80.
PCB or breadboard.
You can make this circuit quickly and easily on the breadboard.
I prefer to use the PCB as they are stronger, easier to install, etc.
They are faster and easier to build.
I designed a PCB.
You can get it through OSHpark via this link.
If you don\'t want to order 3 copies (
This is the minimum requirement for OSHpark and you can also write to me to see if I have it.
1 Teensy USB board-
I used three.
Cheaper LC should also work in theory
Pinout is compatible.
I just haven\'t tried it.
Buy $9 worth of parts from Ozawa.
You also need a soldering iron, some soldering tin and some wire cutting machine. A micro-
Usb cableA computers that can run Arduino Software, and some software that can send midi.
DIYers note: The XLR connector in my parts list below is designed to be installed on the PCB
Therefore, you need to use a different Jack and work out a panel installation solution (
If you use a breadboardAlso -
For people who do not use the PCB layout file below-
Although the schematic diagram shows the PC110 optical coupler-
It is actually wired and laid out for the sharp pc900 v optical coupler.
If you use the PCB and parts list below, this is not something you have to worry about or consider --
But if you are designing your own PCB or building it on a breadboard or board,
Solder resistors, capacitors and chips on the board.
This build is simple.
Even if you have never welded before, you can definitely build this.
Take a look at the welding guide for Adafruit!
Make sure the 3 chips are in the right direction. (
The cutouts or dots on the small ic should match the cutouts on the pcb screen printing, and Teensy should be installed on the USB jack facing out).
Weld two connectors.
Please note that the hardware midi part of this project was not tested at the time of writing-
Also not included in the code.
Now, the project has just been tested and worked as a USB midi device.
The hardware midi port may work with a little bit of teensy programming-
So, implement it if you want!
Download Arduino Software.
Download the teensysaid plugin.
Both are installed.
Download the two attached program files and put them in a folder.
Ino file for Arduino program.
You should see two labels.
One of the DMX codes with Paul (called dmx. cpp)
And other major arduino codes.
Do the following: Tools-> Board -> Teensy 3. 2Tools -> USB type -> Midi (
This makes the device appear as a generic midi device for any software on any operating system. )
Click the upload button to program teensy.
If teensy software pops up and asks you to reset teensy.
Look at your light Manual.
Make sure that the lights that receive the DMX are installed and note which DMX channels do what.
There is often a DMX implementation chart with a list of channels in the manual.
Connect the standard XLR/mic cable between the lamp and the MIDI2DMX.
An easy way to test the controller is to use the attached pure data patch.
If not, please download pure data.
This is great, if you didn\'t have it before, it\'s a great way to start using it!
Insert MIDI2DMX and start pure data.
Orders are important-
If the device is inserted after the PD is started, your device will not appear.
Go to the media menu and select Midi settings \".
Select Teensy Midi from the output device drop-down menu.
If you have a midi keyboard
Select it as the input device. Open DMX_test.
PdGo to edit menu-
Make sure the edit mode is not selected.
Then play with the other sliders.
If you have a lamplike many)
1 Channel response red, 2 channel response Green, 3 channel response Blue, 7 channel response intensity-
You should be able to see some colors
If your light needs a different channel
Switch from menu to edit mode (or using cmd-e or ctl-e)
And change the second term in the message box below the slider to correspond to any channel you want to try to control (again -
This is in the manual that comes with your light).
The number of times a message combination needs to test more channels.
You can draw midi Automation lanes from any DAW
Just make sure you send to the correct CC (
If your lights are the same as mine
Cc2, cc3, cc7).
You can connect multiple lights with an XLR cable without any setup-
Any lights you link together will behave in exactly the same way at the same time.
If you manually set the DMX address on each lamp (
Details in your lighting manual)-
You can independently control the lights of up to 127 channels.
If you need more channels
You can do more programming for Teensy, mapping specific midi channels to the range of 127 lights.
4 channels can be mapped to all 512 possible DMX channels.
This is beyond the scope of these instructions-
But very feasible!
Pd shows how to convert RGB and hiv color values to messages that can be sent to lights.
Google has a great color picker tool that will give you 3 RGB numbers you need to program any color. hsv2rbg.
Pd is the abstraction that other patches rely on.
All of these pd patches need to be placed in the same folder in order to work properly. DMX_color_organ.
Pd has a simple midi mapping using Scriabin\'s pitch
This patch will make your lights play from the midi keyboard (
Or midi sequencer).
This means that you can write with normal midi notes from sequencers like Ableton Live, Logic, Bitwig-
As well as hardware sequencers such as MPCs and ocatracks.
This is my preferred way to customize lighting programming for live PA.
All you need to do is set the midi input of the PD to a virtual output of the DAW, or the physical input of the hardware sequencer.
Pd uses pd to demonstrate sound height and amplitude tracking and to convert it to the color and intensity of the light.
You have to make sure you have an audio input set in PD (Media -
> Audio settings)-
The microphone on the laptop should work properly.
For this job-
You need to click on the main PD window (
Or select window> Pd Window)
And select the \"dsp\" checkbox.
If you whistle, sing or play music
The ball will be detected and converted to the color of the light
The greater the music/sound, the brighter the light will be.
All these patches work fine on Raspberry Pi
This is also out of scope for these instructions, but it\'s great for hardware settings!