Midi devices conception - Guidance - Page 1
Forum section: electronics / beginners

author: japasetelagoas
author_rank: Regular Contributor
timestamp: June 08, 2016, 02:11:22 am
content: Hi everyone, Third year Electrical Engineering student here, I was wondering if anyone could guide me with this future project. As you can see from my avatar I live in Brazil and it's basically obligatory to present a study on a topic you feel like to whenever you're about to graduate. I have always been a music production lover, used to have a studio where now my lab resides (still have the studio gear though) and I'd like to lean towards the "studio gear" on this particular study. At first I was thinking about a synthesizer but figured out that the amount of time available (2 years) to finish my graduation might not be enough to master everything related to the synth, from PCB design (which I'll have to master anyways) to DSP processing (quite difficult according to a dude on Reddit). My idea now is, what about a midi controller? Not just a keyboard type thing, but pads, different designs, something like this.http://www.controllerism.com/wp-content/uploads/2013/12/black-orange.pngI've never seen anything like it in the Brazilian market, we always end up buying Native Instruments, M-Audio, etc (not cheap with our taxes).Of course, I can't state that I'll be able to make an affordable product, especially with the 2.5 times the cost of the product presented by David on his product economics video which he uploaded this week.Long story short: Where should I begin? Reference videos, books, anything that might get me started.Thanks a lot.

author: JPortici
author_rank: Super Contributor
timestamp: June 08, 2016, 03:40:56 am
content: Start by knowing the standard thoroughly. a good reference to know by heart:http://www.blitter.com/~russtopia/MIDI/~jglatt/tech/midispec.htmwith this you should alredy have enough knowledge to build a midi controller (with midi over a serial connection)your first test program should be something like "toggle a LED when any valid data is received"then "toggle a LED when a specific message/kind of message is received"then maybe "dim different LED using different CCs"and only then "transmit a note on message when pressing a button, a note off when releasing the button"then understand how handle switch debouncingthen "transmit a CC using an analog input"when you'll arrive at this point you will basically have all the ingredients you need.Another nice touch will be the possibility to reassign functions, maybe via a pc application that will communicate with the serial port and you store all the parameters in the mcu's eeprom or flashOnly at this point i would dare to consider midi over usb. How you will handle the usb part is up to the specific family of microcontroller, but there are usually examples for the driver and the stack (there is the one in the microchip MLA for pics with usb that i'd like to try one day or another)My suggestion is to use an MCU you know or you want to learn because if you go and do this with 8 bitters you will have to work at least on pure C with little to no abstraction (i.e. only the usb stack) . forget about arduino uno if you want lots of buttons and sliders and lights.this should cover all the computational part. about the actual design, that's up to you. one commercially available solution is livid instruments. you might want to check that out

author: japasetelagoas
author_rank: Regular Contributor
timestamp: June 08, 2016, 03:55:47 am
content: Quote from: JPortici on June 08, 2016, 03:40:56 amCan't thank you enough for this reply. Really appreciated!

author: Cervisia
author_rank: Regular Contributor
timestamp: June 09, 2016, 08:32:27 am
content: QuoteTheMIDI specificationitself has been made freely available recently.QuoteThere are many µCs with USB support, but very few already have a USB MIDI implementation:http://electronics.stackexchange.com/questions/87601/implementing-a-class-compliant-usb-midi-device

author: japasetelagoas
author_rank: Regular Contributor
timestamp: June 16, 2016, 06:32:45 pm
content: Quote from: Cervisia on June 09, 2016, 08:32:27 amThanks for the link Cervisia, some good info there too.

author: uncle_bob
author_rank: Unknown
timestamp: June 17, 2016, 01:20:36 am
content: HiAt it's heart Midi is a fairly simple protocol. Studying it and understanding it is a reasonable thing for you to do. Since you *have* gear that sends and receives Midi, looking at real examples is not very hard.But:To look at Midi transactions, you need something that will capture them for further analysis. Since you probably need this anyway, I'd add it to the project. If you implement this all on a small MCU (ARM demo board) it will not be to crazy to do. If you pick the right board, you should be able to port the useful parts of the code to your final design.Bob