Claims
- 1. A method, performed by a digital computer system executing program code, for playing a digital music file and altering the play order of a digital music file stored in addressable storage locations in a computer memory, said method comprising the steps of:creating an indexed list of beat pointers, with each beat pointer indexed by a beat number and pointing to corresponding beat segments of the digital music file; maintaining a beat counter indicating the beat number of a current beat segment being played where the beat counter increments at beat intervals equal to the time required to play a beat segment of the digital music file; in response to user selection of an arbitrary beat number during a current beat interval indicated by a current beat counter value: using the arbitrary beat number as an index to access a jump beat pointer from the indexed list; accessing a jump beat segment pointed to by the accessed beat pointer; playing the jump beat segment during the current beat interval; teiiiating playing the jump beat segment when the beat counter increments; and playing a following beat segment indicated by the value of the incremented beat counter after the beat counter increments.
- 2. The method of claim 1 further comprising the step of:adding the jump beat segment to a current beat segment indicated by the current beat pointer to form a summed beat segment; playing the summed beat segment during the current beat interval so that jump beat segment overlays the current beat segment.
- 3. The method of claim 1 further comprisingadding sub-beat pointers to said pointer list, with each sub-beat pointer pointing to a corresponding sub-segment of a beat segment; incrementing the beat counter at sub-beat intervals equal to the time to play a sub-beat portion of the digital music file; if a user selects an arbitrary beat during playing of a sub-beat segment, delaying playing an accessed beat segment until the beat counter increments to the next sub-beat thereby synchronizing the jump segment to the sub-beat pattern of the digital music file.
- 4. The method of claim 1 further comprising the acts of:determining the length of the jump beat segment; determining the length of a following beat segment indicated when the counter increments; if the jump beat segment is longer than the following beat segment, forming a truncated the jump beat segment to equal the length of the following beat segment; playing the truncated beat segment when the beat counter increments.
- 5. The method of claim 1 further comprising the step of:stopping playing of a current beat segment indicated by the current beat counter when the jump beat segment is played so that the current beat segment is replaced by the jump beat segment.
- 6. The method of claim 5 further comprising the acts of. fading out the current beat segment and fading in the jump beat segment when the accessed beat segment replaces the current beat segment; andfading out the jump beat segment when the jump beat segment completes playing.
- 7. A system for playing a digital music file and altering the play order of the digital music file, said system comprising:a digital computer including a processing unit for executing program code and a sound generating system for converting a digital musical file to audio; an input device, coupled to the digital computer, with the input device including numbered input pads for allowing a user to select an arbitrary jump beat; a memory for storing a digital music file and computer readable program code, with said computer readable program code comprising: program code for causing said computer to create an indexed list of beat pointers, with each beat pointer indexed by a beat number and pointing to a corresponding beat segment of the digital music file; program code for causing said computer to maintain a beat counter indicating the beat number of a current beat segment being played where the beat counter increments at beat intervals equal to the time required to play a beat segment of the digital music file; program code for causing said computer to respond to user activation of a numbered pad to select an arbitrary beat number during a current beat interval indicated by a current beat counter value: to use the arbitrary beat number as an index to access a jump beat pointer from the indexed list; to access a jump beat segment pointed to by the accessed beat pointer; to play the jump beat segment during the current beat interval terminating playing the jump beat segment when the beat counter increments; and to play a following beat segment indicated by the value of the incremented beat counter after the beat counter increments.
- 8. A method, performed by a digital computer system executing program code, for playing a digital music file and altering the play order of a digital music file stored in addressable storage locations in a computer memory, said method comprising the steps of:creating an indexed list of beat pointers, with each beat pointer indexed by a beat number and pointing to corresponding beat segments of the digital music file; maintaining a beat counter indicating the beat number of a current beat segment being played where the beat counter increments at beat intervals equal to the time required to play a beat segment of the digital music file; in response to user selection of a pattern of arbitrary beat numbers: storing the pattern as an altered play list; using the altered play list entries as indices to access jump beat pointers from the indexed list; accessing a first jump beat segment pointed to by a first beat pointer accessed from the altered play list; summing the first jump beat segment and a first beat segment selected by the beat counter to form a first summed beat segment; playing the first summed beat segment during a first beat interval defined by the beat counter; terminating playing the first summed beat segment when the beat counter increments; accessing a second jump beat segment pointed to by a second beat pointer accessed from the altered play list; summing the second jump beat segment and a second beat segment selected by the beat counter to form a second summed beat segment; playing the second summed beat segment during a second beat interval defined by the beat counter; terminating playing the second summed beat segment when the beat counter increments.
- 9. The method of claim 8 further comprising the act of:cross-fading the first and second summed beat segment to eliminate audio artifacts.
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a Continuation-in-Part of Application No. 09/378,279, filed Aug. 20, 1999, entitled “Method and Apparatus for Tempo and Downbeat Detection and Alteration of Rhythm in a Musical Segment” and Application No. 09/378,377, filed Aug. 20, 1999, entitled “Method and Apparatus for Transient Detection and Non-Distortion Time Scaling”, the disclosures of which are incorporated herein by reference. This application also claims Benefit of Provisional application Ser. No. 60/117,154, filed Jan. 25, 1999.
US Referenced Citations (6)
Provisional Applications (1)
|
Number |
Date |
Country |
|
60/117154 |
Jan 1999 |
US |
Continuation in Parts (2)
|
Number |
Date |
Country |
Parent |
09/378279 |
Aug 1999 |
US |
Child |
09/693438 |
|
US |
Parent |
09/378377 |
Aug 1999 |
US |
Child |
09/378279 |
|
US |