This demo engine uses note database produced by Mutopia Project.

Quick Start

-    Enter a melody by pressing the piano keys. Corresponding note names appear in the text field above the keyboard. Enter a minimum of two and a maximum of 30 notes.

-    If you want to ignore rhythm, select one of the search methods 4-8 (method 4 is recommended). Otherwise select search method 1 or 2. In this case you must edit the melody as follows: the number before the note indicates duration intervals between notes, not durations of the notes. For example, 4C5 4D5 means that the time interval between notes C5 and D5 is equivalent to the duration of a quarter note.

-    You can change the search method in the pull-down list. See the search method descriptions below. If necessary, you can change also the maximum number of results, sorting method, and select whether you want to see all matches or only the first match for each song.

-    Start the search by pressing the 'Search' button.

-    The results appear in this frame. They include information on composer, title, notes that matched, amount of transposition, approximate bar number where the match occurred, and links to score files and to a histogram view.

Examples

Pattern A5 G#5 A5 G#5 A5 E5 G5 F5 will find Für Elise by Beethoven with search type 4, ignoring rhythm.

Pattern 16A5 16G#5 16A5 16G#5 16A5 16E5 16G5 16F5 8D5 specifies a sequence of notes which are 16th apart from each other. It will find Für Elise by Beethoven with search type 1, matching the rhythm.

Search Methods

Properties of the different search methods are presented in the following table.
#Method NameTransposition InvarianceMonophonic patternsPolyphonic patternsPreserves RhythmAllows DecorationsPartial Matches
1P1*****
2P2******
3P3******
4MonoPoly**
5IntervalMatching**
6ShiftOrAnd*
7PolyCheck **
8Splitting** *
9LCTS** **

Search types 1, 2 and 3 have the least limitations. When using other search types a match will not be found if there is an extra note between two requested notes, e.g. a grace note or a note played by another instrument.
On the other hand, search types 1 and 2 require that the rhythm is exact; search for 4C5 4D5 does not find 8C5 8D5. You may want to try several search types to find different types of matches.

Rhythmic Search

As mentioned above, search methods 1 and 2 allow for specifying rhythm, i.e. time intervals between starting times of the notes. There may be grace notes or other notes between the specified notes. This does not matter as long as the rhythm matches.

If time intervals are not given, intervals corresponding to the duration of a quarter note (marked with 4) are assumed.

You must edit time intervals manually in the text field. The first number in the note name specifies the interval, the second the note name and the third the octave. The last value is actually insignificant, but you must type some value.

Time intervals are specified as follows: 1 for full note, 2 for half note, 4 for quarter note, 8 for eighth note, 16 for sixteenth note, etc. You may give any two-digit integer divisor. For example, 12 specifies one note belonging to a triole formed from a quarter note (1/4/3=1/12). Note that due to MIDI related limitations, strange divisors may give unreliable results.

Polyphonic Search

You must edit the note pattern in the text field manually. First, enter the notes with the piano keys and then connect notes in the same chord by replacing the space between notes with a plus (+) sign. Alternatively you can type the whole pattern directly by hand. Select search method 1, 2, 3 or 7.

Polyphonic pattern C5+E5+G5 D5+F5 will find exact matches only, including Song without Words with search type 6. Same pattern C5+E5+G5 D5+F5 with search type 1 finds more matches, because it allows transpositions and decorative notes. It does not find the exact match in Scheidemann's Praeambulum no.13 in G like search type 7, because it does not match the rhythm (time interval between chords is assumed to be 4, since the interval is not given). Change pattern to 8C5+8E5+8G5 8D5+8F5 to find it.

Histogram view

In the histogram view you can view several note data histograms.

-    Pitch Class Histogram shows distribution of note classes.

-    Pitch Histogram shows distribution of notes.

-    Pitch Interval Histogram shows distribution of note pitch intervals. Intervals are calculated separately for each MIDI track.

-    Duration Class Histogram shows approximate distribution of note durations.

Histogram view opens as a new large window. You can resize and move it yourself; when you click other histogram links they will open to the same window.

Score Files

Score files are provided in A4 PDF and PostScript (PS) format. You can find other formats for all files on Mutopia Project homepages. Use free Acrobat Reader to view PDF files.

To view PostScript files in Linux, use gv. Also Mac OS X includes a PS viewer utility. If you are using Windows or Mac OS 9, you need to download and install GhostView.

FAQ

Q: I have problems with the applet.
A: Try installing the newest version of Java Runtime Engine (JRE), or try a different browser.
A: If the applet first works but then stops responding, restart the browser (or reset the class cache and reload) and try again. Alternatively, try installing an older version of the JRE.
A: If this does not help, use the Text version link above the applet.

Q: I can't find what I'm looking for.
A: Check that the song is in the Song list. Otherwise it is not included in the database. Currently the database does not contain songs added to Mutopia collection after October 2002.
A: Try different search methods. Each has different limitations, that might exclude the song you are looking for.
A: Increase the Max. Results value to see more matches. Use your browser's 'Find' feature to search for e.g. composer name, if there are too many results.
A: The bar number is approximate and sometimes fails. The match is somewhere else in the song. You can see which chords match by looking at the address of the link in Matched Notes field. The end of the link address may be for example firstchord=842&lastchord=846. Here firstchord and lastchord give the position of the match. "Chord" here means that each note with onset time different from previous note starts a new "chord". E.g. in the pattern "C5+E5 D5 F5" C5 and E5 belong to chord 0, D5 to chord 1, and F5 to chord 2.
A: If you still can't find what you are looking for and the song is in the database, send us a report and tell what you are trying to find, and we will get back to you.

Q: Can I freely use/print the MIDI and score files provided here?
A: In principle, yes. Consult Mutopia Project Legal Issues for details.

Q: I want to set up my own public or private MIDI search engine with my own MIDI files.
A: A package containing server source code is or will be available on request from the contact address below. Some support for installation may be provided, but cannot be guaranteed.

Q: There is no article reference for search method 7.
A: This method is a simple checking method for MonoPoly algorithm (method 4). It has not been published.

Q: I found an error in your system.
A: Report is to us. Known problems include e.g. the following:
- Time intervals between e.g. 1 and 2 cannot be entered.
- Matched notes for polyphonic searches are not connected by '+' signs.
- On the Windows platform, playing MIDI files sometimes results in a random noise pulse before the melody starts playing.

Contact

The current version of the demo engine was developed in 2002-2003 by Mika Turkia, but he no longer maintains it. You can send questions or comments to mikkila at cs helsinki fi.