Inspiration
Djing is an art form that to this day remains quite removed from its audience. Most other forms of performance and live music put the creator in plain view allowing for the listener/viewer to appreciate the creation of the art along with the creator. For example, when you watch a live band, it is easy to understand the way that the different artists are creating their music—you see the singer singing, the guitarist strumming, and the drummer drumming. This allows for a greater appreciation of the art form from the listener and creates a more engaging performance. Djays however are usually placed behind some kind of table and their ‘instrument’ is hidden from the audience. Thus, most listeners don’t understand how much skill is required to mix music live.
The goal of this project was to create an instrument that makes djing a more engaging and performative art form. This dj mixer could be performed live for an audience and allows the listeners see how the music is being mixed in a visually appealing and intuitive way.
What it does
Our solution was a dj mixer that distills the essential functions of a djay controller down to a smaller set of controls and houses these inputs in a more ergonomic manner on a frame that can be played like a guitar. All functions are controlled by an ATMega328p that is interfacing through serial communication with a computer using MIDI commands. Given that the instrument can be played live and interfaces with any standard DJ software, I believe that the solution turned out to be successful and additionally quite visually appealing as it has a set of LED strips that flash inside the instrument while the music is playing.
How we built it
The final product is a fully functional DJ controller mounted upon a guitar-like frame containing 6 buttons, 3 potentiometer knobs, and 3 slide potentiometers, all connected to an Arduino. In addition 3 LED strips are mounted on the setup to provide a lighting component.
The slide and rotary potentiometers are connected to six ADC pins and are constantly being polled to send their values via the MIDI protocol. The six buttons are all connected to input pins that send MIDI control notes whenever a HIGH-LOW or LOW-HIGH edge is detected on the pin. Thus a click and release send two separate serial commands. The three LED strips are connected to a pin on the board that outputs control logic to flash them different colors every cycle.
After the board is programmed with the correct logic to output MIDI and the LED flashes, the Arduino’s ATMega16U2 must be reprogrammed into a MIDI device in order to allow the whole system to be treated as a controller as opposed to consistently having to open a serial connection in order to output MIDI commands every time the board is replugged in. Once the board is plugged in then, it interfaces with the DJ software (in our case MIXXX) and is treated like any usual DJ controller.
Challenges we ran into
A major learning point from this experience was the whole process of planning, developing and then building a device. The time management of physical building and coding was very important. But more importantly was the way we pivoted and addressed design changes, such as switching from analog to digital mixing. This efficient and well thought out adjustment allowed us to create an even more compelling product. However, we spent a lot of time coding the Arduino, which left us very little time to build and wire the guitar frame. Therefore, even better time management and starting with some of the physical parts of the project earlier could have been beneficial. The main obstacle in this project was trying to understand how to make the ATMega328 output MIDI commands and act like a ‘DJ controller’ in software rather than a device that needs to open a serial connection every time it is plugged in.
Accomplishments that we're proud of
Overall, we believe that the product was a success as it is a single unit that looks clean and can flawlessly execute mixing—with exactly the accuracy needed for a DJ controller. We are especially proud of how the physical device which can be used by an actual DJ in a show with any standard DJ software.
What we learned
The two major learning successes were understanding and executing the serial communication through the MIDI protocol as well as the power management of the whole system. The serial communication took a long time to understand as we had to first decode how MIDI commands are sent, then emulate them using USART packets sent one-by-one to the computer. The power management was quite an ordeal as we had to power each potentiometer and the LED strips, so we created two different sources of power, 1) the Arduino 5V pin which fed all the potentiometers, 2) a 5V 10A DC power supply to power the LED strips. However, the transmission lines connected to LEDs had to be grounded to the Arduino, so a lot of soldering and wire management was needed to get all the pieces to work cohesively. Moreover, the neat combination of all the electronics within one physical frame was also very helpful. We also learned a lot about audio mixing itself and are finally ready to start our side career as DJs.
What's next for The Mixiode
Looking forward, the next step for this project would be to add more buttons and potentiometers to add more features to the audio mixer. Since we are only limited to the amount of pins on the Arduino, expanding to the limits of the board would be ideal.

Log in or sign up for Devpost to join the conversation.