Music Lab, An Arduino Project

About the project

What is "Arduino Music Lab"? It is a project based on an Arduino microcontroller and a buzzer (a little acoustic signaler that can make sounds) which is able to play some traits of famous songs!

Project info

Difficulty: Easy

Platforms: Arduino

Estimated time: 1 hour

License: GNU General Public License, version 3 or later (GPL3+)

Items used in this project

Hardware components

Arduino Uno - R3 Arduino Uno - R3 x 1
Usb A To Usb Micro B 1m Usb A To Usb Micro B 1m x 1
Piezo Buzzer Ps1240 Piezo Buzzer Ps1240 x 1
Wire Jumpers Male To Male Wire Jumpers Male To Male (Minimum) 2 - (Maximum) It depends on the additional hardware you'll use (ex. RGB LED)! x 2
Tiny Breadboard Tiny Breadboard x 1
RGB LED RGB LED (Optional) It's not required, it's just a "style choice"! x 1

Software apps and online services

Arduino IDE Arduino IDE https://www.arduino.cc/en/software
MIDI To Arduino (Extramaster) MIDI To Arduino (Extramaster) https://www.extramaster.net/tools/midiToArduino/ (Credits to Andy Tran)

Story

During the quarantine, I tried to create a project which combine Arduino to one of my biggest passions: the musical world.

From this idea, I made the music lab with an Arduino microcontroller and a buzzer (a little acoustic signaler) which is able to play some traits of very famous songs!

As you can see in the project's video, the music lab is based on the buzzer reproduction of a single instrument at a time, which synchronized with a video-editing software  to the other instruments, can reproduce the original song, as much as possible similiar to the original.

How can you create this? This is really simple!

[Suggestions and Comments]

  1. More tracks in a MIDI file equals to a better audio/video final result.
  2. Not every track can be played by Arduino: the buzzer may not be able to reproduce all the original notes from some generated codes.
  3. Arduino Uno boards can't use more than a buzzer at a time.
  4. You can also implement others devices, including an LCD display or an IR sensor with its remote in order to make this project even more interesting!
  5. I used Wondershare Filmora 9 as a video-editing software but you can use whatever video-editing program you want.
  6. You can use LEDs (like in the video) in order to facilitate the video-sync process.
  7. Buzzer works only on analogic pins (A0-A5) and PVM pins [~] (3/5/6/9/10/11/13).

[Code]

  • The first thing to do is to get some MIDI files (.mid extension) from the Internet (If you don't know what MIDI files are, they're not audio files - like mp3, flac or wav files. This kind of file saves all the information about the notes, instruments, effects just like in a text file!).
  • Then, you need to open https://www.extramaster.net/tools/midiToArduino/ and import your previously-downloaded midi file.

  • Select the track (instrument) you want to play.

  • Scroll down and adjust the Midi Speed Factor to 1.0x.