1. A method for identifying a cover song from a query song, the method comprising: generating, using a hardware processor, a beat-synchronized chroma matrix of a plurality of chroma vectors each having a plurality of chroma bins for a portion of the query song; identifying, using the hardware processor, landmarks in the beat-synchronized chroma matrix, wherein a first prominent pitch at a first time in the portion of the query song and a second prominent pitch in the portion of the query song each correspond to an identified landmark; calculating, using the hardware processor, a query song jumpcode based on differences between successive pairs of the identified landmarks in a time window of a size less than the size of the portion of the song; identifying, using the hardware processor, a plurality of reference song jumpcodes for a reference song, wherein each of the reference song jumpcodes is based at least in part on a change in prominent pitch between two times in a portion of the reference song; determining, using the hardware processor, if the query song jumpcode matches any of the plurality of reference song jumpcodes; and upon determining that the query song jumpcode matches at least one of the plurality of reference song jumpcodes, generating, using the hardware processor, an indication that the reference song is a cover song of the query song.
1. A method for identifying a cover song from a query song, the method comprising: generating, using a hardware processor, a beat-synchronized chroma matrix of a plurality of chroma vectors each having a plurality of chroma bins for a portion of the query song; identifying, using the hardware processor, landmarks in the beat-synchronized chroma matrix, wherein a first prominent pitch at a first time in the portion of the query song and a second prominent pitch in the portion of the query song each correspond to an identified landmark; calculating, using the hardware processor, a query song jumpcode based on differences between successive pairs of the identified landmarks in a time window of a size less than the size of the portion of the song; identifying, using the hardware processor, a plurality of reference song jumpcodes for a reference song, wherein each of the reference song jumpcodes is based at least in part on a change in prominent pitch between two times in a portion of the reference song; determining, using the hardware processor, if the query song jumpcode matches any of the plurality of reference song jumpcodes; and upon determining that the query song jumpcode matches at least one of the plurality of reference song jumpcodes, generating, using the hardware processor, an indication that the reference song is a cover song of the query song. 7. The method of claim 1 , wherein determining if the query song jumpcode matches any of the reference song jumpcodes further comprises: determining, using the hardware processor, if a value of one of the plurality of reference song jumpcodes matches a value of the query song jumpcode; and upon determining that the value of a reference song jumpcode matches the value of the query song jumpcode, determining, using the hardware processor, that the reference song jumpcode with the matching value matches the query song jumpcode if a weight of the reference song jumpcode is equal to a weight of the query song jumpcode within a predetermined margin, wherein the weight of a jumpcode is indicative of the number of times that jumpcode is found in the portion of the song from which jumpcodes have been identified.