Monthly Archive for May, 2011

Numark Total Control and M-Audio X-Session Pro Mappings for Mixxx

Mixxx’s MIDI scripting engine is amazing. It lets you customize your MIDI controller to a level lower than almost every other DJ software.

A while ago, I made a pretty complex mapping for my M-Audio X-Session Pro. Buttons can perform different actions based on context. For example, holding the headphone button and then pressing another button will perform a different function than just pressing that button in the first place. If you press the headphone button without pressing another button, it will act as a normal PFL toggle button.

I then bought a refurbished Numark Total Control. It has lots of controls and status lights. The existing mapping that was in Mixxx was a bit old, so I decided to write a completely custom mapping. This mapping has a variety of interesting features. Buttons generally have two functions (press the “Key” button to activate the other function). There’s some good looping and hotcue support in there too. Furthermore, depending on whether you have vinyl control enabled or not, some of the controls will behave slightly differently to maximize functionality.

There’s a full table of the features on my Mixxx project page.

Lastly, I started designing a mapping for the X-Session Pro that would allow it to act as an auxiliary controller. This mapping primarily uses all of the buttons as hotcues, again with left and right shift buttons. It also has hotcues for the sampler. There’s a table describing all the features on the page.

CEREBRO – A Brain Activity Visualizer

Cerebro is a system that uses an EEG to measure electromagnetic activity from the surface of the brain and provide a visual display based on that activity. The 8051 microprocessor essentially reads data from an EEG device and, though visualization algorithms, computes a display for a custom-designed LED panel. Hardware communication was done through UART peripheral chips. Additionally, the visualization algorithms are customizable through analog slider board interface. The software was designed to be extremely modular. The main program calls upon libraries to perform tasks such as grabbing and interpreting data packets from the EEG, reading equalizer slider values, and creating and sending packets of data out to the lighting system.

Cerebro was my final project for 6.115, a microcontroller class and one of MIT’s most hands-on courses. I’m a big fan of classes that let you do whatever you want for a final project; it’s really amazing to see the creativity that students have in designing fantastic projects. I plan to reimplement it with a AVR.

I’ve uploaded my report, schematics, and code here.