Author Topic: Midi devices conception - Guidance  (Read 2103 times)

0 Members and 1 Guest are viewing this topic.

Offline japasetelagoasTopic starter

  • Regular Contributor
  • *
  • Posts: 82
  • Country: br
  • Just an ordinary electronics hobbyist.
Midi devices conception - Guidance
« on: June 08, 2016, 02:11:22 am »
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.png

I'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.
The endless river...
 

Offline JPortici

  • Super Contributor
  • ***
  • Posts: 3452
  • Country: it
Re: Midi devices conception - Guidance
« Reply #1 on: June 08, 2016, 03:40:56 am »
Start by knowing the standard thoroughly. a good reference to know by heart:
http://www.blitter.com/~russtopia/MIDI/~jglatt/tech/midispec.htm
with 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 debouncing
then "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 flash

Only 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
 

Offline japasetelagoasTopic starter

  • Regular Contributor
  • *
  • Posts: 82
  • Country: br
  • Just an ordinary electronics hobbyist.
Re: Midi devices conception - Guidance
« Reply #2 on: June 08, 2016, 03:55:47 am »
Start by knowing the standard thoroughly. a good reference to know by heart:
http://www.blitter.com/~russtopia/MIDI/~jglatt/tech/midispec.htm
with 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 debouncing
then "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 flash

Only 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

Can't thank you enough for this reply. Really appreciated!
The endless river...
 

Offline Cervisia

  • Regular Contributor
  • *
  • Posts: 83
  • Country: 00
Re: Midi devices conception - Guidance
« Reply #3 on: June 09, 2016, 08:32:27 am »
Quote
Start by knowing the standard thoroughly.

The MIDI specification itself has been made freely available recently.

Quote
… 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 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
 

Offline japasetelagoasTopic starter

  • Regular Contributor
  • *
  • Posts: 82
  • Country: br
  • Just an ordinary electronics hobbyist.
Re: Midi devices conception - Guidance
« Reply #4 on: June 16, 2016, 06:32:45 pm »
Quote
Start by knowing the standard thoroughly.

The MIDI specification itself has been made freely available recently.

Quote
… 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 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

Thanks for the link Cervisia, some good info there too.
The endless river...
 

Offline uncle_bob

  • Supporter
  • ****
  • Posts: 2441
  • Country: us
Re: Midi devices conception - Guidance
« Reply #5 on: June 17, 2016, 01:20:36 am »
Hi

At 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
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf