After reading Ean's post (link) on creating a mapping to show the pre-fader VU meter on your controller. I thought it would be cool to create a dedicated one with leds.
Here is the result:
And also a small video of it in action:
It uses a Teensy 2.0 and a Adafruit NeoPixel stick.
If you guys are interested, I could create a how-to and publish the code.
Cool! Don't you love the Teensy? They're so fun to use.
Fantastic Steffex, I've just done almost exactly the same thing a couple of days ago, with a midi fighter clone I built and an arduino leonardo, I was going to put a led per button in + a seperate lot for a VU meter. I've made mine so that you can adjust the colour of each led by adjusting the R,G,B colour channels via a note on message on channels 2 and 3 for 7 and 8 bit values, the first 16 notes are for Red, then next 16 for green and the last 16 for blue.
For actually playing the leds, it responds to note on/off messages (0-16) on channel 1 and velocity messages will change the overall brightness on the fly.
there's 1KB of space on the leonardo eeprom, I found that there's probably enough eeprom to do upto 32 leds with 2 colours which would take 512b of space, clearly you can do upto 64 leds but then you won't have any spare space left for storing other settings.
I plan to add some effects and eeprom storage so that the user can set their own colours and save them.
Steffex, be careful with the current draw on those LEDS, at full brightness, all colours on, that strip of 8 LEDs will draw 480ma, that's probably just about on the limit for a standard usb socket, you may want to consider powering the LEDS seperately.
Last edited by ReggieUK; 02-25-2014 at 08:33 AM.
I forgot to mention, I would also be happy to share code and ideas, the code I originally used is open source, it's fairly messy because it's written to be used on about 8 different arduino variants (teensy, teensy2, arduino mega, uno etc.) but I intend to clean it up for my specific board which is the same chip as a teensy 2.
I have 2 lots of code too, I have a standalone unit which is just LEDs and reacts to midi and the 2nd, as mentioned in my previous post is part of a midiifighter clone, so I've essentially made a spectra (I just have to figure out how to mount them sensibly inside a case.
The nice thing about the neopixel stick it has a nice library to address all the leds, so not a lot of code is used to get it working. Currently i've it setup that the colors are fixed, so using different notes could be a nice feature.
A good note on the current draw, but it shouldn't be a issue. The constant current is around 18mA per pixel, so i'm in the clear on that one. Also the brightness of the pixels are 1/8th of the maximum in the video, more than bright enough.
I think you might need to re-read the adafruit website, the value I got of 60ma per pixel came from there, it's around 20ma per colour per pixel.
As for using the neopixel library, yeah, it's great, that's exactly what I used :-)
I added some eeprom code last night so that I can save off settings for the colours, which also uses the LEDs to indicate to me what it's actually doing.
I've actually got 2 bits of code I'm working on, a standalone set of lights like yours and a set of lights attached to a midifighter clone with a bit extra, I've added support for rotary encoders and now I've got the eeprom code in there, I can setup some registers to allow the user to set modes on the encoders etc. I've also ordered an arduino mega2560, so I can make a unit with 32 buttons instead of 16.
they kind of do and kind of don't save money, the price of mega2560 on ebay is about the price of a leonardo + an mcp
And I don't have to do any soldering, I actually wanted 3 types of unit, one sort of like yours but more leds and all the colour change and eeprom stuff that I've written + some effects I'm going to write, a standard midi fighter classic with RGB leds that a friend and my son want and a mega-midifighter with other stuff on it for myself.
I really want to go to town and add 'smart' encoders as well, where you can change the output type depending on the software you're using fruity loops for instance only responds to encoder data that is using cc 96 and cc 97 respectively. Whereas serato is a little less selective and traktor doesn't care.