Hymnary Friends,

Please pardon this brief interruption, and please consider a gift today to support the work of Hymnary.org. Here's why.

Each month half a million people visit this website for free access to the most complete database of North American hymnody on the planet. But this project does not come without a cost, and we have limited sources of revenue. Twice a year we hold a fund drive, and these drives are critical to our future.

So if you benefit from Hymnary.org, would you consider a donation today? Even small amounts help, and they also let us know you're behind us and support what we do.

Click the Donate button below to be taken to a secure giving site. Or you can make your tax-deductible contribution by sending a check to Hymnary.org at 3201 Burton SE, Grand Rapids, MI 49546.

On behalf of the entire Hymnary.org team, our thanks.
Harry Plantinga

About Melodic Search

Search Help

To input a melody to search for, select the duration of the note using the buttons to the right, and then click the note you would like to enter on the on-screen piano keyboard.

Keyboard Reference Chart

The buttons to the right can also be used to add ties, barlines, and rests, as well as flip the accidental of the last-entered note.

Buttons Reference Chart

As you enter notes, they will appear on the treble staff area below the keyboard. Here, you can move the red cursor by clicking at different points in the melody, allowing you to insert, delete, and modify any of the notes entered so far. In addition, you can use the undo and redo buttons to navigate the changes you've already made.

Score Reference Chart

Search queries are required to contain at least four notes, but it is generally advisable to enter more than that, to improve the accuracy of the results. If you know you are only interested in exact matches, checking the "exact matches only" box will speed up the search, but only return results that contain exactly the melody inputted.

Return to Search

Tips on Searching

  1. If you're not sure, guess! The search engine is designed to handle variations in pitch and rhythm, so even if you're not sure of a pitch, it's better to enter one you think is close than to not enter anything at all. The search will also check for transposed melodies, so entering your search in any key is fine.
  2. Don't sweat the small stuff. Currently, meters, barlines, and enharmonics (flipping accidentals) don't affect your search results - they only affect the way your melody is displayed back to you on the search results page. In the future, we may use these features to improve the quality of the matches but for now, if you don't care how your melody looks, go ahead and skip them.
  3. Precise notation doesn't matter. There are often many ways to notate a melody - using tied notes in place of dotted notes, or many small rests instead of a few large ones - but these kinds of differences won't affect your search. The rule of thumb is: if it sounds the same, it will search the same.
  4. Use the previews. Each search result is returned with an image of the melody's first few measures, and a MIDI file of the tune. Using these previews means less time following links, and more time looking for the information you want.
Return to Search

How it Works

The melodic search engine used here is based on the principles and techniques presented in Rainer Typke's thesis entitled Music Retrieval based on Melodic Similarity (you can read it or buy it). For information about music retrieval systems in general, Nicola Orio's article Music Retrieval: A Tutorial and Review and Typke's own Survey of Music Information Retrieval Systems are excellent starting points for those interested in some further reading.

And of course, this project would not have been possible without the work of those providing free and open-source tools for our use, so we would like to extend a special thanks to them:

Here's a basic walk-through of how the search engine works:

The first thing to happen after a user inputs a melody is called the "segmenting" process, whereby the user's query melody is broken up into smaller pieces for searching. We use a series of 4-note segments, starting every other note, so if the entered melody was an altered form of "Amazing Grace" (the tune NEW BRITAIN) like this:

Amazing Grace, altered

It would get broken up into pieces like this (the last segment would have only three notes, so it is omitted):

Segment 1 Segment 2 Segment 3

For each of the three segments there, a search is done through the database to find other segments that are potential matches. Since there are over 83,000 segments, comparing the query segment to each one would be too time-consuming. Instead, each segment in the database has a pre-calculated similarity score against 10 randomly-generated "vantage" segments, like these:

Vantage 1 Vantage 2 Vantage 3

Potential matches are thus found by looking for segments whose vantage similarities scores line up well with the query segment's vantage scores, such as these two from NEW BRITAIN:

Match 1 Match 2

After all of the segment searches have run, the results are tabulated to produce final scores, by rewarding the tunes with a high number of matching segments, matching segments that are close together in the tune, and are very similar to the query segments. Using those final scores, the tunes are ordered and displayed on the results page:

Results

Return to Search