I went looking for MIDI foot controllers again yesterday and was once again put off by the price, size, complexity, etc. of what I found. I've done this several times now. I have the Behringer tank/aircraft carrier thing, but it's, um a little oversized. (And I hate programming it.) So, I've got this idea in my head of building one using one of the little Arduino embedded boards as the brain. I think this part would be pretty easy. There's a decent MIDI library for Arduino and I've written a MIDI controller in software before.
If I'm going to do this, I'd kinda like it to be a useful project in general instead of just focused on the one thing I have in mind. So, I was wondering if there would be others here interested in teaming up to work on this.
The features I'd like to see would be:
- Compact
- Multiple foot switches
- Expression pedal or CV input
- Simple read out options, two line LCD or simple 7 segment numbers
- Battery powered with Li-Po batteries and onboard 9V recharging input
I think most of these would be pretty simple to include. The only on I can see being a bit of a problem is the battery charger because all these parts are SMD. They don't have a lot of pins though, so it wouldn't be too bad.
Anyone interested?
This is a cool idea.
Fact is, that one (of two) things that actually got me into this DIY-hobby was an idea to build a plain expression/wahwah pedal with midi out. Because - as far as i know - there is no such product out there. The closest should be Line6 FBV Express MKII, which i were close to buy once, but i got put off because it didnt work with my (the old) version of POD 2.0, and the floorboard are rather expensive for what it does. Anyway, I thought - and still Think - i need a toy like that for guitar recording in a full digital DAW Environment.
So i did some research, found a wah shell, and i was verrrrrrry close to buy me some PICKIT programming stuff. Though, during research, i also found info about how to build your own tubescreamer... and since then I havent came back to that midi thread..., that wah Shell is still empty ;D.
I have wanted to make one for my Strymon Timeline FOREVER but never really nailed down how I wanted to do it. I have seen some make them from Arduino's which I have a few laying around but just need to read up some more. I would love to see where your project goes and maybe I need to revisit mine and we can share some ideas.
Cody
Quote from: Vallhagen on July 11, 2013, 07:59:46 PM
...
Anyway, I thought - and still Think - i need a toy like that for guitar recording in a full digital DAW Environment.
...
Since you were looking at using a wah shell, I take it that you were mainly interested in controlling effects parameters by mapping MIDI CC's to the parameter in the DAW. That should be pretty doable. Would you need USB input for MIDI over USB or would you go with straight MIDI connectors. I think having MIDI over USB would be nice, but I think it's a bit more complicated.
Quote from: selfdestroyer on July 11, 2013, 08:47:48 PM
...
I would love to see where your project goes and maybe I need to revisit mine and we can share some ideas.
That would be great. Here, at the beginning stages, input about possible uses and what it would need to be able to do would be great. It looks like there are a few ways that this could be done and it would help to narrow down which way to go just by knowing how something like this might be used.
Quote from: RobA on July 12, 2013, 12:01:03 PM
I take it that you were mainly interested in controlling effects parameters by mapping MIDI CC's to the parameter in the DAW. That should be pretty doable.
Yep, that's exactly what i am lookin for. Definately doable, even simple, at least in theory. Its really just to translate the expression moves (one pot) to midi 0-127. If i remember right, i actually solved it theoretically: i found some info on the web with a similar idea.
What i should need to learn is two things; get into midi programming and the technique in programming EPROMs, i havent done that since early 90-s. (or maybe it isnt really EPROMs nowaday? EEPROM? Flash?).
I remember i looked at "Pickit", but you talk about Arduino. Is there any important difference, that makes Arduino better?
But then again, my DIY-work took Another direction. But u get me into thinkin that i should pick up this idea again. I can do some "backresearch" and see how far i was...
Cheers
I would be interested in this but I am not doing Ardunio as I think one of those buggers is enough but if you are interested in PIC programming and development I can help out.
Quote from: Vallhagen on July 12, 2013, 12:59:00 PM
Quote from: RobA on July 12, 2013, 12:01:03 PM
I take it that you were mainly interested in controlling effects parameters by mapping MIDI CC's to the parameter in the DAW. That should be pretty doable.
Yep, that's exactly what i am lookin for. Definately doable, even simple, at least in theory. Its really just to translate the expression moves (one pot) to midi 0-127. If i remember right, i actually solved it theoretically: i found some info on the web with a similar idea.
What i should need to learn is two things; get into midi programming and the technique in programming EPROMs, i havent done that since early 90-s. (or maybe it isnt really EPROMs nowaday? EEPROM? Flash?).
I remember i looked at "Pickit", but you talk about Arduino. Is there any important difference, that makes Arduino better?
But then again, my DIY-work took Another direction. But u get me into thinkin that i should pick up this idea again. I can do some "backresearch" and see how far i was...
Cheers
Two things make using AVR/Arduinos nice for this. There is an Arduino library for doing MIDI that is pretty complete. It's probably overkill for doing just the expression pedal. It would be useful for doing more advanced MIDI stuff like clock syncing and such. The scond is how easy they are to program and load the software on. If you are using an actual Arduino, then you just need a USB connection to your computer and the Arduino programming environment. Even if you just go with bare AVR's (or PIC's for that matter) the programming is quite a bit easier than doing EEPROM's etc. They pretty much all have some form of ISP connection where it just takes a simple program that has a USB connection to your computer.
Depending on what you are looking to control, you may want to use the mod wheel or breath controller output instead of a general CC. The higher bit depth definitely helps to avoid zippering.
Quote from: Thomas_H on July 12, 2013, 01:00:13 PM
I would be interested in this but I am not doing Ardunio as I think one of those buggers is enough but if you are interested in PIC programming and development I can help out.
I don't understand what you mean by "one of those buggers is enough." Is there an Arduino based MIDI foot controller project out there that's pretty complete? I've seen a few people using Arduinos for specific MIDI controller projects, but they were pretty much aimed at doing the control for a specific performance or task.
The primary reason I was looking at an Arduino based system was for ease of programming for everyone involved. For working on general microcontroller projects, I've got programmers for ARM, AVR, and PIC. But most people don't, so I figured Arduino would make it easier to collaborate as a group.
The other thing is that although I like the PIC processors, they have specific issues with their complier licenses that make them unworkable for me in an open source/open hardware setting. It's unfortunate because the PICs have some really useful features for audio, especially the dsPICS. In the end, the newer ARM cortex stuff is well above the capability of PICs and has good support for open source projects. So, I've decided to work with AVR processors for lower level stuff and ARM MCU's for things that need more power.
I was going to build myself something similar, and this looked like the best (and most flexible) option.
Pretty cheap too.
http://www.analoguehaven.com/doepfer/pocketelectronics/ (http://www.analoguehaven.com/doepfer/pocketelectronics/)
Livid instruments also make somethings similar (in a modular format).
Just found this, which looks even better, is USB powered, and is cheaper.
Gonna buy one and make my own foot controller me thinks.
http://shop.lividinstruments.com/brain-jr-starter-kit/ (http://shop.lividinstruments.com/brain-jr-starter-kit/)
The Doepfer stuff is so very cool. I've wanted one of their ribbon controllers for a while now. But, the prices in the US are way too much, especially compared to what they are in the EU. I wish they would find some more distributors here.
The Brain thing looks nice. I can't find the programming info. Can you program it? Do you need to program it? Need more info. Guess I'll have to watch the vids, but it's too early and my ears aren't awake yet.
Here you go:
http://wiki.lividinstruments.com/wiki/Brain_Jr (http://wiki.lividinstruments.com/wiki/Brain_Jr)
If Midi control is all you are after, and you factor in the time required programming an Arduino etc. the Brain Jr appears to be a erm.... no brainer (excuse the pun ;))
Thanks for the link. I did watch the video and then found the software editor and then from there got the link over to the manual. (It looks like they wrote the software editor in Max. It's clunky.)
I'm not sure, but it looks like the CC's are limited to the 7 bit value (0, 127) CC's, which I've found can be a problem with some effects where being able to use the full mod wheel/breath controller resolution helps. But, depending on what you are looking for, it could be a really easy way to do it. Although, using a small AVR processor to do this would only cost about $2(US). So, I'm still kinda leaning that way for even the really simple task.
For the main thing I need to do with it, I need to be able to use the foot switches to send bank and program selections. I can't figure out yet if that's supported.
Over all though, for building up customized MPC like controllers with lots of switches and buttons, this could be pretty slick. I'll have to keep reading to see if can figure out if it can be configured to do what I need.
I think I've hit a the thing that will make it so I can't use the Brain Jr. It doesn't look like it's got a MIDI jack, just MIDI over USB. That's great for the direct computer interface, but kills it for what I need. I'd have to move up to the full Brain V1 and that pretty much prices it right out of the range for this.
Still, this does look like a really cool set of tools. You could probably put together a pretty slick force sensitive drum controller for not a whole lot of cash just using the Brain Jr and some force sensors and accelerometers.
Quote from: RobA on July 12, 2013, 01:47:40 PM
Quote from: Thomas_H on July 12, 2013, 01:00:13 PM
I would be interested in this but I am not doing Ardunio as I think one of those buggers is enough but if you are interested in PIC programming and development I can help out.
I don't understand what you mean by "one of those buggers is enough."
Sorry to have been so unclear. I just meant that learning to program the features of one microcontroller family is enough for me personally.
You are absolutely right in what you say about Ardunio beeing simple and easy to be used by eveyone but I am not a big fan of the shield technique and the costly boards when the only thing you need is a 2€ microcontoller With USART implemented and a few analog inputs to get done what you need. its just too much overhead.
This is my personal opinion of course ;)
For both of you guys, and I'm sorry to derail the actual thread...
I've debating getting into programming for about 2 years now. The problem has always been I have no idea where to start. I agree with Thomas in that I'd rather get into microcontrollers because I don't want to have to buy a new board every time I want to build something, but I think the process of getting into MC is harder than getting into Arduino.
So, long story short - how do I get into MC, or should I just go for Arduino? If so, I know I need some software (for my mac) and I need at least a board for attaching to the computer, and then I need to get some chips. THEN I need to learn how to use it all and make the MC do stuff I want it to do.
How does one dive into this stuff?
Jacob
Hi Jacob,
Some general stuff that is true for both controller families:
All microcontrollers feature an on-board programming interface meaning that there are a few I/O pins on the controller that can be used as an programming interface.
So what you do is that you put the controller of your choice on a cheap prototyping board like this: https://www.olimex.com/Products/PIC/Proto/PIC-P18-20MHz/
Then you need a programming adapter between your computer and the prototype board like this: https://www.olimex.com/Products/PIC/Programmers/PIC-KIT3/
This programming adapter is controlled by your favourite Development Software (in case of PIC this is MPLAB, a programming GUI based on Netbeans)
In this Software you code in Assembler or C what you wish the Controller to do. (reading the 300 pages data sheet of the controller in question is real fun :-( )
MPLAB IDE is also available for MAC, so that will work for you.
The major point in using PICs is that there are so many different ones available that picking the right one is quite a task. You need to know how many digital I/O ports you need, how many analog, how many PWM / Comperator ports, if you need a hardware USART for MIDI and so on.
Once you have that you need an idea about memory needed (that is programming memory (code) data memory, flash memory, eeprom memory for long time storage ...
Then you have an idea about speed and size of the target controller ...
Then you pick the right one and start programming.
Everytime I use a new feature (i.e analog ports) I fall into the traps that open up and I need to learn how to avoid them.
Then I use the next feature(i/o interrups) and fall into the next one ...
Ardunio does not have so many different controllers out there, thats true, but where is the fun in it?
Finding the right 8 pin $0.45 controller and making a perfect circuit around it is the real fun, isnt it?
Apart from having fun I also think that when it comes to size there is no way around using PICs.
Feel free to ask any specific question on this topic and I will try to answer it.
If your question was more focused on a real "get me started" I could send you the code for my ultimate switch so you can get an idea how such a chip is programmed.
Quote from: Thomas_H on July 13, 2013, 06:00:08 PM
[...]
Sorry to have been so unclear. I just meant that learning to program the features of one microcontroller family is enough for me personally.
You are absolutely right in what you say about Ardunio beeing simple and easy to be used by eveyone but I am not a big fan of the shield technique and the costly boards when the only thing you need is a 2€ microcontoller With USART implemented and a few analog inputs to get done what you need. its just too much overhead.
This is my personal opinion of course ;)
I understand what you mean now and that makes sense to me. Just keeping straight all the options for one family can be a pain.
I agree about the shields too. There are little boards though that you can use pretty much as a DIP in a bigger circuit and those are what I had in mind. Also, you can program using Arduino libraries straight to one of the little ATTinys if you have a programmer. So, you don't have to use the Arduino boards at all if you don't want to.
Quote from: jkokura on July 13, 2013, 06:05:12 PM
For both of you guys, and I'm sorry to derail the actual thread...
I've debating getting into programming for about 2 years now. The problem has always been I have no idea where to start. I agree with Thomas in that I'd rather get into microcontrollers because I don't want to have to buy a new board every time I want to build something, but I think the process of getting into MC is harder than getting into Arduino.
So, long story short - how do I get into MC, or should I just go for Arduino? If so, I know I need some software (for my mac) and I need at least a board for attaching to the computer, and then I need to get some chips. THEN I need to learn how to use it all and make the MC do stuff I want it to do.
How does one dive into this stuff?
Jacob
The Arduino stuff provides a nice library to get you started and does simplify the programming at the start. But, it also has some limitations and doesn't really get you that much. If I were starting again, I'd skip the Arduino stage and go straight to programming the microcontrollers. You already have the circuit building skills needed to put together the microcontroller portion of the circuits any way. So, the Arduino isn't getting you anything there either.
I've gone through comparing the AVR's and PIC's pretty extensively. They both have advantages. The thing that made me go with AVR is the development environment support for open projects. The PIC environment is actually quite nice. But, they've crippled it by removing optimization levels from GCC in the free versions. The paid for versions are too expensive to ask everyone to pay for working on an open source project. In the end, I think this is the reason that Arduino is based on AVR as well. Atmel is much more supportive of open source projects. The free development environment from Atmel is Windows only, so that sucks. But, they fully support development with GCC and there are several OS X based development environments that are good and free. I do all of my development on OS X, so I can point you at the links for what I use if you decide to go that way.
The other option is ARM. If what you are really looking to do is digital audio processing, this is the way to go. If that's what you are looking for, I can give you pointers here too.
I'd say, start with an Arduino Nano (around €8 from Hongkong) to get a quick start on this.
Direct MIDI out (5-pin DIN) is almost trivial. For easy MIDI over USB follow http://shiftmore.blogspot.de/2010/01/quick-and-dirty-arduino-midi-over-usb.html (http://shiftmore.blogspot.de/2010/01/quick-and-dirty-arduino-midi-over-usb.html) (add €4.50 for the interface).
If you need more i/o ports, look into multiplexing with CD4051s.
For coding you don't really need a MIDI library. Just open the serial port and write bytes there.
Later you can always switch to other microcontrollers.
Quote from: kothoma on July 14, 2013, 11:31:58 AM
...
For coding you don't really need a MIDI library. Just open the serial port and write bytes there.
...
True. But, the library is nice if you want to do things that involve stuff like SysEx and clock syncing. For just sending data out on a channel, you don't really need it though.
I was looking around at resources for this idea yesterday. For anyone interested in doing this with straight AVR's and want to do USB based MIDI connections to your computer, here are a couple of links that give you just about everything you need,
http://www.obdev.at/products/vusb/index.html (http://www.obdev.at/products/vusb/index.html)
http://cryptomys.de/horo/V-USB-MIDI/index.html (http://cryptomys.de/horo/V-USB-MIDI/index.html)
It looks very doable and pretty easy for that matter.
Quote from: RobA on July 11, 2013, 03:45:54 PM
- Battery powered with Li-Po batteries and onboard 9V recharging input
Hm, what about phantom power (over midi cable)?
Quote from: kothoma on July 14, 2013, 12:15:39 PM
Quote from: RobA on July 11, 2013, 03:45:54 PM
- Battery powered with Li-Po batteries and onboard 9V recharging input
Hm, what about phantom power (over midi cable)?
That's a great idea. Do you know relative numbers of how many MIDI devices source power? For my use, it's pretty much a perfect idea since I'm going to use it for a device I design on the other end too. I'm just wondering for a more general setting.
It could be done with using USB power too if the receiver side is a USB host for the USB over MIDI path.
Quote from: RobA on July 14, 2013, 12:36:58 PM
Quote from: kothoma on July 14, 2013, 12:15:39 PM
Quote from: RobA on July 11, 2013, 03:45:54 PM
- Battery powered with Li-Po batteries and onboard 9V recharging input
Hm, what about phantom power (over midi cable)?
That's a great idea. Do you know relative numbers of how many MIDI devices source power? For my use, it's pretty much a perfect idea since I'm going to use it for a device I design on the other end too. I'm just wondering for a more general setting.
It could be done with using USB power too if the receiver side is a USB host for the USB over MIDI path.
You could always put a little box at the other end, that provides "midi through" and adds DC to one side.
Yeah, this would certainly simplify things. I guess I was just looking for an excuse to use some of these Li-Po battery packs that are coming out all over the place now ;D. They look like so much fun to play with. I guess I'll have to find some other excuse to buy one.