METHOD AND APPARATUS FOR CREATING AND
EDITING AUDIO PLAYLISTS IN A DIGITAL AUDIO PLAYER
BACKGROUND OF THE INVENTION
1. Field Of The Invention. The present invention relates to an apparatus and methods for modifying audio playlists.
2. Description Of The Related Art.
The use of portable audio data players capable of playing digitally encoded audio data has become commonplace. In particular, relatively small handheld devices that may process digitally encoded audio data stored on solid state memory devices have become popular.
Additionally, as demand has increased for higher data storage capacity in portable audio data players, another generation of players has been developed and is gaining popularity. These portable audio data players include miniaturized high capacity hard drives that are not as susceptible to skips and other similar problems as are typical hard drives used in personal computers ("PC") and other applications.
In an audio data player, the digital audio data is loaded into a data storage device by first downloading the data to a PC from an audio CD, the Internet, or another digital audio device. The data is then usually compressed according to a selected encoding format and loaded into the data storage device associated with the audio data player. The audio data is decompressed/decoded by the audio data player during playback according to the selected encoding format. A variety of encoding formats for compressing and decompressing audio data is available. As used hereinafter, the term encoding format refers to any encoding/decoding scheme that specifies the syntax and semantics of a compressed bitstream and how the bitstream must be decompressed for reproduction. Such encoding formats include, but are not limited to, MP3 and MP3 Pro.
For MP3 encoded audio data files, the data file is prepended or appended with a special set of frames called an ID3 tag. The ID3 tag contains descriptive text and other data relevant to the audio data file. For example, the tag may include title, artist, album, year, comments, and genre. ID3 tag information is useful for searching, sorting, and selecting specific audio data files based on the information contained in the ID3 tag. Because ID3 tag information is often stored as textual characters, the information may be displayed on the display screen of an audio data player.
Most PC-based audio data file management programs allow the user to create and edit playlists that may then be downloaded to a portable audio data player and used for playing a select sequence of audio data files. One such form of playlist typically associated with MP3 audio data files is known as an M3U list. An M3U playlist consists simply of a text file containing a numbered sequential list of paths or locations of data audio files included in the playlist. Thus, a playlist created on a PC and downloaded to an audio data player may be used to selectively play a sequence of audio data files that are contained in the data storage of the audio data player. However, audio data players generally do not allow a playlist to be created or edited on the audio player itself. Additionally, the M3U file format includes only the file location or path information and a comment field. Thus, the M3U file format does not contain other audio data file information such as the information contained in an ID3 tag of an MP3 audio data file.
BRIEF SUMMARY OF THE INVENTION The present invention addresses some of the above-noted limitations of audio data players, particularly handheld audio players, by providing an audio data player having a digital signal processor ("DSP") coupled with data storage and an audio decoder for processing encoded audio data files, with software for creating playlists with pointers to the individual files.
In particular, the present invention provides a non-PC-based audio data player, such as a portable, handheld, or dedicated audio data player, having a DSP coupled with data storage and an audio decoder, and software for creating and editing standard M3U formatted playlists.
The present invention also provides a method for creating and editing standard M3U formatted playlists in non-PC-based audio data players.
The audio data player generally includes a DSP coupled with a user interface, data storage, buffer memory, and an audio decoder. The user interface includes an LCD and a keyboard having various multi-way and multi-function switches. The audio data player also provides a universal serial bus ("USB") port for connection to a PC or other USB-equipped device. By connecting the audio data player to a PC via the USB port, audio data files and audio playlists may be downloaded to the audio data player and stored into data storage. In one embodiment, the data storage comprises a 10 GB hard drive; however, other moving data storage media or solid state memory devices, such as flash memory cards, may also be used. In this embodiment, the user interface provides menu driven selection, sorting, and playback of audio data files. Additionally, during playback of an audio data file, the LCD displays ID3
tag information such as title, artist, album, and genre. The LCD screen may also display other information such as elapsed playback time, volume level, and preset DSP mode.
The disclosed embodiment also includes software that executes in the audio data player and performs all the necessary functions to create audio playlist files and add, move, and delete audio playlist records in a standard M3U formatted audio playlist.
The disclosed embodiment of the audio data player is a portable handheld unit having a rechargeable battery, 5 volt DC input, headphones output port, and line out port. Therefore, the audio data player may be used for portable applications using headphones, or for fixed applications using AC power and headphones or another audio device. The invention is also applicable to other portable, handheld, or dedicated audio data players, particularly those that lack general data processing functions. Thus, the present invention assists in bridging the gap between general purpose computers and audio data players having lesser computational features.
In one form thereof, a method is disclosed for creating a playlist in an audio data player comprising a DSP coupled with data storage and an audio decoder, by providing a user interface for selecting audio data files stored in the audio data player, creating a file pointer locating each of the audio data files in the data storage, creating in the audio data player a playlist having an M3U format, and storing the file pointers in the playlist.
In another form thereof, the invention involves a method for modifying an existing M3U playlist in an audio data player comprising a DSP coupled with data storage and an audio decoder. The method includes providing a user interface for selecting audio data files and storing a file pointer for each selected audio data file in the existing playlist, with the file pointer locating each of the audio data files in data storage.
In yet another form thereof, an audio data player is disclosed comprising a DSP coupled with a user interface and data storage for storing audio data files, the data storage capable of storing at least one playlist having records including an M3U format, and software enabling the DSP to modify the playlist in response to user inputs received from the user interface.
Advantageously, the disclosed audio data player supports standard M3U playlists and allows a user to modify existing playlists or create new playlists in standard M3U format. Thus, the user may update playlists in the actual audio data player and may use playlists created in the audio data player with other devices and software that utilize M3U formatted playlists, for example, a PC and PC-based music management software.
BRIEF DESCRIPTION OF THE DRAWINGS
The above mentioned and other features and objects of this invention, and the manner of attaining them, will become more apparent and the invention itself will be better understood by reference to the following description of one embodiment of the invention taken in conjunction with the accompanying drawings, wherein:
Fig. 1 is a block schematic diagram of a portable audio data player according to the present invention;
Fig. 2 is a top view of a portable audio data player according to the present invention;
Fig. 3 is a back view of the portable audio data player of Fig. 2; Fig. 4 is a right side view of the portable audio data player of Fig. 2;
Fig. 5 is a flowchart diagram illustrating the steps for creating a playlist in accordance with the present invention;
Fig. 6 is a flowchart diagram illustrating the steps for moving a playlist record in a playlist in accordance with the present invention; Fig. 7 is a schematic block diagram of the data structure of a playlist being modified according to the steps illustrated in Fig. 6;
Fig. 8 is a flowchart diagram illustrating the steps of appending audio data file records to a playlist in accordance with the present invention; and
Fig. 9 is a flowchart diagram illustrating the steps of deleting a playlist record from a playlist in accordance with the present invention.
Corresponding reference characters indicate corresponding parts throughout the several views. Although the drawings represent embodiments of the present invention, the drawings are not necessarily to scale and certain features may be exaggerated in order to better illustrate and explain the present invention. The exemplification set out herein illustrates one embodiment of the invention, in one form, and such exemplifications are not to be construed as limiting the scope of the invention in any manner.
DETAILED DESCRIPTION OF THE INVENTION The embodiment disclosed below is not intended to be exhaustive or limit the invention to the precise form disclosed in the following detailed description. Rather, the embodiment is chosen and described so that others skilled in the art may utilize its teachings. Fig. 1 shows a block diagram of portable audio data player 10 according to the present invention. The general arrangement and operation of the various elements are described hereinbelow. However, the details of the various elements of audio data player 10 are well
known to those skilled in the art and will not be discussed here. Audio data player 10 comprises DSP 12 that controls the various elements and the overall operation of audio data player 10, including transferring data from data storage 32, through buffer memory 25, and to audio decoder DSP 12. DSP 12 includes a suitable amount of memory 23, for storing various instruction sets and programs for controlling the operation of audio data player 10.
DSP 12 may be programmed to perform a variety of signal processing functions during playback of a selected audio data file. In this case, the functions that DSP 12 performs during playback include, but are not limited to, decoding audio data files, volume control, digital sound equalization, and sample conversion. In that regard, DSP 12 includes onboard memory 1 1, wherein the decoder files, audio data files, equalizer mode selection, and various other required data are loaded during playback.
The decoder files comprise programs that control the decoding operations of DSP 12 and the audio data files include data associated with the audio content. Both the audio data files and the decoder files are stored in data storage 32. The decoder file including the programs are transferred to DSP memory 1 1 from data storage 32.
Audio data and decoder programs stored in data storage 32 may be encrypted, requiring that decoding program files and audio data files be decrypted by DSP 12 using one or more decryption keys. The decryption keys may also be stored in data storage 32 and may be security linked to the particular storage device or some other coded component of audio data player 10 so that audio data files encrypted for use on a particular audio data player may only be decrypted and played by that particular audio data player.
As a selected audio data file is decoded, DSP 12 provides the decoded data stream to digital to analog converter 14. D/A converter 14 converts the digital output of DSP 12 into an analog signal and provides the analog signal to headphones amplifier 16 and lineout pre-amp 40. The analog signals are amplified and provided to lineout jack 41 and headphones jack 17, both disposed on housing 13 of audio player 10.
Audio player 10 is adapted to operate with data storage 32. In this embodiment, data storage 32 is a moving data storage device, specifically a hard drive, that may be used to store various data files, including encoded audio data files, decoder files for controlling the decoding operation of DSP 12, playlist files, and computer data files, such as, for example, word processing files, presentations, and spreadsheets. A large amount of data may be readily transferred between data storage 32 and DSP 12 through data bus 33. Buffer memory 25 operates as a circular data buffer to prevent interruption of audio playback caused by a skip or other similar moving data storage device data transfer delays. Using the present invention,
decoder files, playlists, and relatively large amounts of audio data may be stored on data storage 32.
In accordance with the present invention, audio data files are loaded into data storage 32 via USB port 42 from a PC, or other similar device, using music management software that encodes the audio data files in accordance with a selected encoding format, such as MP3, or MP3 Pro, and then stores the encoded data files. Such music management software is implemented using programming methods known in the art. The music management software transmits the audio data files and appropriate decoder files to audio data player 10 across data buses 43 and 33 and into data storage 32. The music management software also generates, and modifies as necessary, a system configuration file and a file attribute table to provide information regarding the various data files and decoder files stored in data storage 32. Using the configuration file and the file attributes table, audio data player 10 is able to display audio data files sorted by various groupings on display 21, determine the correct encoding format for each audio data file, and download the appropriate decoder file for each content file in response to a user selection.
The music management software may also create audio playlists for transmission to audio data player 10 and storage in data storage 32. In the exemplary embodiment, audio data player 10 may utilize standard M3U formatted playlists 90 generated by devices and/or software other than audio data player 10. Additionally, inventive audio data player 10 may modify existing M3U formatted playlists and create new M3U formatted playlists. A modified M3U format suitable for implementing the present invention is described in U.S. Provisional Application Ser. No. 60/318,721, filed on September 10, 2001 , which is incorporated herein by reference.
In the exemplary embodiment, the invention is implemented as software modules that execute in audio data player 10 and perform all the necessary functions to create playlists 90 and add, move and delete audio data file records in existing playlists. Thus, a playlist originally created in a PC or other device may be used and modified in audio data player 10, and an M3U playlist created in audio data player 10 may be used or modified by other devices and software that support standard M3U formatted playlists. Fig. 5 shows a flowchart illustrating the steps for creating an audio playlist in audio data player 10 in accordance with an embodiment of the present invention. In step 102, audio data files stored in data storage 32 are selected. Audio data player 10 may be configured with user interface 17, 21 , 26, and/or 41 (shown in Figs. 1-4 and further described below) to allow the user to select audio data files sorted by various content information categories such as
artist, album, genre, title, or filename. The number of files that may be selected to include in playlist 90 may be limited by memory 25 of audio data player 10. For example, the user may navigate a list of audio data files by using UP arrow button 64, shown in Fig. 2, and DOWN arrow button 66 and select audio data files to include in playlist 90 by pressing SELECT button 68 when the desired audio data file is highlighted on display 21. When the user has completed selection of the audio data files, SAVE button 72 may be pressed to complete step
102.
Step 104 of Fig. 5, includes the creation of file pointer segments for the selected audio data files. File pointers are M3U playlist records or entries, which locate each of the audio data files in data storage 32. For example, in the exemplary embodiment, the file pointer includes the relative path and filename where audio data file is stored.
In step 106, a standard M3U playlist data structure is created. In step 108, the file pointers are stored in playlist 90. In step 110, a default filename for playlist 90 is suggested.
For example, the exemplary embodiment suggests a playlist name having the format playlistX.m3u. X is the smallest number that would create a filename not conflicting with existing files. In step 1 12, the user is given the option of editing the suggested filename.
If the user chooses to use a custom filename, step 114 allows the user to edit the suggested filename and enter a custom filename. In either case, step 116 will store playlist file 90 in audio data player 10 data storage 32. Advantageously, in the exemplary embodiment, file pointers use a relative path location, thus allowing playlists created in audio data player 10 to be accessed by a PC or other device and still contain a valid path since a predefined drive letter or other absolute locator is not assumed in the creation of the path.
Fig. 6 shows a flowchart illustrating the steps for moving the position of audio file records 92 within an existing playlist 90 according to an embodiment of the present invention.
Fig. 7 shows the data structure of playlist 90 including records 92 in a sequence reflecting the modifications according to the steps illustrated in Fig. 6.
In step 202 of Fig. 6, an existing record 92 located in source position 96 of playlist 90 is selected to be moved. In step 204, the user selects which destination position 98 to which selected record 92 is moved. In the exemplary embodiment, user selection is completed by providing a list of records 92 of playlist 90 to display 21. Various navigation and other buttons shown in Fig. 2 may be used to navigate through playlist 90 records 92 and to select the record to be moved and destination position 98.
In step 206, the contents of the selected audio file record 92 are stored in memory 25, data storage 32, or another buffer. In step 208, and as illustrated in Fig. 7, records 92 subsequent to the selected record, or source position 96, are moved forward one record to fill in source position 96 gap formed by removing the selected record. In step 210, and as illustrated in Fig. 7, records 92 beginning with the destination position 98 and through the end of playlist 90 are moved backward one record to make room for the moved record 92.
Finally, in step 212, the selected record is moved from the buffer to the playlist destination position 98, as shown in Fig. 7.
In the exemplary embodiment, steps 208 and 210 move records an exact number of character spaces equal to the number of characters included in the selected audio data file record 92. Thus, the space previously occupied by the selected record and source position 96 is entirely filled and a new space in destination position 98 is created for the exact number of characters to be moved into destination position 98. However, the above described algorithm may be implemented using fixed or variable sized records, according to the implementation of playlist 90.
Fig. 8 shows a flowchart illustrating the steps for appending an existing playlist 90 with selected audio data files according to an embodiment of the present invention. As discussed for creating a new playlist above, selection of audio data files is completed in step 302. In step 304, the user selects an existing playlist 90 to which to append selected audio data files. To simplify the searching for existing playlists 90, audio data player 10 may display only playlists 90 stored in a predetermined folder or folders. In step 306, existing playlist 90 is appended with a carriage return, and/or line feed, in order to start a new line per the M3U format. In step 308, path file pointers for each audio data file to be appended are created, which in the exemplary embodiment constitute relative path file pointers. In step 310, selected playlist 90 is appended with the file pointers.
In the exemplary embodiment, the software module implementing the creation of a new playlist may be combined with the software module implementing appending to an existing playlist so that similar functions may be performed by common program elements. Fig. 9 shows a flowchart illustrating the steps for deleting a playlist record 92 from an existing playlist 90 according to the present invention. In step 402, a playlist record 92 is selected for deletion from an existing playlist 90. In step 404, the selected playlist record 92 is removed from playlist 90. Such removal may be accomplished by the first portion of the steps of Fig. 7. Alternatively, the first character of selected playlist record 92 may be replaced with the M3U comment character, or pound symbol. This alternative step causes the entry
representing the selected audio data file record 92 to be ignored by all applications that utilize the M3U playlist format. Using the comment character instead of removing the entire entry from the playlist reduces the complexity of the delete feature by avoiding the file manipulations that would be required if the actual playlist record were removed from playlist 90. The ultimate deletion of the record is not required, but may be accomplished by software running on another playlist editing machine, such as a personal computer, which has greater resources to organize the deleted playlist.
Figs. 2-4 illustrate an exemplary embodiment of the displays, buttons, switches, indicators, and ports which may be disposed on housing 13 of audio data player 10. Referring to Fig. 2, user input 26 comprises a plurality of buttons 44 (Fig. 3), 46 (Fig. 4), and 60-77 disposed on housing 13 of audio data player 10 for allowing a user to sort and select particular audio data files for playback, and to control playback settings. User input 26 may also comprise other input devices known in the art, for example, keyboard, voice activated touch pad, and touch screen input devices. Two multi-way switches comprise buttons 62-66 and 68- 72. Soft keys 74-77 are multi-function buttons whose function change for various user interface menu displays. Audio data player 10 also includes display 21 disposed on housing 13. Display 21 displays the audio data files and playlists stored in data storage 32, the function of soft keys 74-77, and various status information associated with audio data player 10, such as the playback status shown in Fig. 2 and the top-level menu shown in Fig. 5. Referring again to Fig. 2, STOP/POWER button 60 allows the user to stop playback and to turn audio data player 10 on and off. PLAY/PAUSE button 62 allows the user to start playback and to pause playback. Left arrow button 63 allows a user to move a highlight left when using the menu, and to skip back to the previous audio data file or scan backward in the present audio data file when playing music. The right arrow button 65 allows the user to move a highlight right when using the menu, skip forward to the next audio data file, and scan forward in the current audio data file when playing music. Up arrow button 64 allows the user to move the highlight up when using the menu. Down arrow button 66 allows the user to move the highlight down when using the menu.
Referring still to Fig. 2, SELECT button 68 allows the user to select a highlighted item. Volume up button 69 increases the playback volume level for headphones 18 and volume down button 71 decreases the volume level. MODE button 70 allows the user to select a particular playback mode, including NORMAL, REPEAT, REPEAT ONE, REPEAT ALL, SHUFFLE, and REPEAT ALL SHUFFLE. SAVE button 72 allows a user to create a
new playlist or add audio data files to an existing playlist. Soft keys 74-77 select the menu item that appears just above each button at the bottom of display 21.
Referring to Fig. 3, POWER indicator 78 lights when audio data player 10 is on. CHARGE indicator 79 lights when the power source 47 is charging. In the exemplary embodiment, power source 47 is a rechargeable battery pack. DC IN jack 48 provides 5 volt DC from an AC adapter to power audio data player 10 and recharge power source 47. RESET button 44 allows the user to reset all of the audio data player settings to the factory defaults.
Referring now to Fig. 4, OFF/LOCK switch 46 allows the user to make buttons 60-77 inactive when switch 46 is slid to the locked position. LINE OUT jack 41 allows a user to connect the audio data player to a separate audio system. Headphones jack 17 allows the user to play the decoded audio on headphones 18. USB port 42 provides connection of audio data player 10 to a PC or other similar device using a USB cable.
When the user selects a particular audio data file for playback via user input, DSP 12 loads the appropriate decoder file associated with the selected audio data file from data storage 32 into DSP memory 1 1. Referring again to Fig. 1, DSP 12 then streams the selected audio data file along buses 33 and 29 into DSP 12, using buffer memory 25 as a skip- protection buffer.
After streaming of the selected audio data file begins, DSP 12 decodes the audio data file using the associated decoder file. The decoder files stored in data storage 32 allow audio player 10 to be adapted to process the various encoding formats associated with the audio data files stored in data storage 32. In effect, portable audio player 10 is software upgraded, as necessary, by the decoder files stored in data storage 32 when the user selects a particular audio data file stored in data storage 32.
After powering up, DSP 12 of audio data player 10 loads the system configuration file from data storage 32. DSP 12 identifies the various file formats that need to be supported for the data files stored in data storage 32. The configuration file also includes information that equates the file extension of the audio data files with particular decoder files stored in data storage 32. If the configuration file is valid, DSP 12 reads the file attribute table stored in data storage 32 and causes display 21 to display a menu-driven listing of the file/folders stored in data storage 32.
The main menu displayed on display 21 allows the user to navigate and display audio data files according to groupings or identifying characteristics, such as, for example, artist, album, title, genre, playlist, and all audio data files. From the main menu, the user may
operate user input 26, as described above, to navigate sorted lists and select a desired one of the displayed audio data files or playlists for playback.
When an audio data file or playlist is selected for playback, DSP 12 and DSP 12 perform a number of steps, including several concurrent steps, to provide audio playback. First, DSP 12 identifies and transfers the corresponding decoder file from data storage 32 to
DSP memory 1 1. For example, if the user selects an MP3 file, DSP 12 transfers the MP3 decoder file from data storage 32 to DSP memory 11. The MP3 decoder file is used to control the decoding operation of DSP 12.
DSP 12 begins streaming the selected audio data file from data storage 32 through buffer memory 25 to DSP 12. DSP 12 uses the decoder file to decode and decrypt, if applicable, the audio data file in accordance with the appropriate encoding format. The decoded audio data is provided to D/A converter 14 and headphone amp 16 and line out pre amp 40 for reproduction.
In the present embodiment, the necessary decoder files are stored in data storage 32 along with the audio data files. As such, audio player 10 may be updated to play different encoding formats by software updating of the DSP via decoder files stored along with the audio data files in data storage 32. Thus, audio data player 10 is capable of playing back data files encoded using a variety of encoding formats, including encoding formats that become available in the future. During playback display, shown in Fig. 2, displays various information about the audio data file and the audio data player settings. For example, display 21 in Fig. 2 shows the filename, artist name, album title, genre, current track being played out of total files being played, volume level indication, elapsed play time of audio data file, playback mode indication, bit rate, and selected DSP mode selection. In the exemplary embodiment, suitable DSP 12 include, but are not limited to,
TMS320DA250 manufactured by Texas Instruments Inc., of Dallas, Texas. Associated with DSP 12 is memory 23, in this case, 48 KB of ROM, and buffer memory 25 comprising 8 MB of RAM, providing 7 minutes of buffered play time at 128 kbps and 14 minutes of buffered play time at 64 kbps. DSP 12 also includes associated memory 1 1, in this case 64 KB of RAM. Suitable hard drives for data storage 32 include, but are not limited to, Microdrive™ manufactured by IBM Corporation of Armonk, New York. A 10 GB hard drive, for example, provides approximately 150 hours of audio at MP3 bit-rate of 128 kbps, or 300 hours at a bit- rate of 64 kbps.
It will be apparent to those skilled in the art that although the present invention has been described in terms of an exemplary embodiment, modifications and changes may be made to the disclosed embodiment without departing from the essence of the invention. For example, although the present invention has been described with reference to data storage 32 that is fixedly disposed within audio player 10, the present invention may be implemented using flash memory, another fixed storage device, optical device, or a memory card that is adapted to be removably coupled to audio player 10, wherein the decoder program and audio data files are loaded onto the memory card by the music management software. Also, it is herein recognized that the present feature of loading the appropriate decoder programs and the audio data files may be implemented in the music management software using any one of a number of conventionally known programming methods, or combination of programming methods. Also, although the above is described in reference to an audio data player, the present invention may be extended to any portable data processing device, for example, video display devices, wherein the data may be encoded using one of a plurality of data encoding formats. Therefore, it is to be understood that the present invention is intended to cover all modifications as defined in the appended claims.