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.

  • 1
    \$\begingroup\$ You need to do some research yourself and tell us where you get stuck. We cannot design an entire system for you. \$\endgroup\$ – Jakob Halskov Dec 3 '19 at 14:13
  • \$\begingroup\$ You need a MIDI synth. I doubt that Arduino would be a wise choice. See newatlas.com/music/flash-mixtela-midi-polyphonic-synthesizer. \$\endgroup\$ – Transistor Dec 3 '19 at 14:16
  • \$\begingroup\$ You will work very hard to do this, and it won't work as well as any stand alone midi synth you can just buy. \$\endgroup\$ – Scott Seidman Dec 3 '19 at 14:22
  • \$\begingroup\$ and where exactly is your sound library going to come from? or the sound card to drive the speakers? I feel you have not even stood back and looked at all the components normally required to run it and thought about how they compare to an arduino. An arduino is virtually useless in this situation. At least go with a raspberry pi or beaglebone so you can use a lot of preexisting software and sound libraries \$\endgroup\$ – DKNguyen Dec 3 '19 at 14:28

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)
  • Monophonic

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)
| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.