Where to start with MIDI controllers?

Started by ramonovski, December 09, 2014, 08:28:47 PM

Previous topic - Next topic

ramonovski

Hi,

I'd like to make my own MIDI controllers (ala Voodoo Lab Ground Control Pro, Molten Voltage, Disaster Area) but I don't have any idea on where to start.

I'm not expecting to find a step-by-step tutorial on how to make a controller from scratch, but just a direction on what to study or which are the components involved in those devices.
Hopefully this will be just a beginning to jump into the DSP world.

By the way, I have experience in high-level programming languages (Java, Perl, PHP, Ruby) and I have built my own analog stompboxes as well, if that helps.

Thanks.

Digital Larry

Strictly speaking MIDI is not DSP.

Here's the general idea though.  MIDI is a very simple serial protocol that can send 1, 2 or 3 byte messages in order to accomplish things.  So you should definitely track down the MIDI spec and understand what is possible.  Most MIDI controllers are going to send some combination of continuous controller messages and program changes.  You should also understand how a UART works which lets you send serial data from your program across the MIDI cable.

Suppose you were reading the value of a pot connected to a microcontroller's A/D convertor and wanted to send this value as a continuous controller message.

You sit in a loop checking the value and since you don't want to constantly send messages with the same value on them, you wait for it to change by some amount.

You might also want to do some scaling and offset, since CC messages have a range of 0 - 127, and your A/D input might have more bits and it might not go all the way to zero or all the way to full range at the extremes of the pot motion.

Come back with any questions you might have.  I never developed a MIDI controller but I did design a MIDI guitar preamp that had a pretty extensive controller implementation/mapping to internal parameters.
Digital Larry
Want to quickly design your own effects patches for the Spin FV-1 DSP chip?
https://github.com/HolyCityAudio/SpinCAD-Designer

deepMago!

Take a look at Midibox (www.ucapps.de) I think it's very interesting.

Yazoo

There is a basic Midi foot pedal project at AVR Freaks if you want a simple start. It's the Midi foot Controller by Simonetta.

Hatredman

Kirk Hammet invented the Burst Box.

ramonovski

Thanks for your replies, I will check on every concept you guys have mentioned and I will get back when I get stuck.

A basic thing I'd like to achieve first is just to build a device (server?) that could send a signal (CC?) to another device (client?) and maybe an LED that blinks once the signal is in the other side.

Thanks.

G. Hoffman

If you already have some programing skills, that makes things a lot easier.  Most microcontrollers these days are still programed in C, as C is better at directly controlling the hardware, but it's really up to you, and which IDE you have, and how you plan on designing things. 

First, look at the MIDI protocol* - it's almost 40 years old, by now, so it is pretty simple.  Next, I would look at a bunch of the commercially available controllers - the Ground Control, the Rocktron MIDI Raider, the Liquid Foot Plus series, the CAE stuff, the Skrydstrup SC1, and the RJM MIDI Mastermind GT.  Download the manuals, and see how they work from a user's point of view.

Your first decision is where to put the memory - in the foot controller, or in the client.  This is a complicated issue, but it is probably easier to let the client deal with the memory, but it is more powerful to let the foot controller have the memory.  (Many people actually use a mix of the two, to be honest.)

I spent the better part of 5 years trying to get myself together enough for this, but I just never really had the programing skills to pull it off.  I had a lot of false starts, but in the end I ended up buying a Liquid Foot.  I haven't finished putting together the system, but so far I'm pretty pleased with the Liquid Foot's power.


Gabriel


*(sorry that link is a bit overwhelming - I used to know a really great, much simpler overview, but the site is gone)

ACS

Check out the MIDI CPU by Highly Liquid. Cool little bit of kit that could take a lot of the hard work out of it for you...

http://store.highlyliquid.com/products/midi-cpu