Pada umumnya, pencarian terhadap sebuah file MIDI dilakukan dengan cara melihat nama file atau melihat metadata di dalam file MIDI tersebut. Pencarian terhadap file MIDI berdasarkan melodi yang diinginkan harus dilakukan berdasarkan isi (content) dari file MIDI tersebut. Pada pencarian terhadap file MIDI berdasarkan melodi, pengguna memasukkan query berupa melodi dan sistem akan mencari file MIDI mana saja yang memiliki potongan melodi yang paling mirip dengan melodi yang di-query-kan oleh pengguna. Melodi yang dijadikan query bersifat monofonik sedangkan melodi pada file MIDI bersifat polifonik. Karena itu, melodi pada file MIDI perlu dikonversi menjadi melodi monofonik supaya dapat dibandingkan dengan melodi yang dijadikan query. Pembandingan anara dua melodi dilakukan dengan cara menghitung derajat ketidakmiripan antara kedua melodi tersebut. Jika nilai derajat ketidakmiripan yang dihasilkan semakin kecil, maka kedua melodi yang dibandingkan semakin mirip. Jika nilai derajat ketidakmiripan sama dengan nol, maka kedua melodi tersebut sama. Ada dua metode pembandingan melodi yang digunakan, yaitu pembandingan per birama dan pembandingan per nada. Pencarian dengan pembandingan melodi per birama lebih cepat tapi sangat sensitif terhadap posisi melodi dalam birama. Pencarian dengan pembandingan melodi per nada lebih akurat daripada metode pembandingan melodi per birama tapi membutuhkan waktu lebih lama.