For my first embedded project, I've decided to make a midi controller with a twist.
My design motive is to use fewer controls to keep the device simple, fun, and intuitive while retaining much of the flexibility of expensive controllers that offer dozens and dozens of unique controls. To that end, I've decided to build a controller around 2 android devices (old deactivated htc incredibles) that allow the user to quickly swap to and from custom midi mapping "scenes" without unintuitive menu diving.
I've chosen the mbed LPC1786 because it has usb host functionality and what look to be fairly flexible libraries for usb and usb-midi. My rough plan is to offer 12 -16 pots/faders, 6 on the analog io and the rest on some sort of multichannel adc, and about as many buttons on the digital side. The mbed will have to run to some sort of usb hub that can "route" the signal to the correct endpoint: android ADK -> mbed to change midi function, mbed -> host pc to transmit the data.
This will be by far the lowest-level programming I've ever done, so I've got a lot of questions:
Firstly, can the LPC1786 accommodate the above functions at a perceptibly instantaneous timescale (ie midi latency ideally < 1ms)?
If so, how do I go about it- what interfaces to use, how to handle data sampling (fyi, "polling" and "interrupt" meant nothing to me up until very recently), how to solve the data routing problem, etc.
Thanks for your help!
(PS- I tried to keep things as broad as possible to fit within my current knowledge of the subjects, but if I've made any incorrect assumptions please do correct me!)
For my first embedded project, I've decided to make a midi controller with a twist.
My design motive is to use fewer controls to keep the device simple, fun, and intuitive while retaining much of the flexibility of expensive controllers that offer dozens and dozens of unique controls. To that end, I've decided to build a controller around 2 android devices (old deactivated htc incredibles) that allow the user to quickly swap to and from custom midi mapping "scenes" without unintuitive menu diving.
I've chosen the mbed LPC1786 because it has usb host functionality and what look to be fairly flexible libraries for usb and usb-midi. My rough plan is to offer 12 -16 pots/faders, 6 on the analog io and the rest on some sort of multichannel adc, and about as many buttons on the digital side. The mbed will have to run to some sort of usb hub that can "route" the signal to the correct endpoint: android ADK -> mbed to change midi function, mbed -> host pc to transmit the data.
This will be by far the lowest-level programming I've ever done, so I've got a lot of questions: Firstly, can the LPC1786 accommodate the above functions at a perceptibly instantaneous timescale (ie midi latency ideally < 1ms)?
If so, how do I go about it- what interfaces to use, how to handle data sampling (fyi, "polling" and "interrupt" meant nothing to me up until very recently), how to solve the data routing problem, etc.
Thanks for your help!
(PS- I tried to keep things as broad as possible to fit within my current knowledge of the subjects, but if I've made any incorrect assumptions please do correct me!)