`
`Exhibit 4
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 2 of 30
`
`US006721489B1
`
`(12) United States Patent
`Benyamin et al.
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 6,721,489 B1
`Apr. 13, 2004
`
`(54) PLAY LIST MANAGER
`
`(75) Inventors: Daniel Benyamin, Oakland, CA (US);
`Dannie C. Lau, Santa Clara, CA (US);
`Brendan T- Dowling, Malibu, CA (Us)
`
`(73) Assignee: PhatNoise, Inc., Los Angeles, CA (US)
`_
`_
`_
`_
`_
`(*) Nt
`Sb tt
`d l
`tht
`fth
`0 ice:
`u Jec 0 any 1sc a1mer, e ermo 1s
`patent is extended or adjusted under 35
`U'S'C' 154(k)) by 0 days'
`
`(21) Appl. No.: 09/521,874
`
`Mar. 8, 2000
`(22) Filed:
`(51) Int. Cl.7 ......................... .. H04N 5/91; G11B 27/00
`_
`"""""""" " 386/46’ 386/55
`_
`(52)
`(58) Fleld of Search ............................ .. 386/46, 1, 4, 6,
`386/52> 55> 69> 68> 83> 104> 105> 106> 125;
`369/3001; 360/13; H04N 5/91; G11B 27/00
`
`(56)
`
`References Cited
`US PATENT DOCUMENTS
`
`5,173,888 A 12/1992 An ......................... .. 369/33
`5390927 A
`2/1995 Henml et a1‘
`2
`"""""""""" " 369/32
`
`6,016,522 A
`6,055,478 A
`
`1/2000 Rossum ..................... .. 710/52
`4/2000 Heron ...................... .. 701/213
`
`6,084,581 A * 7/2000 Hunt
`6,320,111 B1 * 11/2001 KiZaki
`
`OTHER PUBLICATIONS
`Excerpts from WWW.empeg.com, 1999.
`Clarion AutoPC 310C OWner’s Manual, Clarion Co. Ltd.,
`1998_
`RCA LYRA User’s Guide, RD2201/2202/2204, 1999.
`
`* Cited by eXaIIliner
`Primary Examiner—Robert Chevalier
`
`(57)
`
`ABSTRACT
`
`A play list manager is disclosed that can be used to create
`and update pla-y hSt-S' The play hsts can be. uséd for audio
`information, visual information, or a combination of audio
`and visual information. The user of the play list manager
`Creates a play list and Speci?es Certain Criteria for automa?_
`cally adding tracks to the play list. When a neW track is
`added to the environment, the system tests Whether the
`track’s properties satisfy the criteria for the play list. If so,
`the neW track is automatically added to the play list. In one
`alternative, a user can select a prede?ned play list, Whose
`criteria has already been created. Upon selection of the
`prede?ned play list, the play list manager accesses each
`track and adds the track to the play list if the track’s
`properties satisfy the criteria for the prede?ned play list.
`
`51 Claims, 16 Drawing Sheets
`
`1718~/~
`
`receive one click
`.
`selection
`
`1720
`
`7
`
`search for next track
`
`track found?
`
`1724
`
`access track properties
`
`criteria
`satisfied?
`
`automatically add
`track to play list
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 3 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 1 0f 16
`
`US 6,721,489 B1
`
`Internet
`
`Internet
`server
`
`128
`
`130
`
`I126
`
`monitor
`
`124
`
`f
`
`[122
`
`[120
`
`com uter
`p
`
`docking
`station
`
`disk
`cartridge
`
`102
`
`f
`
`music
`server
`
`[104
`
`head
`unit
`
`1H
`
`I
`
`t
`106
`
`t
`108
`
`t
`110
`
`t
`112
`
`Fig. 1
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 4 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 2 0f 16
`
`US 6,721,489 B1
`
`Fig. 2
`
`140
`
`/
`/'122
`
`144
`
`:142
`
`‘
`
`Flg. 3
`
`[142
`
`150
`swltch f
`l
`
`f
`
`IDE
`connector
`
`__
`USB <n> ‘DE
`
`f144
`
`156
`
`‘I58
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 5 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 3 0f 16
`
`US 6,721,489 B1
`
`x /
`
`174
`
`1zof4‘rdk
`17°
`
`178
`
`176
`Fig. 4
`
`102
`
`Fig. 5
`
`204
`
`202
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 6 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 4 0f 16
`
`US 6,721,489 B1
`
`Connector ~ 322
`
`F '9 ' 6
`
`—| |
`
`Reprogramrnable ~ 330
`glue |og|c
`
`/32D
`/'340
`
`\342
`
`Controller
`
`~ 330
`
`Power
`
`Processor ~ 302
`
`switch ~ 332
`
`[300
`
`boot
`ROM
`
`RAM
`
`IDE
`Glue Logic
`
`\ 304
`
`\ 306
`
`\ 308
`
`D/A
`
`~ 324
`
`\ 310
`
`IDE Connector
`
`Audio Connector ~ 326
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 7 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 5 0f 16
`
`US 6,721,489 B1
`
`acquire music ~ 402
`
`v
`
`store music on cartridge ~ 404
`
`receive power N 602
`
`v
`remove cartridge from
`
`dock V
`
`I
`
`N
`
`
`
`load v
`
`~
`
`insert cartrdige into music
`server
`~ 408
`
`boot OS
`
`~ 606
`
`l
`
`I
`
`operate head unit ~ 410
`
`read Start ?le
`
`~ 608
`
`y
`
`l
`
`head unit sends N 412
`commands
`
`firmware update N 612
`sequence
`
`v
`
`1
`
`music server provides N 414
`music
`
`execute music player N 614
`program
`
`head unit provides music ~ 416
`
`Flg ' 9
`
`Fig. 7
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 8 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 6 6f 16
`
`US 6,721,489 B1
`
`load boot program ~ 542
`
`v
`
`request firmware
`-
`version
`
`~ 548
`
`-
`
`F '9 ' 8
`
`}
`
`request new firmware ~ 554
`
`‘
`receive new firmware ~ 556
`
`t
`decrypt and store
`new firmware ~ 558
`
`V
`
`receive ?rmware N 550
`version
`
`552
`
`is there an
`update?
`
`no
`
`V
`
`receive flag N 570
`
`572
`
`yes
`
`cartridge
`change‘?
`
`.
`.
`send previous location ~ 574
`
`send list 1, track 1
`and 0 Seconds ~ 576
`
`v
`
`execute state machine ~ 578
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 9 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 7 0f 16
`
`US 6,721,489 B1
`
`receive request for
`firmware version
`
`read firmware version
`from disk
`
`i
`i
`
`send firmware version to
`controller
`
`~ 722
`
`~ 724
`
`~ 726
`
`728
`
`request for update?
`
`yes
`
`read firmware from disk ~ 740
`
`i
`
`send firmware to
`
`contioller
`
`~ 742
`
`program glue logic ~ 744
`
`I 1 O
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 10 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 8 0f 16
`
`US 6,721,489 B1
`
`Fig. 11
`
`814
`
`812
`
`310
`
`assign
`ok
`
`1
`
`(2)
`
`816
`
`830
`
`no
`command
`
`0 e
`
`818
`
`820
`
`840
`
`) $
`
`13
`
`14
`
`12
`
`6
`
`E)
`
`got
`forward
`
`got
`reverse
`
`got
`button
`
`15
`
`got
`source
`
`no
`status
`play
`
`864
`
`866
`
`868
`
`870
`
`872
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 11 of 30
`
`U.S. Patent
`
`Apr. 13,2004
`
`Sheet 9 0f 16
`
`US
`6,721,489 B1
`
`Fig. 12
`
`930
`/
`
`send flag to controller
`
`v
`
`932
`/
`
`receive starting location
`
`r
`
`934
`/
`
`start music player
`
`"
`
`936
`
`no
`
`message received?
`
`from controller
`
`from player
`960
`
`end of track or
`end of playlist'?
`
`Plat/"5t
`
`938
`v/
`respond to message from
`controller
`
`962
`/
`
`play next track
`
`964
`/
`r
`send text information to
`controller
`
`970
`/
`r
`play ?rst track of next
`playlist
`
`972
`/
`V
`send text information to
`controller
`
`v
`
`<
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 12 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 10 0f 16
`
`US 6,721,489 B1
`
`Fig. 1 3
`
`1202
`
`1204
`
`1200
`/
`
`1206
`/
`
`devices
`
`play lists
`
`tracks
`
`1208
`/
`
`1210
`/
`
`buttons
`
`one
`Cm!‘
`playlist
`buttons
`
`1212
`/
`
`browser
`
`F'Q- 1 5
`
`Fig. 14
`
`select "create play list" ~1302
`
`Create play list
`
`~1250
`
`v
`
`v
`
`name playlist
`
`~1304
`
`acquire tracks
`
`~1252
`
`r
`
`I
`
`manually add tracks ~1306
`
`add tracks to play list ~1254
`
`add criteria
`
`~1308
`
`select device
`
`~1256
`
`V
`
`V
`
`automatically add tracks ~1310
`
`synchronize
`
`~1258
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 13 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 11 0f 16
`
`US 6,721,489 B1
`
`1718‘,
`
`receive one click
`selection
`
`1350M
`
`audio data
`
`1352M
`1354~I~
`1356v~
`
`1358M
`1360v~
`1362w
`1364M
`
`tag
`title
`artist
`
`album
`year
`comment
`genre
`
`Fig. 16
`
`: t
`
`L
`
`1720
`\
`search for next track
`
`track found?
`
`1724
`
`access track properties
`
`criteria
`satisfied?
`
`no
`
`automatically add
`track to play list
`
`Fig. 20
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 14 of 30
`
`U.S. Patent
`
`Apr. 13,2004
`
`Sheet 12 0f 16
`
`US 6,721,489 B1
`
`store track
`
`~1402
`
`detect new track
`
`l
`l
`
`~1404
`
`Fig. 17
`
`access play lists
`
`~1406
`
`V
`
`choose first play list ~1408
`
`V
`
`1410
`
`criteria
`satisfied?
`
`no
`
`yes
`
`1412
`/
`v
`automatically
`add track to play list
`
`more play lists?
`
`choose next play list ~1416
`__J
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 15 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 13 0f 16
`
`US 6,721,489 B1
`
`1530
`/
`access device properties
`i
`
`1532 /
`
`edit properties
`
`.
`Flg ' 1 8
`
`request for new device ~1502
`
`lg
`
`display dialog box of
`known devices
`
`~15O4
`
`1506
`
`known or new
`device?
`
`known
`
`device info template
`
`E
`
`have firmware?
`
`1522
`
`browse for firmware
`
`update firmware’?
`
`\
`1510
`
`prepare to load firmware ~1512
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 16 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 14 0f 16
`
`US 6,721,489 B1
`
`1600
`/
`receive request to
`synchronize
`
`1602
`/
`
`r
`
`access GUI device f||e(s)
`
`.
`
`.
`
`1604
`/
`v
`access stored device
`?le(s)
`
`1606
`/
`v
`remove tracks from
`device
`
`r
`
`1608
`/
`
`add tracks to device
`
`l
`
`change flag
`l
`
`1610
`
`/
`
`1612 /
`
`update play list files on
`device
`
`1614
`/
`r
`update play list config
`files on device
`
`Fig. 19
`
`1616
`
`new device config
`
`no
`
`info?
`
`yes 1618
`/
`f.
`. f
`d t d .
`up a e evice con lg in o
`
`yes 1624
`
`/
`
`add new firmware
`
`no
`
`add new OS
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 17 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 15 0f 16
`
`US 6,721,489 B1
`
`Internet
`
`Internet
`server
`
`128
`
`\1 3O
`
`_
`
`Fig. 21
`[126
`
`monitor
`
`computer
`
`124
`
`1704
`
`_
`disc
`changer
`
`102a
`
`music server
`
`l
`
`i
`
`H
`l
`108
`
`l
`106
`[122
`
`I
`7;
`110
`
`Z
`112
`I120
`
`docking
`station
`
`disk
`cartridge
`
`Fig. 23
`
`acquire music
`
`~1902
`
`v
`store music on disk ~19O4
`cartridge
`
`v
`insert disk cartridge into ~1906
`server
`
`v
`receive selection of music
`source
`“A908
`
`v
`
`play selected music ~1910
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 18 of 30
`
`U.S. Patent
`
`Apr. 13, 2004
`
`Sheet 16 0f 16
`
`US 6,721,489 B1
`
`Connector ~ 322
`
`1804
`
`1806
`
`— Glue logic ~ 330
`
`1808
`
`320a 1802 \ 7
`[340
`
`\342
`
`Power
`
`f 332
`—— switch
`
`Controller
`
`l
`
`_ Processor ~ 302
`
`Control / 1810
`Panel
`
`[300
`
`58?;
`
`RAM
`
`\304
`
`D/A
`
`\. 324
`
`\306
`3
`10
`
`IDE
`Glue Logic
`
`\ 308
`
`IDE Connector
`
`1816
`1814\
`t
`uner
`
`[1812 /-1818 /-182O
`preamp!
`am H. :
`equalizer
`pl ‘er I
`
`audio
`switch
`
`Fig. 22
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 19 of 30
`
`US 6,721,489 B1
`
`1
`PLAY LIST MANAGER
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`This Application is related to the following Applications:
`AUDIO/VISUAL SERVER, by Dannie C. Lau, et al.,
`?led the same day as the present application, Ser. No.
`09/521,182; and
`VEHICLE SOUND SYSTEM, by Dannie C. Lau, et al.,
`?led the same day as the present application, Ser. No.
`09/521,186.
`Each of these related Applications are incorporated herein
`by reference.
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`The present invention is directed to a system for manag
`ing play lists.
`2. Description of the Related Art
`Digitally stored music continues to gain popularity.
`Rather than drive to a store, consumers are doWnloading
`music from the Internet and playing music on a computer or
`on a digital music player. An eXample of a digital music
`player is the Rio digital music player from Diamond Mul
`timedia. This music player includes a ?ash memory for
`storing music and electronics for playing the music. One
`advantage of digital music is that the storage medium is
`Writeable. Thus, the user can choose What songs to play and
`Write those songs to the music player’s storage medium. On
`the other hand, audio compact discs are not Writeable. In
`addition to the versatility offered by digital music, there is a
`huge variety of music available to be doWnloaded through
`the Internet. With the acceptance of a standard for com
`pressed audio ?les, digital music has soared in popularity.
`Users of digital music technology can acquire large
`amounts of digital music ?les. In order to manage these ?les,
`play lists are created. For eXample, a play list may be a list
`of songs to be played by a music player. Play lists alloWs
`users to group their songs according to Whatever method the
`user desires and plays the tracks referenced by the play list
`on a music player.
`One problem that has been associated With play lists is the
`enormous effort needed to manage play lists. As the user
`acquires large amounts of ?les, managing the play list
`becomes dif?cult. A user may have multiple or hundreds of
`play lists. Additionally, the user may have hundreds or
`thousands of music ?les. The effort to move a large number
`of ?les into the appropriate play lists is time consuming.
`Furthermore, as users doWnload neW ?les, the user must
`remember to add the neW tracks to one or more play lists.
`This tWo step approach—(1) doWnloading music ?les and
`(2) moving the doWnloaded ?les to one or more play
`lists—is cumbersome. Therefore, many users stop using
`play lists.
`Thus, there is a need for an improved means for managing
`play lists.
`
`15
`
`25
`
`35
`
`45
`
`55
`
`SUMMARY OF THE INVENTION
`
`The present invention, roughly described, provides for a
`play list manager than can be used to create and update play
`lists. The play lists can be used for audio information, visual
`information or a combination of audio and visual informa
`tion. In one embodiment, a play list stores the names of
`tracks to be played. The user of the play list manager creates
`
`65
`
`2
`a play list and speci?es certain criteria for automatically
`adding tracks to the play list. When a neW track is added to
`the environment, the system tests Whether the track’s prop
`erties satisfy the criteria for the play list. If so, the neW track
`is automatically added to the play list. In one alternative, a
`user can select to create or update a prede?ned play list
`Whose criteria has already been created. Upon selection of
`the prede?ned play list, the play list manager accesses each
`track and automatically adds the track to the play list if the
`track’s properties satisfy the criteria for the prede?ned play
`list. In one embodiment, after a play list is created and tracks
`are added, the tracks on the play list are automatically
`played.
`One embodiment of the present invention includes the
`steps of comparing a set of one or more properties of a ?rst
`track to criteria of a ?rst play list and automatically adding
`the ?rst track to the ?rst play list if the properties of the ?rst
`track satisfy the criteria of the ?rst play list. One embodi
`ment includes detecting that the ?rst track is available such
`that the step of comparing is performed automatically in
`response to the step of detecting. Another embodiment of the
`present invention includes comparing properties for a ?rst
`track to play list criteria for a plurality of play lists and
`automatically adding the ?rst track to each of the play lists
`having play list criteria satis?ed by the properties for the ?rst
`track. Thus, the method can be used to create or update one
`play list or multiple play lists. In another embodiment, the
`present invention includes receiving a request to generate a
`play list having prede?ned play list criteria, determining
`Which tracks from a set of tracks have properties satisfying
`the play list criteria and automatically adding to the play list
`the tracks having properties satisfying the play list criteria.
`The present invention can be implemented using
`softWare, hardWare or a combination of softWare and hard
`Ware. When all or portions of the present invention are
`implemented in softWare, that softWare can reside on a
`processor readable storage medium. Examples of an appro
`priate processor readable storage medium include a ?oppy
`disk, a hard disk, CD-ROM, memory or IC, ?ash memory,
`etc. In one embodiment, the hardWare used to implement the
`present invention includes an output device (eg a monitor,
`a printer, speakers, etc.), an input device (eg a keyboard,
`pointing device, etc.), a processor, an input interface and a
`processor readable storage medium. The input interface
`alloWs the processor to communicate With a disk drive,
`netWork or other device for entering data into the hardWare.
`The processor readable storage medium stores program code
`capable of programming the processor to perform the steps
`to implement the present invention. The present invention
`can be implemented on a desktop computer, netWork server,
`as part of a Web page on the Internet, another type of
`computing platform, a head unit, a server, an audio device,
`a visual device, or any other device suitable for using the
`present invention.
`These and other objects and advantages of the present
`invention Will appear more clearly from the folloWing
`detailed description in Which the preferred embodiment of
`the invention has been set forth in conjunction With the
`draWings.
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a block diagram of one embodiment of the
`present invention.
`FIG. 2 is the side vieW of the dock of the present
`invention.
`FIG. 3 is a schematic diagram of the dock of the present
`invention.
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 20 of 30
`
`US 6,721,489 B1
`
`3
`FIG. 4 is a cut away overhead vieW of a removable hard
`disk drive.
`FIG. 5 is the perspective vieW of the server of the present
`invention.
`FIG. 6 is a block diagram of the components of the server
`of one embodiment of the present invention.
`FIG. 7 is a How chart describing the operation of the
`present invention.
`FIG. 8 is a How chart describing the start up process for
`the controller.
`FIG. 9 is a How chart describing the start up process for
`the processor.
`FIG. 10 is a How chart describing the ?rmWare update
`sequence performed by the processor.
`FIG. 11 is a state diagram for the controller.
`FIG. 12 is a How chart describing a process performed by
`the processor for playing audio/visual data.
`FIG. 13 depicts the graphical user interface for the soft
`Ware used on a computer to manage play lists and load tracks
`on the hard disk drive.
`FIG. 14 is a How chart describing the process of acquiring
`tracks, managing tracks and adding tracks to a device.
`FIG. 15 is a How chart describing the process of creating
`a play list.
`FIG. 16 is a block diagram depicting an ID3 tag.
`FIG. 17 is a How chart describing the method for auto
`matically adding tracks to a play list.
`FIG. 18 is a How chart describing the method of selecting
`neW interface program code to be loaded on the server of the
`present invention.
`FIG. 19 is a How chart describing the process of synchro
`niZing data betWeen the hard disk drive and the softWare on
`the computer.
`FIG. 20 is a How chart describing the process for gener
`ating a one click play list.
`FIG. 21 is a block diagram of an alternative embodiment
`of the present invention.
`FIG. 22 is a block diagram of the components of an
`alternative embodiment of the music server.
`FIG. 23 is a How chart describing the operation of an
`alternative embodiment of the present invention.
`
`DETAILED DESCRIPTION
`
`While the preferred embodiment of the invention is
`described in regard to an in-vehicle audio system, the
`present invention can also be used in other conteXts and With
`other types of audio/visual data. For purposes of this patent,
`audio/visual includes audio alone, visual alone, or a com
`bination of audio and visual. EXamples of audio data include
`music, speech or other sounds. EXamples of visual data
`include video, animation, slide shoW, teXt, still images, etc.
`Thus, the present invention can be used as a server for video
`data, visual teXt data, speech data, or any other type of
`audio/visual data. In one embodiment, the audio/visual data
`is grouped into tracks. A track could be a song, a message,
`a story, a video, a scene from a video, etc. The term track is
`used, therefore, to refer to a grouping of audio/visual data.
`FIG. 1 depicts one embodiment of the present invention.
`FIG. 1 depicts music server 102 Which is one embodiment
`of an audio/visual server. Music server 102 emulates a disc
`changer. Emulating a disc changer is understood to mean
`that music server 102 is not an actual disk changer; hoWever,
`based on the input/output data communication to and from
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`4
`the audio/visual server, music server 102 appears to act like
`a disc changer. Music server 102 is in communication With
`head unit 104. In one embodiment, head unit 104 is a
`standard automobile stereo head unit Which is adapted to
`communicate With a disc changer. Connected to head unit
`104 are speakers 106, 108, 110 and 112 for providing music
`to the user. FIG. 1 also shoWs removable disk cartridge 120
`Which can be connected to music server 102 or docking
`station 122 (also called a dock).
`Docking station 122 is connected to computer 124. In one
`embodiment, docking station 122 connects to a USB port of
`computer 124. In other embodiments, docking station 122
`can connect to a parallel port, serial port, ?re Wire connec
`tion or other interface. In other embodiments, docking
`station 122 communicates With computer 124 using a Wire
`less connection, including infrared, RF, etc. Alternatively,
`docking station can be a separate entity on a netWork
`communicating to computer 124 over a netWork.
`FIG. 1 shoWs a monitor 126 connected to computer 124.
`Computer 124 is a standard personal computer knoWn in the
`art. For eXample, computer 124 includes a processor, a
`memory in communication With the processor, a hard disk
`drive in communication With the processor, a USB port, a
`serial port, a parallel port, a netWork interface (e.g. netWork
`card or modem), a keyboard and a pointing device. The
`keyboard, pointing device and monitor 126 are used to
`provide and interact With a graphical user interface (GUI) so
`that a user can add tracks to music server 102. Computer 124
`is connected to Internet 128 via a modem, LAN or other
`means. In one embodiment of the present invention, an
`Internet server 130 is provided via the Internet for doWn
`loading tracks, doWnloading information about tracks, stor
`ing information about tracks and doWnloading ?rmWare. In
`one embodiment of the system of FIG. 1, the tracks are
`songs.
`In general, the embodiment shoWn in FIG. 1 operates as
`folloWs. A user Will insert disk cartridge 120 into docking
`station 122. Using the GUI on computer 124, the user Will
`doWnload tracks from the Internet (including Internet server
`130) to the hard disk of computer 124. The doWnloading of
`music can also be done Without using the GUI of the present
`invention. After the tracks are on disk cartridge 120, disk
`cartridge 120 is removed from docking station 122 and
`inserted into music server 102. In one embodiment, music
`server 102 and head unit 104 are mounted in an automobile.
`More speci?cally, music server 102 may be mounted in the
`trunk of a car and head unit 104 is mounted in the dash
`board. After disk cartridge 120 is inserted into music server
`102, a user can use head unit 104 to access tracks on disk
`cartridge 120 and play those tracks through speakers 106,
`108, 110 and 112.
`FIG. 2 is a side vieW of docking station 122. On the top
`of docking station 122 is an opening 140 for receiving disk
`cartridge 120. In one embodiment, disk cartridge 120 is
`inserted into opening 140 in a vertical orientation. FIG. 2
`also shoWs tWo Wires connected to docking station 122. Wire
`142 supplies DC poWer to docking station 122. In one
`embodiment, Wire 142 is connected to a ?ve volt regulated
`transformer. Wire 144 connects docking station 122 to a
`USB port of computer 124.
`FIG. 3 is a schematic of the internal components of
`docking station 122. Wire 142 is connected to sWitch 150.
`SWitch 150 is a mechanical sWitch that is triggered When
`disk cartridge 120 is completely and properly inserted into
`opening 140. SWitch 150 is connected to IDE controller 152
`and USB to IDE interface 154. When sWitch 150 is triggered
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 21 of 30
`
`US 6,721,489 B1
`
`10
`
`15
`
`5
`(disk cartridge 120 is inserted in docking station 122), power
`from Wire 142 is provided to IDE connector 152 and USB
`to IDE interface 154. USB to IDE interface 154 is also
`connected to Wire 144, IDE connector 152, LED 156 and
`LED 158. LED 156 indicates Whether docking station 122 is
`receiving poWer. LED 158 indicates hard drive activity. In
`one embodiment, USB to IDE interface 154 is an OnSpec
`90C36. The purpose of the docking station is to connect the
`hard disk drive to the computer. Other alternative docking
`stations different from that of FIGS. 2 and 3 could also be
`used Within the spirit of the present invention. Examples of
`suitable alternative docks include a cable that connects to
`both a computer and the disk drive, a connector that con
`nects to both a computer and the disk drive, a drive bay that
`is Within or connected to the computer and can receive the
`disk drive, etc.
`FIG. 4 shoWs an overhead cutaWay vieW of disk cartridge
`120. Outer shell 170 protects and houses the components of
`disk cartridge 120. In one embodiment, outer shell 170 is
`made of hard plastic. Metals can also be used. At one end of
`outer shell 170 is IDE connector 172. Connected to IDE
`connector 172 is a printed circuit board (or a ?exible ribbon
`cable) With various circuit elements and Wires. For example,
`?exible ribbon cable 174 includes capacitors and resistors
`for decoupling. Connected to ?exible ribbon cable 174 is
`connector 176. In one embodiment, connector 176 is a 44
`pin connector. Flexible ribbon cable 174 maps signals from
`connector 172 to connector 176. Connector 176 is attached
`to hard disk drive 178. In one embodiment, hard disk drive
`178 is a 5 gigabyte hard disk drive from Toshiba With a 21/2
`inch form factor. Other hard disk drives can also be used. A
`hard disk drives utiliZing one or multiple disks can be used.
`Hard disk drives With multiple disks typically have separate
`read/Write heads for each disk. In other alternatives, the hard
`disk drive can be replaced by other high density disk drives,
`?ash memory, CDRW or other appropriate storage media. In
`one embodiment, the gap betWeen hard disk drive 178 and
`outer shell 170 can be ?lled With a shock absorbing sub
`stance.
`Hard disk drive 178 includes music ?les to be played by
`music server 102. Hard disk drive 178 also includes various
`program code and con?guration information. In one
`embodiment, hard disk drive 178 includes at least ?ve top
`level directories: /MP3, /playlist, /playlist con?g,
`/microcontroller con?g and /OS. The directory /MP3 con
`tains all of the audio ?les. The directory /playlist contains all
`the play list ?les. The drive can store many play lists. Each
`play list ?le contains a set of strings. Each string speci?es the
`path location to a particular track in the /MP3 directory. The
`strings are stored,in the ?le according to the order set up by
`the user. The directory /playlist con?g contains ?les that
`include special con?guration information for each play list.
`Examples of such special con?guration information includes
`Whether there should be a pause betWeen tracks, Whether
`text output should be enabled, Whether random play should
`be enabled, the length of the gap betWeen tracks, informa
`tion about repeating tracks in the play list, etc.
`The directory /microcontroller con?g includes a series of
`?les for con?guring controller 320 (see FIG. 6) to commu
`nicate With head unit 104. One ?le is a text ?le With a set of
`?ags Which indicate any of the folloWing: disk cartridge
`change, other devices connected, head unit text on/off, time
`elapsed to be displayed up or doWn, etc. The ?ag indicating
`disk cartridge change is a one bit binary value that is
`inverted by computer 124 if disk cartridge 120 is connected
`to docking station 122 and data is Written to or deleted from
`disk cartridge 120. Note that in one embodiment, music
`
`6
`server 102 is prohibited from Writing to disk cartridge 120.
`The directory/microcontroller con?g also includes a button
`mapping ?le Which is used to override the function of any
`button on the head unit. A ?le is also included Which
`provides a temperature setting for automatically turning the
`box off. In one embodiment, music server 102 includes a
`thermometer and electronics for determining the tempera
`ture. If the temperature reaches the setting in the ?le, music
`server 102 Will automatically turn off. Another ?le in the
`directory/microcontroller con?g stores the ?rmWare used to
`program controller 320 to communicate With head unit 104.
`The ?rmWare on hard disk drive 178 is encrypted. The/
`microcontroller con?g directory also includes ?les Which
`store a version number for the encrypted microcode and
`code for programming a PLD or FPGA (described beloW).
`In the/OS directory, hard disk drive 178 stores the oper
`ating system for music server 102. In one embodiment, the
`operating system used is LINUX. Other operating systems
`can also be used. In addition to the operating system code,
`the/OS directory also stores drivers including the IDE driver,
`audio drivers for the digital to analog converter, a driver for
`the serial interface betWeen the processor and the controller,
`etc. The/OS directory also stores a start up ?le Which
`includes start up code performed by processor 302 after
`receiving poWer.
`FIG. 5 shoWs a perspective vieW of music server 102. At
`one end of music server 102 is an opening 202 for inserting
`disk cartridge 120. The components of music server 102 are
`protected by hinged door 204. When disk cartridge 120 is
`inserted in opening 202, door 204 is opened. In one
`embodiment, music server 102 Will include metal springs or
`high density shock absorbing air pouches inside the outer
`box in order to suspend the frame that holds disk cartridge
`120.
`FIG. 6 shoWs a block diagram of the components of music
`server 102. Bus 300 is connected to processor 302, boot
`ROM 304, RAM 306 and IDE glue logic 308. Connected to
`IDE glue logic 308 is IDE connector 310. IDE connector
`310 is used to connect to connector 172 of disk cartridge
`120. RAM 306 is used as memory for processor 302. In one
`embodiment, RAM 306 includes 16 megabytes of DRAM.
`Boot ROM 304 is used to store the code for booting
`processor 302. Processor 302 is also connected to controller
`320. Music server 102 uses a separate processor and con
`troller because the communication With the head unit is in
`real time, While processor 302 is busy decoding audio and/or
`visual data. In one embodiment, processor 302 is an EP 7212
`from Cirrus Logic, Which implements the ARM architecture.
`One example of a suitable controller is the Phillips 8051
`Microcontroller. Note that other processors and/or control
`lers can also be used. Although controller 320 is referred to
`as a controller, the terms controller and processor can be
`used interchangeably and controller 320 can be referred to as
`a processor. The reason device 320 is referred to as a
`controller rather than a processor is to make the text clearer
`to read.
`The communication betWeen controller 320 and processor
`302 includes a serial interface. In some embodiments, there
`is also a program signal sent from processor 302 to control
`ler 320. Controller 320 includes an internal ?ash memory.
`The program signal is used by processor 302 to program the
`internal ?ash memory of controller 320. Controller 320 is
`connected to glue logic 330, Which is connected to connector
`322. In one embodiment, connector 322 is a 24 pin centron
`ics port. Connector 322 is attached to a cable. The other end
`of the cable connects to head unit 104. Many automobile
`stereo head units have a disc changer port in the back of the
`
`25
`
`35
`
`45
`
`55
`
`65
`
`
`
`Case 1:20-cv-03159-AKH Document 1-4 Filed 04/21/20 Page 22 of 30
`Case 1:20-cv-03159—AKH Document 1—4 Filed 04/21/20 Page 22 of 30
`
`US 6,721,489 B1
`
`7
`head unit. This port contains an interface to connect to a
`cable. The signals communicated by the disc changer port
`include a 12 volt power source, ground, an accessory signal,
`a clock signal and data pins.
`In some alternatives,
`the
`accessory signal is not part of the cable, is not sent or is sent
`separately.
`Glue logic 330 is reprogrammable. For example, glue
`logic 330 can be an FPGAor a PLD (as well as other suitable
`reprogrammable logic devices). Glue logic 330 is connected
`to and programmed by processor 302. Glue logic 330
`provides latches,
`inverters and other glue logic that
`is
`specific for each head unit and used to make communication
`from controller 320 compatible with the particular head unit.
`Connecto