Intro: LED Piano Guider for Synthesia Using Arduino
Recently, I had done my final year project regarding on "Learning Tools" which I have decided to make something useful for keyboard users, including me, myself, who is a Yamaha PSR E333 keyboard user.
So basically, my idea of innovating the keyboard is to make it useful and as a guidance for the beginners to learn and play the keyboard. By using LEDs, it can actually guide them playing the musical sheet of any songs they want. After doing some research, I have chosen the Synthesia software as it contains millions of MIDI songs and great Graphic User Interface (GUI). So if I innovate the MIDI notes with the LEDs, things will become a lot easier and fun where beginners do not have difficulty to learn new songs. They can even learn new songs by themselves without the guidance of a music teacher as going to classes may cost a lot of money.
I had also done research on the MIDI files and LED configuration, where I found out that, by using IC MAX7219 by MAXIM, it can work up to 64 LEDs at once, so it is applicable for my innovation, where every standard keyboard has only 61-keys. In order to make it look neat and well-kept, I have put all the wires into one small square conduit.
Step 1: Components
My innovation of the keyboard only requires a small hardware installment, which most of the them are focused on the software setup. So, roughly, it does not cost a lot of money, especially when you have already own these items listed below. The only thing that cost quite a value of money is the Arduino Nano. You can also go for your own microcontroller, but I would definitely recommend the use of Arduino Nano than Arduino Uno because to minimize wastage and to make things look in order. The component needed are:-
- Arduino Nano (East Solar, RM25)
- IC MAXIM MAX7219 (East Solar, RM4)
- Spool of Wire (Hardware Store, 12 Meter around RM6)
- Mini USB cable (MR.DIY, RM6)
- 28K resistor (Hardware Store, RM 0.50)
- Ceramic Capacitor 10uF (East Solar, RM0.10)
- Cyclurar Capacitor 100nF (East Solar, RM0.20)
- 24-pin IC Socket (Hardware Store, RM0.40)
- Prototype Board (Hardware Store, RM2)
- 61 Red LEDs (Hardware Store, RM12)
- Square Cable Conduit (Hardware Store, RM3)
- Solder Wire (the thinner the better)
- A Piano Keyboard
- A Laptop that can run Synthesia Software
- Soldering iron
- Wire strippers
- Wire cutters
- Small needle-nosed pliers
- Total cost approximatly around RM65 ≈ $16 Dollar
Step 2: Electronic Circuit
The schematic gives resolution on how to wire the LED matrix by using MAX7219. All I need is, 61 LEDs. First and foremost, I did a prototype on a breadboard to make sure all of the LEDs are working before soldering them. It is necessary to choose the right Rset because when encountering the false value, the LED will not light up (Refer: Rset). Also, it is important to do a proper decoupling, where you need to place both capacitors as close as possible to the MAX7219 to avoid sporadic or permanent malfunction.
Step 3: Software
In the Synthesia software, I have set the MIDI channel to Channel 1 as I need the software to play music only in Channel 1. After setting up the Synthesia software, I used LoopBe1 software to loop my synthesia music into the serial port of Arduino. When the music package is received, it will directly be channelled to the Arduino port by using Hairless Midi <-> Serial Bridge converter and this will send the music package to the Arduino to receive the data.
Step 4: Arduino Coding
First of all, you need to understand the MIDI concept (refer:MIDI Concept). For instance, when one note is played, it will have three byte package of data. First, it determine the channel used and the on and off of the note, Second, this byte contains information which note is referred in the piano, Third, it contains the volume of the note, whether it high or low
Step 5: Final Product
Comment down below and thumb up