I have a midi keyboard, but I find it frustrating to start PC, DAW system every time I want to play. Is there a way to use Arduino to create an on the go stand alone piano. (It should work like a digital piano). Just switch on and play.
You have many options here, although it is not as simple as you might think, if you want both a good sound and use an MCU.
Arduino (Uno) with speaker
- Buy a MIDI shield and a MIDI cable
- Write a sketch that reads MIDI note on and off commands (at least)
- Connect a speaker to the Arduino
- Extend the sketch to play the correct frequency based on the notes
- Reasonably easy
- Very less hardware needed
- Very bad sound (like beeps, comparable to a toy 'piano' at best)
Arduino DUE or Raspberry PI
- Get an Arduino Due at least (probably you can better move to Raspberry PI or similar device)
- Sample a real piano (by key range, or velocity range), or get the samples from your DAW.
- Read the MIDI on/off keys and decide which sample/velocity sample to use.
- Add SRAM probably for the samples, or try to read it from a Flash (doubt it will be fast enough). For very good stereo multi-velocity samples expect a few GB.
- Use a DAC to output the sound and connect it to some speaker system.
- Note the above is a simplification
- Very good learning experience (if that is what you seek for)
- Cheaper than a MIDI module
- Much time to invest (DACs, sampling, building your own 'synthesizer')
No MCU needed: MIDI Module
- Buy a separate MIDI module where you can directly connect the MIDI cable to.
- No time to invest
- Quality is as good as the MIDI module (much better than what you get on an Arduino at least).
- No 'learning' of Arduino
- More expensive (MIDI module)