Claims
- 1. A method for detecting the presence of substantially repeating features in a waveform and determining the frequency of a waveform containing said features, comprising the steps of:
selecting a feature; detecting the times of occurrence of said feature over a predetermined time interval; calculating the differences of time of occurrence of a predetermined number of consecutive occurrences of said feature; determining if said differences of time of occurrence are substantially equivalent using a predetermined criterion of equivalence; determining that said feature is repetitive if said differences of time of occurrence are substantially equivalent; and, if said feature is substantially repetitive, calculating the frequency of said waveform from the differences of time of occurrence.
- 2. A method for detecting the presence of substantially repeating features in a waveform and determining the frequency of a waveform containing said features according to claim 1, further comprising the step of:
sampling the waveform at a predetermined sample rate to determine the amplitude of the waveform at each sample time.
- 3. A method for detecting the presence of substantially repeating features in a waveform and determining the frequency of a waveform containing said features according to claim 1, where said feature is the waveform crossing one of a predetermined set of thresholds.
- 4. A method for detecting the presence of substantially repeating features in a waveform and determining the frequency of a waveform containing said features according to claim 1, where said feature is a waveform turning point.
- 5. A method for identifying computer digital music files that match an input signal bearing auditory information comprising the steps of:
receiving an input signal bearing auditory information; processing said input signal to extract input frequency versus time information; for each of said digital music files, processing the file to extract frequency versus time information; and comparing the ratio of the input frequency information to the frequency information of respective digital music files over the duration of the input signal to thereby identify a digital music file that most closely matches said input signal.
- 6. A method for identifying digital music files according to claim 5, wherein the step of processing said input signal to extract input frequency versus time information further comprises:
sampling the waveform at a predetermined sample rate to determine the amplitude of the waveform at each sample time; detecting the times of occurrence of a predetermined repeating feature over a predetermined time interval; calculating the differences of time of occurrence of a predetermined number of consecutive occurrences of said feature; determining if said differences of time of occurrence are substantially equivalent using a predetermined criterion of equivalence; if said differences of time of occurrence are substantially equivalent, calculating the frequency of said time interval by dividing the difference of time of occurrence by the sample frequency; and, compiling a listing of the frequency of said waveform against time for a duration of said waveform.
- 7. A method for identifying digital music files according to claim 5, wherein the step of processing said input signal to extract input frequency versus time information comprises:
sampling said waveform at a predetermined sample rate to generate a sampled waveform series of elements, each element comprising a magnitude of said input signal; if said elements are of equivalent magnitudes, setting said cycle length equal to zero and discontinuing said frequency extraction process; and if said elements are not of equivalent magnitudes, performing the steps of:
setting a test waveform equal to said sampled waveform series; and performing a frequency extraction iteration cycle by:
detecting turning point elements of said test waveform vector at which said test waveform vector changes direction; determining a pair of turning points having the largest difference in magnitude, such that no other turning point value falls between said pair of turning points; selecting a threshold by calculating an average of said pair of turning points; generating a position series, wherein each element of said position series is a position at which lines between successive pairs of elements of said test waveform cross said threshold, and wherein the order of said elements in said position series is preserved relative to said test waveform; generating a position difference series, wherein each element of said position difference series comprises a difference between a respective pair of successive elements of said position series; if said position difference sequence comprises fewer than five elements, setting said cycle length equal to zero and discontinuing said frequency extraction process; if said position difference sequence comprises more than four elements and said elements are of equivalent magnitudes, calculating a cycle length of said sampled waveform and discontinuing said frequency extraction process; and if said position difference sequence comprises more than four elements and said elements are not of equivalent magnitudes, continuing said frequency extraction process by performing the steps of:
storing said position difference series; setting said test waveform series equal to said position difference series; and performing a frequency extraction iteration cycle.
- 8. A method for identifying digital music files according to claim 7, wherein the step of calculating a cycle length of said sampled waveform comprises:
setting a proposed cycle length equal to two; and performing a cycle length determination iteration by:
recursively calculating from the stored position difference series a number of sampled waveform elements represented by said proposed cycle length; generating a test vector by subtracting one cycle of said sampled waveform series from a second cycle shifted by said proposed cycle length; if said test vector is equivalent to a zero vector, discontinuing said cycle length calculation process by setting said cycle length equal to said number of sampled waveform elements; and if said test vector is not equivalent to a zero vector, incrementing said proposed cycle length by one and performing another cycle length determination iteration.
- 9. A method for identifying digital music files according to claim 7, wherein said input signal comprises a sampled waveform series.
- 10. A method for identifying digital music files according to claim 7, further comprising determining a frequency of said input signal from said cycle length.
- 11. A method for identifying digital music files according to claim 5, wherein said input signal is generated by a user.
- 12. A method for identifying digital music files according to claim 5, wherein said input signal is generated by a user humming.
- 13. A method for identifying digital music files according to claim 5, wherein said input signal is generated by a user singing.
- 14. A method for identifying digital music files according to claim 5, wherein said input signal is generated by a musical instrument.
- 15. A method for identifying digital music files according to claim 5, wherein said input signal is a computer sound file.
- 16. A method for identifying digital music files according to claim 5, wherein said digital music files are located on a computer network.
- 17. A method for identifying digital music files according to claim 16, wherein at least one of said digital music files comprises a mobile telephone ring tone file.
- 18. A method for identifying digital music files according to claim 5, wherein the step of comparing the ratio of the input frequency information to the frequency information corresponding to each of said digital music files further comprises:
calculating the ratio between the input frequency to the digital music file frequency over the duration of said input; calculating the average of said ratio and the deviation of said ratio from the average ratio; and, determining the degree to which said input signal matches said digital music file, wherein a small deviation of said ratio indicates a strong match and a large deviation of said ratio indicates a weak match.
- 19. A method for identifying digital music files according to claim 5, wherein the step of comparing the ratio of the input frequency information to the frequency information corresponding to each of said digital music files further comprises:
multiplying the time dimension of the input frequency versus time information by a predetermined factor.
- 20. A method for identifying digital music files according to claim 19, wherein the step of multiplying the time dimension of the input frequency versus time information by a predetermined factor further comprises:
for each digital music file, varying said predetermined factor to identify an optimal factor that results in the closest match between said modified input signal information and said music file.
- 21. A method for identifying digital music files according to claim 20, wherein the step of comparing the ratio of the input frequency information to the frequency information corresponding to each of said digital music files further comprises:
for each digital music file, multiplying the time dimension of the input frequency versus time information by the optimal factor for said digital music file.
- 22. A method for identifying digital music files according to claim 5, wherein the step of comparing the ratio of the input frequency information to the frequency information corresponding to each of said digital music files further comprises:
delaying said input frequency versus time information by a predetermined offset.
- 23. A method for identifying digital music files according to claim 22, wherein the step of delaying said input frequency versus time information by a predetermined offset further comprises:
for each digital music file, varying said predetermined offset to identify an optimal offset that results in the closest match between said modified input signal information and said music file.
- 24. A method for identifying digital music files according to claim 23, wherein the step of comparing the ratio of the input frequency information to the frequency information corresponding to each of said digital music files further comprises:
for each digital music file, delaying said input frequency versus time information by the optimal offset for said digital music file.
- 25. A method for identifying digital music files according to claim 5, wherein said input signal serves as a search parameter for a music files search engine that identifies digital music files that match the input signal.
- 26. A method for identifying digital music files according to claim 5, further comprising the step of:
processing said digital music files to automatically extract musical note versus time information.
- 27. A method for identifying digital music files according to claim 26, further comprising the step of:
processing said input signal to extract input musical note versus time information.
- 28. A method for identifying digital music files according to claim 27, further comprising the step of:
comparing said input musical note versus time information with musical note versus time information corresponding to said digital music files to thereby identify a digital music file that matches said input signal.
- 29. A method for identifying digital music files according to claim 5, wherein said input signal is compared to musical scores associated with the digital music files.
- 30. A method for identifying digital music files according to claim 5, wherein a best match comparison is performed between said input signal and said digital music files, to determine the closest match.
- 31. A method for identifying digital music files according to claim 18, wherein the comparison between said input signal and said digital music files produces a list of files wherein said list indicates the degree to which the files match.
- 32. A method for identifying digital music files according to claim 30, wherein the comparison between said input signal and said digital music files produces a list of files wherein said list indicates the degree to which the files match.
- 33. A method for identifying digital music files that match a computer file, wherein said computer file represents a segment of a musical score, comprising the steps of:
processing said computer file to extract frequency versus time information; processing said digital music files to extract frequency versus time information; and, comparing said frequency versus time information corresponding to said computer file to frequency versus time information corresponding to said digital music files to thereby identify a digital music file that matches said segment of a musical score.
- 34. A method for generating a digital music file, comprising the steps of:
receiving an input signal bearing auditory information; processing said input signal to extract input frequency versus time information by:
sampling said waveform at a predetermined sample rate to generate a sampled waveform series of elements, each element comprising a magnitude of said input signal; if said elements are of equivalent magnitudes, setting said cycle length equal to zero and discontinuing said frequency extraction process; and if said elements are not of equivalent magnitudes, performing the steps of:
setting a test waveform equal to said sampled waveform series; and performing a frequency extraction iteration cycle by:
detecting turning point elements of said test waveform vector at which said test waveform vector changes direction; determining a pair of turning points having the largest difference in magnitude, such that no other turning point value falls between said pair of turning points; selecting a threshold by calculating an average of said pair of turning points; generating a position series, wherein each element of said position series is a position at which lines between successive pairs of elements of said test waveform cross said threshold, and wherein the order of said elements in said position series is preserved relative to said test waveform; generating a position difference series, wherein each element of said position difference series comprises a difference between a respective pair of successive elements of said position series; if said position difference sequence comprises fewer than five elements, setting said cycle length equal to zero and discontinuing said frequency extraction process; if said position difference sequence comprises more than four elements and said elements are of equivalent magnitudes, calculating a cycle length of said sampled waveform and discontinuing said frequency extraction process; and if said position difference sequence comprises more than four elements and said elements are not of equivalent magnitudes, continuing said frequency extraction process by performing the steps of: storing said position difference series; setting said test waveform series equal to said position difference series; and performing a frequency extraction iteration cycle; and generating a digital music file from said frequency versus time information extracted from said input signal.
- 35. A method for generating a digital music file according to claim 34, wherein said input signal is generated by a user.
- 36. A method for generating a digital music file according to claim 35, wherein said input signal is generated by a user humming.
- 37. A method for generating a digital music file according to claim 35, wherein said input signal is generated by a user singing.
- 38. A method for generating a digital music file according to claim 34, wherein said digital music files comprises a mobile telephone ring tone file.
- 39. An apparatus for detecting the presence of substantially repeating features in a waveform and determining the frequency of a waveform containing said features, comprising:
a waveform sampler operable to sample the waveform at a predetermined sample rate to determine the amplitude of the waveform at each sample time; a feature detector operable to detect times of occurrence of repeating features over a predetermined time interval; a subtractor operable to calculate differences between successive ones of said times of occurrence; an equivalency detector operable to determine if said differences of time of occurrence are substantially equivalent using a predetermined criterion of equivalence, and thereby determine that said features are substantially repetitive if said differences of time of occurrence are substantially equivalent; and, a frequency calculator operable to calculate the frequency of said time interval by dividing the difference of time of occurrence by the sample frequency.
- 40. An apparatus for detecting the presence substantially repeating features in a waveform and determining the frequency of a waveform containing said features according to claim 39, further comprising:
a tabulator operable to compile a listing of the frequency versus time information of said waveform for the entire duration of said waveform.
- 41. An apparatus for detecting the presence substantially repeating features in a waveform and determining the frequency of a waveform containing said features according to claim 39, wherein said waveform is stored on a computer file.
- 42. An apparatus for comparing the frequency versus time information of an input signal to the frequency information corresponding to a digital music file over the duration of the input signal to thereby identify if said digital music file matches said input signal, comprising:
a ratio calculator operable to calculate the ratio of the input frequency information to the frequency information corresponding to said digital music file over the duration of the input signal; a statistics calculator operable to calculate an average of said ratio and a deviation of said ratio from the average ratio; and a signal matcher operable to determine the degree to which said input signal matches said digital music file, wherein a small deviation of said ratio from said average indicates a strong match and a large deviation of said ratio from said average indicates a weak match.
- 43. An apparatus for comparing the frequency versus time information of an input signal to the frequency information corresponding to a digital music file according to claim 42, further comprising:
a time multiplier operable to multiply the time dimension of the input signal frequency versus time information by a predetermined factor; and a time multiple adjuster operable to vary said factor to identify an optimal factor that results in the closest match between said modified input signal information and said music file.
- 44. A apparatus for comparing the frequency versus time information of an input signal to the frequency information corresponding to a digital music file according to claim 42, further comprising:
a delayer operable to delay the time dimension of the input signal frequency versus time information by a predetermined offset; and an offset adjuster operable to vary said offset to identify an optimal offset that results in the closest match between said modified input signal information and said music file.
- 45. A music files search engine, comprising:
an input device for obtaining an input signal; a music signal processor operable to extract musical information; and a signal matcher operable to determine the degree to which extracted input signal musical information matches extracted digital music file musical information; and wherein the music files search engine is operable to search a plurality of music files for the files that match the input signal most closely.
- 46. A music files search engine according to claim 45, wherein the digital music files are located on a computer network.
- 47. A music files search engine according to claim 45, wherein at least one of said digital music files comprises a mobile telephone ring tone file.
RELATIONSHIP TO EXISTING APPLICATIONS
[0001] The present application claims priority from U.S. Provisional Application No. US60/346,985, filed Jan. 11, 2002, the contents of which are hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60346985 |
Jan 2002 |
US |