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. 4. The method of claim 1 , wherein identifying landmarks in the beat-synchronized chroma matrix further comprises: (a) initializing, using the hardware processor, a threshold value corresponding to each of the plurality of chroma bins as a maximum value in each of the plurality of chroma bins over a plurality of chroma vectors of the beat-synchronized chroma matrix; (b) for a time frame of the portion of the song, evaluating, using the hardware processor, a chroma value of each of the plurality of chroma bins and, if one of the plurality of chroma bins has a value at or above the threshold value corresponding to that chroma bin, setting that chroma bin as a landmark and adjusting the threshold value for the chroma bin based on the value of the chroma bin; and (c) selecting, using the hardware processor, a next time frame of the portion of the query song, adjusting the threshold value corresponding to each of the chroma bins using a decay factor, and repeating (b) until chroma vectors for a threshold amount of time frames have been evaluated.