19. A non-transitory computer-readable medium containing computer-executable instructions that, when executed by a processor, cause the processor to perform a method for identifying a cover song from a query song, the method comprising: generating 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 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 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 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 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 an indication that the reference song is a cover song of the query song.
19. A non-transitory computer-readable medium containing computer-executable instructions that, when executed by a processor, cause the processor to perform a method for identifying a cover song from a query song, the method comprising: generating 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 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 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 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 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 an indication that the reference song is a cover song of the query song. 22. The non-transitory computer-readable medium of claim 19 , wherein identifying landmarks in the beat-synchronized chroma matrix further comprises: (a) initializing 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 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 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.