Science Models
Science Fair Projects

Published on Feb 11, 2016


The objective: The engineering goal of this project has two parts: one is to create a program to parse a MIDI file, and the second goal is to have the program run searches between MIDI files, in a "music search."

Today, the prevalent way to search for music is to enter the lyrics or title of a song into a search engine, like Google. However, this can be disadvantageous for music without lyrics (such as western classical music), or if you do not know the lyrics.

Also, musicians frequently steal music from one another, and this often goes unnoticed. This project, however, can defeat musical copyright infringement; it can search a single song against a large database of songs, and find matches.


In the beginning, I use the MidiSwing software to record input from a MIDI-compatible keyboard, then it is saved to a file called mqry.mid, which is the file that is used as the search query.

Then I use Terminal to run the search program, which searches mqry.mid against a song bank of MIDI files.

The search results are displayed in the Terminal window. To create this search program, I used Xcode, a programming environment for Mac OSX. I wrote the code in the C++ programming language.


The program was able parse every MIDI file it was given, and was able to find matches between the query file and the song bank.


It is possible to create software that can perform a "music search," instead of a lyrics-based music search.

This Mathematical project is a music search based not on the lyrics, but on the song itself.

Science Fair Project done By Prem M. Talwai