Nonlyrical Music Search Algorithm

CSEF · 2011 Mathematics & Software Third Award

Overview

Objectives/Goals 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. Methods/Materials 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. Results 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. Conclusions/Discussion It is possible to create software that can perform a "music search," instead of a lyrics-based music search.

Summary statement

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

Awards (1)

Competition history

  • CSEF 2011 Mathematics & Software · Entry J1416

Resources

Related projects

Closest projects by meaning, across every fair and year in the corpus.

Browse more like this

Source: California Science & Engineering Fair public projects

Save projects to your library

Sign in with Google to keep track of projects you find interesting, organized into folders. An account also raises your daily allowance for “Has this been done?”, and lets you create a key for the MCP server with a much higher limit than anonymous use. Browsing stays public.

Continue with Google