PATENT DOCUMENT

Publication Number: US-8898170-B2
Application Number: US-50374309-A
Country: US
Kind Code: B2

Title: Performance metadata for media

Abstract:
Systems and methods for generating and using performance metadata associated with a media piece (e.g., music or video) are provided. An electronic device can monitor a user&#39;s workout performance while playing a particular media piece. Workout performance may include the user&#39;s rate of motion and/or one or more physiological metrics of the user. Based on the user&#39;s workout performance, the electronic device can create new or modify existing performance metadata associated with the media piece. In some embodiments, the performance metadata based on a particular user&#39;s workout performance in response to a media piece may be combined with collective performance metadata based on the workout performances of multiple users in response to the media piece. The combined performance metadata may then be stored as new collective metadata. Accordingly, the collective performance metadata can represent the average response to a media piece over multiple users.

Claims:
What is claimed is: 
     
       1. A method for generating performance metadata, the method comprising:
 providing a media piece; 
 measuring a workout performance datum while providing the media piece; 
 generating, based on the measured workout performance datum, performance metadata representing a difference between the measured workout performance datum and a target in an exercise plan, wherein the performance metadata includes measurements of the workout performance datum taken while the media piece was provided; 
 combining the performance metadata with past collective performance metadata to generate new collective performance metadata, wherein the past collective performance metadata represents a difference between a previously measured workout performance datum and the target in the exercise plan, the previously measured workout performance datum being previously measured while previously providing the media piece, and wherein the new collective performance metadata represents an average of the differences between the measured workout performance data and the target in the exercise plan when the media piece is provided; and 
 selecting the media piece for playback based on the new collective performance metadata representing the average of the differences between the measured workout performance data and the target in the exercise plan when the media piece is provided. 
 
     
     
       2. The method of  claim 1 , wherein the media piece is a song. 
     
     
       3. The method of  claim 1 , wherein measuring a workout performance datum comprises:
 measuring the rate of motion. 
 
     
     
       4. The method of  claim 1 , wherein measuring a workout performance datum comprises:
 measuring the physiological metric. 
 
     
     
       5. The method of  claim 1 , wherein the performance metadata represents the effect of the media piece on the workout performance datum. 
     
     
       6. The method of  claim 1 , wherein the performance metadata represents a difference between the workout performance datum and the target in the exercise plan during different segments of the media piece. 
     
     
       7. The method of  claim 1 , wherein the past collective performance metadata represents workout performance data of multiple users. 
     
     
       8. The method of  claim 1 , further comprising:
 uploading information about a workout performance to a server. 
 
     
     
       9. The method of  claim 8 , wherein:
 the generating is performed by the server; and 
 the combining is performed by the server. 
 
     
     
       10. The method of  claim 8 , wherein:
 the uploaded information comprises the performance metadata; and 
 the combining is performed by the server. 
 
     
     
       11. An electronic device for generating performance metadata, the device comprising:
 output circuitry operative to play back a media piece; 
 a sensing component operative to measure a workout performance datum during play back of the media piece; 
 control circuitry electrically coupled to the output circuitry and the sensing component and operative to:
 generate, based on the measured workout performance datum, performance metadata representing a difference between the measured workout performance datum and a target in an exercise plan, wherein the performance metadata includes measurements of the workout performance datum taken while the media piece was played back, 
 combine the performance metadata with past collective performance metadata to generate new collective performance metadata, wherein the past collective performance metadata represents a difference between a previously measured workout performance datum and the target in the exercise plan, the previously measured workout performance datum being previously measured while previously providing the media piece, and wherein the new collective performance metadata represents an average of the differences between the measured workout performance data and the target in the exercise plan when the media piece is played back, and 
 select the media piece for playback based on the new collective performance metadata representing the average of the differences between the measured workout performance data and the target in the exercise plan when the media piece is played back. 
 
 
     
     
       12. The device of  claim 11 , wherein the control circuitry is operative to combine, based at least partially on a characteristic of a user, the performance metadata with the past collective performance metadata that is associated with the media piece. 
     
     
       13. The device of  claim 11 , further comprising:
 input circuitry electrically coupled to the control circuitry and operative to receive a user input related to a workout. 
 
     
     
       14. The device of  claim 13 , wherein the received user input represents the quality of the workout. 
     
     
       15. The device of  claim 13 , wherein the received user input represents the effectiveness of the media piece. 
     
     
       16. The device of  claim 13 , wherein the control circuitry is operative to generate performance metadata based at least partially on the received user input. 
     
     
       17. The device of  claim 13 , wherein the control circuitry is operative to combine the performance metadata with the past collective performance metadata that is associated with the media piece, based at least partially on the received user input. 
     
     
       18. The device of  claim 11 , further comprising:
 communications circuitry electrically coupled to the control circuitry and operative to transmit the performance metadata to a server. 
 
     
     
       19. A server for maintaining collective performance metadata, the server comprising:
 storage operative to store past collective performance metadata wherein the past collective performance metadata comprises a result of monitoring a plurality of prior workout performances relative to a target in an exercise plan, wherein the past collective performance metadata includes a previously measured workout performance datum for the prior workout performances while a media piece was provided and represents a difference between the previously measured workout performance datum and the target in the exercise plan; 
 communications circuitry operative to receive performance metadata that is associated with the media piece from a plurality of devices, wherein each received performance metadata includes a measured workout performance datum for a workout performance of one of a plurality of users relative to the target in the exercise plan while the media piece was provided and represents a difference between the measured workout performance datum and the target in the exercise plan; and 
 control circuitry electrically coupled to the storage and the communications circuitry and operative to:
 combine the performance metadata received from one of the plurality of devices with the past collective performance metadata stored in the storage to generate new collective performance metadata, wherein the new collective performance metadata represents an average of the differences between the measured workout performance data and the target in the exercise plan when the media piece is provided, and wherein the communications circuitry is further operative to transmit the new collective performance metadata to the plurality of devices to allow selection of the media piece for playback based on the new collective performance metadata representing the average of the differences between the measured workout performance data and the target in the exercise plan when the media piece is provided. 
 
 
     
     
       20. The server of  claim 19 , wherein:
 the communications circuitry is operative to receive a user input from one of the plurality of devices; and 
 the control circuitry is operative to combine the performance metadata received from the one device with the past collective performance metadata based at least partially on the received user input. 
 
     
     
       21. The server of  claim 20 , wherein:
 the communications circuitry is operative to receive data representing a user characteristic from the one device; and 
 the control circuitry is operative to combine performance metadata received from the one device with past collective performance metadata based at least partially on the received user characteristic. 
 
     
     
       22. The server of  claim 19 , wherein:
 the storage is operative to store the new collective performance metadata. 
 
     
     
       23. A non-transitory computer readable medium for an electronic device, the computer readable medium comprising:
 a first instruction code for providing a media piece; 
 a second instruction code for measuring a workout performance datum while providing the media piece; 
 a third instruction code for generating, based on the measured workout performance datum, performance metadata representing a difference between the measured˜workout performance datum and a target in an exercise plan, wherein the performance metadata includes measurements of the workout performance datum taken while the media piece was provided; 
 a fourth instruction code for combining the performance metadata with past collective performance metadata to generate new collective performance metadata, wherein the past collective performance metadata represents a difference between a previously measured workout performance datum and-the target in the exercise plan, the previously measured workout performance datum being previously measured while previously providing the media piece, and wherein the new collective performance metadata represents an average of the differences between the measured workout performance data and the target in the exercise plan when the media piece is provided; and 
 a fifth instruction code for selecting the media piece for playback based on the new collective performance metadata representing the average of the differences between the measured workout performance data and the target in the exercise plan when the media piece is provided. 
 
     
     
       24. A method for generating collection performance metadata for a collection of media pieces comprising at least a first media piece and a second media piece, the method comprising:
 providing a first media piece of a collection; 
 measuring a first workout performance datum while providing the first media piece; 
 generating, based on the measured first workout performance datum, first performance metadata associated with the first media piece, wherein the first performance metadata represents a difference between the measured first workout performance datum and a workout target in an exercise plan; 
 providing a second media piece of the collection; 
 measuring a second workout performance datum while providing the second media piece; 
 generating, based on the measured second workout performance datum, second performance metadata associated with the second media piece, wherein the second performance metadata represents a difference between the measured second workout performance datum and the workout target in the exercise plan; and 
 generating collection performance metadata based on the first performance metadata and the second performance metadata, wherein the collection performance metadata comprises a representation of effectiveness of the first and second media pieces in assisting a user to reach the workout target, the effectiveness irrespective of beats per minute of the media piece, and wherein the collection performance metadata comprises an average of the first performance metadata and the second performance metadata representing the differences between the measured workout performance data and the workout target in the exercise plan while providing media pieces of the collection; and 
 selecting the collection for playback based on the collection performance metadata representing the differences between the measured workout performance data and the workout target in the exercise plan while providing media pieces of the collection. 
 
     
     
       25. The method of  claim 24 , wherein the collection performance metadata comprises the first performance metadata and the second performance metadata. 
     
     
       26. The method of  claim 24 , wherein the generating the collection performance metadata comprises generating the collection performance metadata based on the first performance metadata, the second performance metadata, and the context of the second performance metadata, and the context of the second media piece in the collection. 
     
     
       27. The method of  claim 24 , wherein the collection performance metadata represents the effectiveness of the second media piece based on a position of the second media piece with respect to the first media piece in the collection. 
     
     
       28. The method of  claim 24 , further comprising modifying a position of the second media piece with respect to the first media piece in the collection based on the collection performance metadata. 
     
     
       29. The method of  claim 24 , further comprising removing the second media piece from the collection based on the collection performance metadata. 
     
     
       30. The method of  claim 24 , further comprising associating the collection performance metadata with at least one of the first media piece, the second media piece, and the collection. 
     
     
       31. The method of  claim 24 , further comprising combining the collection performance metadata with past collection performance metadata that is associated with the collection, wherein the past collection performance metadata represents a difference between a previously measured workout performance datum and the target in the exercise plan, the previously measured workout performance datum being previously measured while previously providing at least one of the first media piece or the second media piece of the collection. 
     
     
       32. The method of  claim 24 , wherein the first media piece is a first song and wherein the second media piece is a second song. 
     
     
       33. The method of  claim 24 , wherein the collection is a playlist. 
     
     
       34. An electronic device for generating collection performance metadata for a collection of media pieces comprising at least a first media piece and a second media piece, the electronic device comprising:
 output circuitry operative to play back a first media piece and a second media piece of a collection; 
 a sensing component operative to:
 measure a first workout performance datum during playback of the first media piece, and 
 measure a second workout performance datum during playback of the second media piece; 
 
 control circuitry electrically coupled to the output circuitry and the sensing component, the control circuitry operative to:
 generate, based on the measured first workout performance datum, first performance metadata associated with the first media piece, wherein the first performance metadata represents a difference between the measured first workout performance datum and a workout target in an exercise plan, 
 generate, based on the measured second workout performance datum, second performance metadata associated with the second media piece, wherein the second performance metadata represents a difference between the measured second workout performance datum and the workout target in the exercise plan, 
 generate collection performance metadata based on the first performance metadata and the second performance metadata, wherein the collection performance metadata comprises a representation of effectiveness of the first and second media pieces in assisting a user to reach the workout target in the exercise plan, the effectiveness irrespective of beats per minute of the media piece, and wherein the collection performance metadata comprises an average of the first performance metadata and the second performance metadata representing the differences between the measured workout performance data and the workout target in the exercise plan when the first media piece and the second media piece are provided, and 
 select the collection for playback based on the collection performance metadata representing the differences between the measured workout performance data and the workout target in the exercise plan when the first media piece and the second media piece are provided. 
 
 
     
     
       35. A non-transitory computer readable medium for an electronic device, the computer readable medium comprising:
 a first instruction code for providing a first media piece of a collection; 
 a second instruction code for measuring a first workout performance datum while providing the first media piece; 
 a third instructions code for generating first performance metadata associated with the first media piece, wherein the generated first performance metadata represents a difference between the measured first workout performance datum and a target in an exercise plan; 
 a fourth instructions code for providing a second media piece of the collection; 
 a fifth instruction code for measuring a second workout performance datum while providing the second media piece; 
 a sixth instruction code for generating second performance metadata associated with the second media piece, wherein the generated second performance metadata represents a difference between the measured second workout performance datum and the target in the exercise plan; 
 a seventh instruction code for generating collection performance metadata based on the first performance metadata and the second performance metadata, wherein the collection performance metadata comprises a representation of effectiveness of the first and second media pieces in assisting a user to reach the target in the exercise plan, the effectiveness irrespective of beats per minute of the media piece, and wherein the collection performance metadata comprises an average of the first performance metadata and the second performance metadata representing the differences between the measured workout performance data and the workout target in the exercise plan when the first media piece and the second media piece are provided; and 
 an eighth instruction code for selecting the collection for playback based on the collection performance metadata representing the differences between the measured workout performance data and the workout target in the exercise plan when the first media piece and the second media piece are provided.

Description:
BACKGROUND OF THE INVENTION 
     This is directed to performance metadata associated with media pieces. In particular, this is directed to systems and methods for generating and using performance metadata. 
     Some traditional electronic devices store metadata representing the beats per minute (BPM) of a song. For example, each song may be associated with a BPM metadata tag which represents the average BPM of the song. Traditional electronic devices may then use this BPM metadata to compile workout playlists based on a selected exercise plan (e.g., interval training or hill training). However, such BPM metadata may not be a completely accurate measure for stimulating workout responses in users because a song might include musical features other than BPM which influence users&#39; responses. 
     SUMMARY OF THE INVENTION 
     This is directed to systems and methods for generating and using performance metadata associated with a media piece (e.g., music or video). An electronic device can monitor a user&#39;s workout performance while playing a particular media piece. Workout performance may include the user&#39;s rate of motion and/or one or more physiological metrics of the user. Based on the user&#39;s workout performance, the electronic device can create new or modify existing performance metadata associated with the media piece. 
     In some embodiments, the performance metadata based on a particular user&#39;s workout performance in response to a media piece may be combined with collective performance metadata based on the workout performances of multiple users in response to the media piece. The combined performance metadata may then be stored as new collective metadata. Accordingly, the collective performance metadata can represent the average response to a media piece over multiple users. 
     In some embodiments, different performance metadata can be generated for different segments of a media piece (e.g., five second intervals). In such embodiments, the performance metadata for a particular segment may then be combined with collective performance metadata associated with that segment. 
     In some embodiments, an electronic device can receive an input from a user representing the effectiveness of a workout, and performance metadata can be generated based on the user&#39;s workout performance and the received user input. In such embodiments, the performance metadata generated based on workout performance and a received user input may then be combined with collective performance metadata. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above and other features of the present invention, its nature and various advantages will be more apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings in which: 
         FIG. 1  is a schematic view of an illustrative electronic device for generating performance metadata in accordance with one embodiment of the invention; 
         FIG. 2  is a schematic view of an illustrative system for generating collective performance metadata in accordance with one embodiment of the invention; 
         FIG. 3  is a flowchart of an illustrative process for generating performance metadata in accordance with one embodiment of the invention; 
         FIG. 4  is a schematic view of an illustrative database for storing performance metadata in accordance with one embodiment of the invention; 
         FIG. 5  is a schematic view of an illustrative database for storing performance metadata in accordance with one embodiment of the invention; 
         FIG. 6  is a flowchart of an illustrative process for generating performance metadata in accordance with one embodiment of the invention; and 
         FIG. 7  is a flowchart of an illustrative process for selecting media pieces based on performance metadata in accordance with one embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION 
     This is directed to systems and methods for generating performance metadata associated with a media piece. An electronic device can monitor a user&#39;s workout performance while playing a particular media piece. Media piece may include a song, a music video, or any other suitable audio and/or visual recording. For example, an electronic device can monitor a user&#39;s workout performance while playing a song and generate performance metadata associated with that song. 
     Workout performance may include the user&#39;s rate of motion (e.g., pace or speed). For example, a device can include, or be coupled with, a sensor for measuring the user&#39;s rate of motion (e.g., a motion sensing component or positioning circuitry). In some embodiments, workout performance may include one or more physiological metrics of the user (e.g., heart rate). For example, a device can include, or be coupled with, a physiological sensor for measuring one or more physiological metrics of the user (e.g., a heart rate sensor, a pulse waveform sensor, a respiration sensor, a galvanic skin response sensor, a temperature sensor). In some embodiments, a device may include communications circuitry for communicating with an external device or sensor for measuring the user&#39;s rate of motion or a device or sensor for measuring one or more physiological metrics of the user. 
     Based on the user&#39;s workout performance, the electronic device can create new performance metadata associated with the media piece or modify existing performance metadata associated with the media piece. For example, a device can create new performance metadata associated with a media piece if there is no preexisting performance metadata associated with the media piece. If there is preexisting performance metadata associated with a media piece, the device can modify the existing performance metadata to incorporate any new information from monitoring a user&#39;s workout. 
       FIG. 1  is a schematic view of an illustrative electronic device for generating performance metadata in accordance with one embodiment of the invention. Electronic device  100  can include control circuitry  102 , storage  104 , memory  106 , input/output circuitry  108 , motion sensing component  110 , positioning circuitry  112 , physiological sensing component  114 , and communications circuitry  116 . In some embodiments, one or more of the components of electronic device  100  can be combined or omitted. For example, storage  104  and memory  106  can be combined into a single mechanism for storing data. In some embodiments, electronic device  100  can include other components not combined or included in those shown in  FIG. 1 , such as a power supply (e.g., a battery or kinetics), a display, a bus, or an input mechanism. In some embodiments, electronic device  100  can include several instances of the components shown in  FIG. 1  but, for the sake of simplicity, only one of each of the components is shown in  FIG. 1 . 
     Electronic device  100  can include any suitable type of electronic device operative to provide media pieces. For example, electronic device  100  can include a media player such as an iPod® available by Apple Inc., of Cupertino, Calif., a cellular telephone, a personal e-mail or messaging device (e.g., a Blackberry® or a Sidekick®), an iPhone® available from Apple Inc., pocket-sized personal computers, personal digital assistants (PDAs), a laptop computer, a cyclocomputer, a music recorder, a video recorder, a camera, and any other suitable electronic device. In some cases, electronic device  100  can perform a single function (e.g., a device dedicated to playing music) and in other cases, electronic device  100  can perform multiple functions (e.g., a device that plays music, displays video, stores pictures, and receives and transmits telephone calls). 
     Control circuitry  102  can include any processing circuitry or processor operative to control the operations and performance of an electronic device of the type of electronic device  100 . Storage  104  and memory  106 , which can be combined can include, for example, one or more storage mediums or memory used in an electronic device of the type of electronic device  100 . In particular, storage  104  and memory  106  can store information related to performance metadata such as information representing a user&#39;s rate of motion of physiological metrics while a media piece is being played. The stored information can then be used to generate performance metadata after the entire media piece, or a segment of the media piece, has finished playing. In some embodiments, storage  104  and memory  106  can store performance metadata related to only the user of device  100 . In some embodiments, storage  104  and memory  106  can store collective performance metadata related to multiple users (e.g., the user of device  100  and other users with devices similar to device  100 ). In some embodiments, storage  104  and memory  106  may also store media pieces associated with performance metadata stored thereon. Input/output circuitry  108  can be operative to convert (and encode/decode, if necessary) analog signals and other signals into digital data, for example in any manner typical of an electronic device of the type of electronic device  100 . Electronic device  100  can include any suitable mechanism or component for allowing a user to provide inputs to input/output circuitry  108 , and any suitable circuitry for providing outputs to a user (e.g., audio output circuitry or display circuitry). 
     Motion sensing component  110  can be operative to detect movements of electronic device  100 . In some embodiments, motion sensing component  110  can include one or more three-axes acceleration motion sensing components (e.g., an accelerometer) operative to detect linear acceleration in three directions (i.e., the x or left/right direction, the y or up/down direction, and the z or forward/backward direction). As another example, motion sensing component  110  can include one or more two-axis acceleration motion sensing components which can be operative to detect linear acceleration only along each of x or left/right and y or up/down directions (or any other pair of directions). In some embodiments, motion sensing component  110  can include an electrostatic capacitance (capacitance-coupling) accelerometer that is based on silicon micro-machined MEMS (Micro Electro Mechanical Systems) technology, a piezoelectric type accelerometer, a piezoresistance type accelerometer, or any other suitable accelerometer. 
     In some embodiments, motion sensing component  110  can directly detect rotation, rotational movement, angular displacement, tilt, position, orientation, motion along a non-linear (e.g., arcuate) path, or any other non-linear motions. For example, if motion sensing component  110  is a linear motion sensing component, additional processing can be used to indirectly detect some or all of the non-linear motions. For example, by comparing the linear output of the motion sensing component with a gravity vector (i.e., a static acceleration), motion sensing component  110  can calculate the tilt of electronic device  100  with respect to the y-axis. In some embodiments, motion sensing component  110  can, instead or in addition, include one or more gyro-motion sensing components or gyroscopes for directly detecting rotational movement. For example, motion sensing component  110  can include a rotating or vibrating element. As another example, motion sensing component  110  can include a magnometer operative to detect the orientation of the device relative a magnetic north pole. The electronic device can monitor changes in the output of the magnometer to detect rotations of the device. 
     Electronic device  100  can include positioning circuitry  112  for determining the current position of electronic device  100 , and can be operative to update the current position at any suitable rate, including at relatively high rates to provide an estimation of speed and distance traveled. In some embodiments, positioning circuitry  112  can include a global positioning system (“GPS”) receiver for accessing a GPS application function call that returns the geographic coordinates (i.e., the geographic location) of the device. The geographic coordinates can be fundamentally, alternatively, or additionally derived from any suitable trilateration or triangulation technique. For example, the device can determine its location using various measurements (e.g., signal-to-noise ratio (“SNR”) or signal strength) of a network signal (e.g., a cellular telephone network signal) associated with the device. For example, a radio frequency (“RF”) triangulation detector or sensor integrated with or connected to the electronic device can determine the approximate location of the device. The device&#39;s approximate location can be determined based on various measurements of the device&#39;s own network signal, such as: (1) the angle of the signal&#39;s approach to or from one or more cellular towers, (2) the amount of time for the signal to reach one or more cellular towers or the user&#39;s device, (3) the strength of the signal when it reaches one or more towers or the user&#39;s device, or any combination of the aforementioned measurements, for example. Other forms of wireless-assisted GPS (sometimes referred to herein as enhanced GPS or A-GPS) can also be used to determine the current position of electronic device  100 . Instead or in addition, positioning circuitry  112  can determine the location of the device based on a wireless network or access point that is in range or a wireless network or access point to which the device is currently connected. For example, because wireless networks have a finite range, a network that is in range of the device can indicate that the device is located in the approximate geographic location of the wireless network. 
     Physiological sensing component  114  can be operative to detect one or more physiological metrics of a user. For example, physiological sensing component  114  may be operative to detect one or more physiological metrics of a user operating device  100 . Physiological sensing component  114  can include a sensor operative to detect a user&#39;s heart rate, pulse waveform, breathing rate, blood-oxygen content, galvanic skin response, temperature, heat flux, any other suitable physiological metric, or any combination thereof. For example, physiological sensing component  114  can include a heart rate sensor, a pulse waveform sensor, a respiration sensor, a galvanic skin response sensor, a temperature sensor (e.g., an infrared photodetector), an optical sensor (e.g., a visible or infrared light source and photodetector), any other suitable physiological sensor, or any combination thereof. In some embodiments, physiological sensing component  114  may include one or more electrical contacts for electrically coupling with a user&#39;s body. Such sensors can be exposed to the external environment or disposed under an electrically, optically, and/or thermally conductive material so that the contact can obtain physiological signals through the material. A more detailed description of suitable components for detecting physiological metrics with electronic devices can be found in U.S. patent application Ser. No. 11/729,075, entitled “Integrated Sensors for Tracking Performance Metrics” and filed on Mar. 27, 2007, which is incorporated by reference herein in its entirety. 
     Communications circuitry  116  can include any suitable communications circuitry operative to connect to a communications network and to transmit communications (e.g., voice or data) from device  100  to other devices within the communications network. Communications circuitry  116  can be operative to interface with the communications network using any suitable communications protocol such as, for example, Wi-Fi (e.g., a 802.11 protocol), Bluetooth®, radio frequency systems (e.g., 900 MHz, 1.4 GHz, and 5.6 GHz communication systems), cellular networks (e.g., GSM, AMPS, GPRS, CDMA, EV-DO, EDGE, 3GSM, DECT, IS-136/TDMA, iDen, LTE or any other suitable cellular network or protocol), infrared, TCP/IP (e.g., any of the protocols used in each of the TCP/IP layers), HTTP, BitTorrent, FTP, RTP, RTSP, SSH, Voice over IP (VOIP), any other communications protocol, or any combination thereof. In some embodiments, communications circuitry  116  can be operative to provide wired communications paths for electronic device  100 . 
     In some embodiments, communications circuitry  116  can interface electronic device  100  with an external device or sensor for measuring the user&#39;s rate of motion. For example, communications circuitry  116  can interface electronic device  100  with a motion sensor attached to or incorporated within the user&#39;s body or clothing (e.g., a motion sensor similar to the sensor from the Nike+iPod Sport Kit sold by Apple Inc. of Cupertino, Calif. and Nike Inc. of Beaverton, Oreg.). In another example, communications circuitry  116  can interface device  100  with exercise equipment (e.g., a treadmill or elliptical machine) to determine a user&#39;s rate of motion. A more detailed description of suitable exercise equipment for communicating with electronic devices can be found in U.S. patent application Ser. No. 12/238,436, entitled “Interfacing Portable Media Devices and Sports Equipment” and filed on Sep. 26, 2008, which is incorporated by reference herein in its entirety. 
     In some embodiments, communications circuitry  116  can interface electronic device  100  with an external device or sensor for measuring one or more physiological metrics of the user. For example, communications circuitry  116  can interface electronic device  100  with a physiological sensor attached to or incorporated within the user&#39;s body or clothing (e.g., a piece of clothing with integrated heart rate sensors similar to the NuMetrex clothing line from Textronics, Inc. of Wilmington, Del.). 
     In some embodiments, communications circuitry  116  can be operative to interface electronic device  100  with a host device (e.g., a host computer) for data transfers, synchronizing (i.e., “synching”) the device, software or firmware updates, providing performance information to a remote source (e.g., providing workout performance metadata to a remote server) or performing any other suitable operation that can require electronic device  100  to be coupled to a host device. Several electronic devices  100  can be coupled to a single host device using the host device as a server and, instead or in addition, electronic device  100  can be coupled to several host devices (e.g., for each of the several host devices to serve as a backup for data stored in electronic device  100 ). 
     Collective performance metadata may be based on performance metadata generated by multiple user devices (e.g., multiple iterations of device  100 ). In some embodiments, a master version of collective performance metadata may be stored on a central system or server.  FIG. 2  is a schematic view of system  200  for generating collective performance metadata in accordance with one embodiment of the invention. System  200  may include server  210  and electronic devices  220 - 224 . Electronic devices  220 - 224  may include any suitable devices for generating workout performance metadata (see, e.g., device  100 ). Server  210  may include any suitable device or computer for communicating with electronic devices  220 - 224 . For example, server  210  may include an internet server for communicating with electronic devices  220 - 224  and storing data received from devices  220 - 224 . Server  210  and electronic devices  220 - 224  may communicate together using any suitable communications protocol. For example, server  210  and devices  220 - 224  may communicate using any protocol supported by communications circuitry in each of devices  220 - 224  (see, e.g., communications circuitry  116  in device  100 ). Server  210  and/or devices  220 - 224  may communicate using a protocol such as, for example, Wi-Fi (e.g., a 802.11 protocol), Bluetooth®, radio frequency systems (e.g., 900 MHz, 1.4 GHz, and 5.6 GHz communication systems), cellular networks (e.g., GSM, AMPS, GPRS, CDMA, EV-DO, EDGE, 3GSM, DECT, IS-136/TDMA, iDen, LTE or any other suitable cellular network or protocol), infrared, TCP/IP (e.g., any of the protocols used in each of the TCP/IP layers), HTTP, BitTorrent, FTP, RTP, RTSP, SSH, Voice over IP (VOIP), any other communications protocol, or any combination thereof. 
     Server  210  may include control circuitry  212 , storage  214 , memory  216 , and communications circuitry  218 , which may be substantially similar to, respectively, control circuitry  102 , storage  104 , memory  106 , and communications circuitry  116  of device  100 . Accordingly, the previous discussion of the latter can be applied to the former. Control circuitry  212  can include any suitable processing circuitry or processor operative to control the operations and performance of server  210 . Communications circuitry  218  may include any suitable communications circuitry operative to connect to a communications network, transmit communications (e.g., voice or data) to devices  220 - 224 , and receive communications (e.g., voice or data) from devices  220 - 224 . Communications circuitry  218  may support any suitable communications protocol so that, as previously discussed, server  210  may communicate using any suitable communications protocol. 
     Server  210  may include storage  214  and/or memory  216  for storing data received from devices  220 - 224 . Storage  214  and memory  216 , which can be combined can include, for example, one or more storage mediums or memory used in a server of the type of server  210 . In particular, storage  214  and memory  216  can store collective performance metadata related to the users of devices  220 - 224 . In some embodiments, storage  214  and memory  216  may also store media pieces associated with performance metadata stored thereon. 
     In some embodiments, an electronic device or a server may stored a master version of collective performance metadata. The master version of collective performance metadata may be used to coordinate the generation and dissemination of collective performance metadata amongst multiple electronic devices. For example, server  210  may store a master version of collective performance metadata that is based on performance metadata received from devices  220 - 224 . Each of devices  220 - 224  can transmit performance metadata to server  210  and then server  210  can update the collective performance metadata based on the metadata received from each device. For example, each of devices  220 - 224  may transmit performance metadata to server  210  when the device synchronizes with server  210 . In some embodiments, server  210  may update the master version of collective metadata each time new performance metadata is received. For example, if server  210  receives new performance metadata from one of devices  220 - 224  (e.g., based on the workout performance of a device&#39;s user), server  210  may update the collective metadata. In some embodiments, server  210  may temporarily store all received performance metadata and then periodically update the collective metadata to incorporate all of the received metadata. 
     In some embodiments, one or more of devices  220 - 224  may store local versions of collective performance metadata. For example, one or more of devices  220 - 224  may store local versions of collective performance metadata so that each device can select media pieces based on the metadata (see, e.g., process  700  shown in  FIG. 7 ). The collective performance metadata stored in a device may be received from a server or another electronic device. For example, server  210  may transmit collective performance metadata to one or more of devices  220 - 224 , and the devices may store a local version of the collective metadata in storage or memory (see, e.g., storage  104  and memory  106 ). In some embodiments, server  210  may periodically re-transmit collective performance metadata to one or more of devices  220 - 224  so that the version of collective performance metadata stored on devices  220 - 224  does not become too outdated. For example, server  210  may transmit new collective performance metadata to a device every time that the device synchronizes with server  210 . 
     In some embodiments, a server or electronic device may stream collective performance metadata to one or more of devices, and the devices may not need to store local versions. For example, server  210  may stream collective performance metadata to one or more of devices  220 - 224  so that the devices can select media pieces based on the metadata (see, e.g., process  700  shown in  FIG. 7 ). However, in embodiments where collective performance metadata is streamed to a device, the device may need to be in communication with the server or other device to select media pieces based on the streaming metadata. 
     While the embodiment shown in  FIG. 2  includes electronic devices  220 - 224  coupling with server  210  and each other, it is understood that, in some embodiments, each of devices  220 - 224  may use a host device (e.g., a personal computer) to couple with server  210  and each other. In such embodiments, it may be advantageous to provide local versions of collective performance metadata because the device may not always be coupled with the host device and, therefore, may not always be in communication with a server or other device that stores the master version of collective performance metadata. 
     Moreover, while the embodiment shown in  FIG. 2  includes server  210 , it is understood that electronic devices  220 - 224  may communicate amongst each other without using a server in some embodiments. For example, devices  220 - 224  may form a peer-to-peer network that does not require a server. In some embodiments, a global or master version of collective performance metadata may be stored on one or more of devices  220 - 224  rather than a server. 
       FIG. 3  is a flowchart of illustrative process  300  for generating performance metadata in accordance with one embodiment of the invention. Process  300  can be performed by a single device (e.g., device  100  or one of devices  220 - 224 ), multiple devices (e.g., two of devices  220 - 224 ), a server and a device (e.g., server  210  and one of devices  220 - 224 ), or any suitable combination of servers and devices. Process  300  can begin at block  310 . 
     At block  310 , a media piece can be provided. The media piece can be provided by any suitable device (see, e.g., device  100  or devices  220 - 224 ). As previously discussed, a media piece can include a song, a music video, or any other suitable audio and/or visual recording. For example, a device can provide a song to its user. The media piece can be provided through input/output circuitry in a device (see, e.g., input/output circuitry  108  in device  100 ). For example, the media piece can be provided through one or more speakers integrated into the device, one or more speakers coupled with the device, headphones coupled with the device, a display integrated into the device, one or more displays coupled with the device, any other suitable input/output circuitry, or any combination thereof. 
     At block  320 , a user&#39;s workout performance can be monitored while the media piece is provided. The workout performance can be monitored by any suitable device (see, e.g., device  100  or devices  220 - 224 ). As previously discussed, a user&#39;s workout performance may include the user&#39;s rate of motion (e.g., pace or speed), one or more physiological metrics of the user (e.g., heart rate, pulse waveform, breathing rate, blood-oxygen content, galvanic skin response, temperature, or heat flux), any other suitable measure of a user&#39;s workout performance, or any combination thereof. Any suitable sensor, whether integrated into a device or coupled with a device, can be used to measure workout performance at block  320  (see, e.g., motion sensing component  110 , positioning circuitry  112 , and physiological sensing component  114  of device  100 ). In some embodiments, a device may measure a user&#39;s pace at block  320  using a motion sensing component (e.g., component  110  of device  100 ). In some embodiments, a device may temporarily store information related to workout performance while the media piece is provided. For example, a device may temporarily store workout performance measurements taken at regular intervals while the media piece was provided. 
     At block  330 , performance metadata associated with the media piece can be generated based on the user&#39;s workout performance. The performance metadata can be generated by any suitable device (see, e.g., device  100  or devices  220 - 224 ). Performance metadata can be generated at block  330  that represents the user&#39;s workout performance while the media piece was provided. Accordingly, performance metadata may represent the effect that the provided media piece had on the user&#39;s workout (e.g., the user&#39;s response). Performance metadata can include any suitable datum representing a measurement of a user&#39;s workout performance. For example, performance metadata can include the user&#39;s pace (e.g., time per distance), speed (e.g., distance per time), heart rate, pulse waveform, breathing rate, blood-oxygen content, galvanic skin response, temperature, or heat flux, any other suitable measure of a user&#39;s workout performance, or any combination thereof. 
     In some embodiments, performance metadata may be based at least partially on an exercise plan (e.g., an exercise activity profile). For example, a user may workout according to an exercise plan of a particular type (e.g., Fartlek Interval or Intense Interval), and a device may generate performance metadata based on both the user&#39;s workout performance and the type of exercise plan. In such embodiments, performance metadata may represent whether a media piece is effective for a particular type of exercise plan. 
     In some embodiments, performance metadata may be based at least partially on an exercise plan that includes one or more targets (e.g., target running paces or target heart rates). For example, a user may workout according to an exercise plan that includes a target, and a device may generate performance metadata based on the user&#39;s workout performance in relation to the target. In such embodiments, performance metadata may represent whether a media piece is effective at helping a user achieve targets in connection with exercise plans. 
     In some embodiments, an exercise plan can include multiple phases and performance metadata may be based at least partially on a phase of the exercise plan. For example, an exercise plan can include a warm-up phase, a cool-down phase, an intense phase, a recovery phase, any other suitable type of phase, or any combination thereof. In some embodiments, performance metadata may be based at least partially on the phase of an exercise plan during which the associated media piece is provided. For example, performance metadata may be based on the user&#39;s workout performance when the associated media piece is provided during a particular phase of an exercise plan. Accordingly, performance metadata may represent whether a media piece is effective at a particular phase in an exercise plan. For example, performance metadata may represent whether a media piece is effective during a warm-up phase, a cool-down phase, or any other phase of an exercise plan. 
     In some embodiments, performance metadata may be based on the user&#39;s average workout performance while the media piece was provided. For example, performance metadata generated at block  330  may be based on the average of multiple workout performance measurements taken while the media piece was provided. In some embodiments, performance metadata may include multiple workout performance measurements associated with different segments of a media piece. For example, performance metadata generated at block  330  may include a different workout performance measurement for each segment of a media piece (e.g., each five second segment). 
     At block  340 , performance metadata can be combined with collective performance metadata that is associated with the media piece. The performance metadata can be combined with collective performance metadata by any suitable device (see, e.g., device  100  or devices  220 - 224 ). As previously discussed, the collective performance metadata may represent the workout performance of other users in response to the media piece (e.g., how other users reacted to the media piece). Combining the performance metadata with collective performance metadata may generate new collective performance metadata that also represents the monitoring performed at block  320 . 
     In some embodiments, the performance metadata may be combined with collective performance metadata that is based on the workout performance of similar users. For example, different sets of collective performance metadata may exist for different types of users and performance metadata representing a user&#39;s workout performance may only be combined with collective performance metadata representing the workouts of other users of a similar type. User types can be formed based on any suitable user characteristic such as, for example, workout experience, average workout performance (e.g., average pace), general fitness level, age, weight, sex, or any other suitable characteristic, or any combination thereof. 
     In some embodiments, one or more characteristics of the user may affect how her performance metadata is combined with collective performance metadata. For example, the user&#39;s performance metadata may be adjusted based on one or more characteristics of the user before it is combined with collective performance metadata. For example, if a user typically achieves very high levels of workout performance (e.g., the user is a fast runner), performance metadata based on the user may be reduced (e.g., average pace adjusted to be slower) before it is combined with collective performance metadata. The user&#39;s performance metadata may be adjusted based on any suitable user characteristic such as, for example, workout experience, average workout performance (e.g., average pace), general fitness level, age, weight, sex, or any other suitable characteristic, or any combination thereof. Such adjustment may facilitate the creation of collective performance metadata that more accurately represents the workout performance of average users. However, in embodiments where collective performance metadata is based on a substantial number of users, the collective performance metadata may be naturally averaged over all of the users. 
     In some embodiments, process  300  can include uploading information about a user&#39;s workout performance to a server (see, e.g., server  210 ) at any point after block  320 . Moreover, block  330  and/or block  340  can be performed by the server in some embodiments. For example, process  300  can include uploading information about a user&#39;s workout performance to a server after block  320 , and block  330  and block  340  may be performed by the server. In another example, process  300  can include uploading performance metadata to a server after block  330 , and block  340  may be performed by the server. In some embodiments, it may be advantageous for a server to perform block  340  because the server may coordinate or have stored thereon a master version of collective performance metadata. 
     Performance metadata may be stored in one or more databases. In some embodiments, performance metadata may be stored in a database along with other metadata associated with media pieces. For example, performance metadata may be stored in a database along with other metadata representing information about media pieces (e.g., title, artist, track length, track number, album, genre, or composer).  FIG. 4  is a schematic view of database  400  for storing performance metadata in accordance with one embodiment of the invention. Database  400  can be stored on any suitable device (e.g., device  100  or devices  220 - 224 ) or any suitable server (e.g., server  210 ). In some embodiments, different devices or servers may store different versions of database  400  (e.g., master and/or local versions). 
     Database  400  can include metadata associated with numerous media pieces. For example, database  400  can include the metadata associated with all the media pieces in a library. Database  400  can include a separate record for each media piece, and each record can be represented by a row in  FIG. 4 . For example, database  400  can include illustrative records  401 - 406 , and each record may represent a different media piece. 
     Database  400  can include numerous fields for storing and organizing information about each record. For example, database  400  can include fields corresponding to identification metadata (e.g., information indexing media pieces or representing where media pieces are stored), attribute metadata (e.g., general information about media pieces such as media type, title, or artist), performance metadata, or any other information or metadata associated with media pieces. 
     Database  400  can include one or more fields for storing identification metadata representing the media pieces. For example, field  410  can include index numbers, and each index number can represent a media piece. Identification metadata can be used to access a database record or a media piece associated with a database record. In some embodiments, field  410  can include file system data associated with a media piece. For example, field  410  could represent the address in a file system where a media piece is stored (e.g., a file allocation table address). Identification metadata stored in field  410  may be updated by a system or device storing database  400  as records are added or removed from the database. 
     Database  400  can include one or more fields for storing attribute metadata representing general information about the media pieces (see, e.g., fields  420 ,  430 ,  440 ,  450 ,  460 , and  470 ). Database  400  can include a field for storing media type metadata associated with a media piece. For example, field  420  may store metadata representing the media type of a media piece (e.g., audio or video). In some embodiments, field  420  may store metadata representing the content of a media piece. For example, field  420  may store metadata indicating whether a media piece is a song, chapter of an audio book, music video of a song, episode of a television show, movie, or any other suitable media content. Database  400  can include fields for storing metadata representing the title or creator of a media piece. For example, field  430  may store metadata representing the title of a media piece, and field  440  may store metadata representing the artist that created the media piece. Database  400  can include a field for storing metadata representing media piece groupings. For example, field  450  may store metadata representing a group of media pieces that includes a media piece. In some embodiments, if a media piece is a song, the corresponding entry in field  450  may store metadata representing an album that includes the song. In some embodiments, if a media piece is an episode of a television show, the corresponding entry in field  450  may store metadata representing a season that includes the episode. Database  400  can include a field for storing metadata representing media piece length. For example, field  460  may store metadata representing the length of a media piece. Database  400  can include a field for storing metadata representing audio metrics of a media piece (e.g., beats per minute, time signature, or frequency components). For example, field  470  may store metadata representing the average beats per minute (BPM) of a media piece. In some embodiments, a media piece may be analyzed to determine one or more audio metrics when a new record is created in database  400 . In other embodiments, one or more audio metrics may be received from another device (e.g., a music library server) or manually inputted when a new record is created in database  400 . 
     Database  400  can include one or more fields for storing performance metadata representing workout performance associated with the media pieces (see, e.g., group  480  of fields  482  and  484 ). In some embodiments, database  400  can include one or more fields for storing performance metadata based on the workout performance of one or more users. For example, field  482  may store metadata representing the average running pace of one or more users when a particular media piece is provided. In some embodiments, database  400  can include one or more fields for storing performance metadata based on the workout performance of one or more users relative to their respective exercise plans (e.g., exercise activity profiles). As previously discussed with respect to block  330  of process  300 , performance metadata may be based at least partially on an exercise plan that includes one or more targets. Accordingly, performance metadata based at least partially on workout performance relative to one or more targets may be stored in database  400 . For example, field  484  may store metadata representing the average performance of one or more users relative to their respective exercise plans when a particular media piece is provided. In the embodiment shown in  FIG. 4 , each entry of field  484  can include a percentage value that reflects whether, and to what extent, one or more users exceed their exercise targets (e.g., positive percentage) or fall short of their exercise targets (e.g., negative percentage) when a particular media piece is provided. 
     In some embodiments, performance metadata may be based at least partially on a type of exercise plan. As previously discussed with respect to block  330  of process  300 , performance metadata may be based at least partially on the type of exercise plan a user is performing when her performance is monitored. In some embodiments, a database can include different fields of performance metadata corresponding to different types of exercise plans. Accordingly, each record may include different metadata representing how the associated media piece affects the user&#39;s workout performance when it is provided during each type of exercise plan. For example, each record may include metadata representing how a media piece affects the user&#39;s workout performance when it is provided during a Fartlek Interval workout or any other type of workout. 
     In some embodiments, performance metadata may be based at least partially on a phase of an exercise plan. As previously discussed with respect to block  330  of process  300 , performance metadata may be based at least partially on the phase of an exercise plan a user is performing when her performance is monitored (e.g., warm-up, cool-down, intense period, recovery period). In some embodiments, a database can include different fields of performance metadata corresponding to different phases of exercise plans. Accordingly, each record may include different metadata representing how the associated media piece affects the user&#39;s workout performance when it is provided during different phases of exercise plans. For example, each record may include metadata representing how a media piece affects the user&#39;s workout performance when it is provided during a warm-up phase, a cool-down phase, or any other phase of an exercise plan. 
     Performance metadata stored in database  400  can be based on the workout performance of an individual user or multiple users. In some embodiments, database  400  can include one or more fields for storing performance metadata based on the workout performance of an individual user (see, e.g., block  330  of process  300 ). For example, the performance metadata stored in fields  482  and/or  484  may be based on the workout performance of a single user. In some embodiments, database  400  can include one or more fields for storing collective performance metadata based on the workout performances of multiple users (see, e.g., block  340  of process  300 ). For example, the performance metadata stored in fields  482  and/or  484  may be collective metadata based on the workout performances of multiple users. As previously discussed in connection with block  340  of process  300 , there are several techniques for combining performance metadata in accordance with various embodiments. 
     While database  400  include six records and nine fields, it is understood that any number of records or fields can be provided. For example, database  400  can include enough records to represent all of the media pieces in a library or all of the media pieces offered for sale in a digital music store such as the iTunes Store® offered by Apple Inc., of Cupertino, Calif. Moreover, database  400  can include additional fields representing identification metadata, attribute metadata, performance metadata, any other type of metadata, or any combination thereof. 
     In some embodiments, performance metadata may include information about two or more different segments within a media piece. For example, performance metadata may include a different workout performance measurement for each segment of a media piece (e.g., each five second segment).  FIG. 5  is a schematic view of database  500  for storing performance metadata in accordance with one embodiment of the invention. Database  500  can be stored on any suitable device (e.g., device  100  or devices  220 - 224 ) or any suitable server (e.g., server  210 ). In some embodiments, different devices or servers may store different versions of database  500  (e.g., master and/or local versions). Database  500  can be substantially similar to database  400  shown in  FIG. 4  and the description of the latter can be generally applied to the former. For example, database  500  can include records  501 - 506  (see, e.g., records  401 - 406  of database  400 ) and fields  510 ,  520 ,  530 ,  540 ,  550 ,  560 , and  570  (see, e.g., fields  410 ,  420 ,  430 ,  440 ,  450 ,  460 , and  470 ). Moreover, database  500 , like database  400 , can be used to store metadata based on the workout performance of a single user (see, e.g., block  330  of process  300 ) or collective metadata based on the workout performances of multiple users (see, e.g., block  340  of process  300 ). 
     However, unlike database  400 , database  500  can include fields for storing performance metadata associated with different segments of a media piece. For each segment of a media piece, database  500  can include one or more fields for storing performance metadata based on workout performance during that segment. For example, database  500  can include group  580  of fields  582  and  584  based on workout performance during a first segment of a media piece and group  590  of fields  592  and  594  based on workout performance during a second segment of the media piece. While  FIG. 5  only shows performance metadata associated with two segments of a media piece, it is understood that performance metadata associated with any suitable number of segments can be stored in a database. Fields in database  500  may store performance metadata that is substantially similar, with the exception of the division of media pieces into segments, to fields in database  400 . For example, fields  582  and  592  may store performance metadata representing the pace of one or more users (see, e.g., field  482  of database  400 ). In another example, fields  584  and  594  may store performance metadata representing the performance of one or more users relative to their targets (see, e.g., field  484  of database  400 ). 
     In some embodiments, a media piece may be divided into any suitable number of segments for generating performance metadata associated with each segment. The number of segments that a media piece is divided into may determine the resolution of the performance metadata. In some situations, it may be advantageous to use a relatively large number of segments because it may allow the associated performance metadata to represent workout performance at a relatively high resolution. However, a device may be unable to accurately measure workout performance if each segment is unreasonably short (e.g., less than one second) because there are too many segments in a media piece. Moreover, a device may be unable to calculate and/or store all of the performance metadata if there are too many segments in a media piece. Several approaches can be used to determine the number of segments in a media piece. 
     In some embodiments, the number of segments may be based on the length of the media piece. For example, a user may specify a particular segment duration (e.g., five seconds) and the number of segments in a media piece may be based on how many segments of that duration the media piece can accommodate. In such embodiments, database  400  may include a substantially large number of performance metadata fields to accommodate the longest media pieces with the most segments. 
     In some embodiments, the number of segments may be fixed for all media pieces. For example, a user may specify a particular number of segments for all media pieces (e.g., ten segments) and each media piece may be divided into that number of segments. In such embodiments, a database of metadata (see, e.g., database  500 ) may include fields for specifying the beginning of each segment. 
     In some embodiments, the number of segments may be based on the content of a media piece. The number of segments may correspond to the number of distinct sections in the media piece. For example, a media piece may be divided into four segments if it includes four distinct sections and each section has different content (e.g., an introduction, a main portion, a climax, and an ending). Any suitable feature of content can be used to identify transitions between distinct sections. For example, changes in average energy, volume, frequency composition, or any other suitable feature, or any combination thereof may be used to identify transitions between distinct sections of an audio piece. For example, the average energy of a media piece may be used to identify the transition from a song&#39;s introduction which primarily includes speech to a song&#39;s main body which includes many instruments and singing. In embodiments where the number of segments can be based on the number of distinct sections in a media piece, a database of metadata (see, e.g., database  500 ) may include fields for specifying the beginning of each segment. 
     In some embodiments, the number of segments may be based on the workout performance monitored when the media piece is provided. For example, if the workout performance of one or more users changes substantially at a particular point in a media piece, a different segment can be used to represent the effectiveness of that portion of the media piece. In such embodiments, like in some of the previously discussed embodiments, a database of metadata (see, e.g., database  500 ) may include fields for specifying the beginning of each segment. 
     In some embodiments, performance metadata representing a collection of media pieces may be stored in a database. For example, a database (see, e.g., database  400  of  FIG. 4  or database  500  of  FIG. 5 ) may include a record representing a collection of media pieces (e.g., a playlist) and the record may include performance metadata representing workout performance associated with the collection. In some embodiments, performance metadata can represent average workout performance over an entire collection of media pieces (e.g., one or more users&#39; average workout performance over an entire playlist). In some embodiments, performance metadata can represent workout performance during each media piece in a collection (e.g., one or more users&#39; workout performance during each song in a playlist). For example, a database may include fields for storing performance metadata associated with different segments (see, e.g., database  500  of  FIG. 5 ), and each segment may represent a media piece in a collection (e.g., a song in a playlist). Accordingly, performance metadata may represent the effectiveness of different media pieces in the context of the collection (e.g., the effectiveness of a song when it is provided in a particular playlist order). In some embodiments, performance metadata representing a collection of media pieces can be used to modify the collection and make it more effective for workouts. For example, an ineffective song can be removed from a playlist or moved to a different order in the playlist. 
     In some embodiments, performance metadata may be based at least partially on user feedback. A device may prompt a user to provide a user input (e.g., feedback) related to a workout after the device has monitored the user&#39;s workout performance. For example, a device may prompt a user to evaluate the quality of a workout or the effectiveness of media provided during a workout. 
     In some embodiments, the monitored workout performance and received user input (e.g., feedback) may be used to generate performance metadata. For example, the performance metadata may reflect if a user indicates that the workout was of a poor quality or if the media piece was inappropriate for the workout. In some embodiments, a measurement of the user&#39;s workout performance may be adjusted based on received user input when generating performance metadata. In some embodiments, performance metadata may include a separate metric for received user input (e.g., feedback). For example, a metadata database (see, e.g., database  400  or database  500 ) may include separate fields for representing user feedback. In some embodiments, performance metadata may be erased or may not be generated at all in response to negative user input. 
     In some embodiments, the monitored workout performance and received user input (e.g., feedback) may affect the manner in which performance metadata is combined with collective performance metadata. For example, the performance metadata based on the user&#39;s workout performance (see, e.g., block  330  of process  300 ) may be weighted based on the user feedback when it is combined with collective performance metadata (see, e.g., block  340  of process  300 ). 
       FIG. 6  is a flowchart of illustrative process  600  for generating performance metadata in accordance with one embodiment of the invention. Process  600  can be performed by a single device (e.g., device  100  or one of devices  220 - 224 ), multiple devices (e.g., two of devices  220 - 224 ), a server and a device (e.g., server  210  and one of devices  220 - 224 ), or any suitable combination of servers and devices. Process  600  can begin at block  610 . Block  610  and block  620  can be substantially similar to, respectively, block  310  and block  320  of process  300 , and the previous description of the latter can be applied to the former. 
     At block  630 , a user input can be received related to a workout. For example, a user input can be received related to the workout performed by the user while the media device was provided. The user input can be received through any suitable input mechanism (see, e.g., input/output circuitry  108  of device  100 ). In some embodiments, a user may be prompted to provide a user input. For example, a device can use a display to present a user with different potential inputs related to a workout (e.g., great workout, great music, neutral, bad workout, and bad music) and the user can select one of the potential inputs. 
     A user input related to a workout can include any suitable user feedback related to the workout. In some embodiments, the user input can represent the overall quality of the user&#39;s workout. While user feedback about the quality of a workout may be indicative of the effectiveness of one or more media pieces provided during the workout, it may not be directly representative of the effectiveness of the one or more media pieces. In some embodiments, the user input can represent the effectiveness of one or more media pieces provided during the workout. However, it may be easier and more natural for some users to provide feedback about the overall quality of a workout rather than feedback about the effectiveness of one or more media pieces. Moreover, feedback about the overall quality of a workout may be used in other contexts beyond workout performance metadata associated with media pieces. For example, feedback about the overall quality of a workout may be used to generate exercise plans to reach long-term exercise or fitness goals. In some embodiments, a user can provide inputs that represent both the overall quality of a workout as well as the effectiveness of one or more media pieces. 
     In some embodiments, a user input can be received after an entire workout is completed. For example, a user may provide feedback about the entire workout or all of the media pieces provided during the workout. Continuing the example, such a user input may influence performance metadata associated with all of the media pieces provided during the workout. 
     In some embodiments, user inputs can be received at multiple points during a workout. For example, a user may be prompted to provide feedback after or while each media piece is provided. Continuing the example, such a user input may then affect performance metadata associated with the media piece provided immediately prior to or at the time when the input is received. In another example, a user may be prompted to provide feedback after completing a portion of a workout (e.g., based on a time interval or a workout goal) for which two or more media pieces were provided. Continuing the example, such a user input may affect performance metadata associated with the media pieces provided during that portion of the workout. 
     At block  640 , performance metadata associated with the media piece (see, e.g., block  610 ) may be generated based on the user&#39;s workout performance and the received user input. As previously discussed, there are several ways that performance metadata can be based on received user input (e.g., feedback). In some embodiments, the user&#39;s workout performance may be adjusted based on a received user input when generating performance metadata. For example, the user&#39;s workout performance relative to her target may be adjusted based on her assessment of the workout quality (e.g., workout performance that exceeds a target may only result in neutral performance metadata if the user provides a poor assessment of the workout&#39;s quality). In some embodiments, performance metadata may include a separate metric for user feedback. For example, database  400  or database  500  may include one or more separate fields for storing metadata representing user feedback. In some embodiments, performance metadata may be erased or may not be generated at all in response to received user input (e.g., feedback). For example, no performance metadata may be generated if a user provides strong negative feedback. 
     In embodiments where performance metadata may be generated for each segment of a media piece (see, e.g., database  500 ), a received user input may only affect performance metadata related to particular segments of a media piece. For example, user feedback may only affect performance metadata related to segments which were provided to the user (see, e.g., block  610 ). In some embodiments, received user input may affect performance metadata associated with the entire media piece even though other performance metadata may only be associated with particular segments of a media piece. 
     At block  650 , performance metadata can be combined with collective performance metadata that is associated with the media piece. The performance metadata can be combined with collective performance metadata by any suitable device (see, e.g., device  100  or devices  220 - 224 ). As previously discussed, the collective performance metadata may represent the workout performance of other users in response to the media piece (e.g., how other users reacted to the media piece). Combining the performance metadata with collective performance metadata may generate new collective performance metadata that also represents the monitoring performed at block  620 . In some embodiments, block  650  may be substantially similar to block  340  of process  300 , and the previous description of the latter can be applied to the former. 
     In some embodiments, performance metadata can be combined with collective performance metadata based at least partially on user input (e.g., feedback). For example, performance metadata based on a user&#39;s workout can be combined, based at least partially on feedback from the user, with collective metadata that is based on the workout performance of other users. In some embodiments, performance metadata based on a user&#39;s workout can be weighted based on the received user input when it is combined with collective performance metadata. For example, performance metadata based on the user&#39;s workout performance relative to her target (see, e.g., fields  484 ,  584 , and  594 ) may be combined with collective performance metadata based on her assessment of the workout quality (e.g., positive performance metadata may not have a substantial effect on collective performance metadata if the user provides a poor assessment of the workout&#39;s quality). In some embodiments, performance metadata based on a user&#39;s workout may not even be combined with collective performance metadata if the received user input indicates that the workout quality was unreasonably low or the media pieces were generally ineffective. 
     In some embodiments, process  600  can include uploading information about a user&#39;s workout performance and received user input (e.g., feedback) to a server (see, e.g., server  210 ) at any point after block  630 . Moreover, block  640  and/or block  650  can be performed by the server in some embodiments. For example, process  600  can include uploading information about a user&#39;s workout performance and received user input (e.g., feedback) to a server after block  630 , and block  640  and block  650  may be performed by the server. In another example, process  600  can include uploading performance metadata and received user input (e.g., feedback) to a server after block  640 , and block  650  may be performed by the server. In some embodiments, it may be advantageous for a server to perform block  650  because the server may coordinate or have stored thereon a master version of collective performance metadata. 
     In some embodiments, one or more media pieces can be selected for a workout based on performance metadata associated with the media pieces. Any suitable type of performance metadata can be used to select media pieces for a workout. For example, performance metadata that represents the past workout performance of a particular user may be used to select media pieces. In another example, collective performance metadata that represents the past performances of multiple users may be used to select media pieces. 
     In some embodiments, a user may be currently performing a workout and one or more media pieces can be selected, based on performance metadata, that correspond to the user&#39;s performance in the current workout. For example, performance metadata can be used to select a media piece that matches a user&#39;s current performance level (e.g., running pace). A detailed description of suitable techniques for measuring a user&#39;s workout performance (e.g., body metric) for the purposes of selecting music can be found in U.S. Pat. No. 7,521,623, entitled “Music Synchronization Arrangement” and filed on Nov. 24, 2004, which is incorporated by reference herein in its entirety. 
     In some embodiments, a user may specify an exercise plan (e.g., an exercise activity profile) and one or more media pieces can be selected, based on performance metadata, that correspond to the selected plan. For example, a user may specify an exercise activity profile that includes a warm-up period of medium intensity and then an interval of high intensity and performance metadata can be used to select one or more media pieces for a workout playlist corresponding to the profile. A more detailed description of suitable exercise activity profiles and methods for selecting music based on a profile can be found in U.S. Pat. No. 7,521,623, entitled “Music Synchronization Arrangement” and filed on Nov. 24, 2004, which is incorporated by reference herein in its entirety. 
       FIG. 7  is a flowchart of illustrative process  700  for selecting media pieces based on performance metadata in accordance with one embodiment of the invention. Process  700  can be performed by a single device (e.g., device  100  or one of devices  220 - 224 ), multiple devices (e.g., two of devices  220 - 224 ), a server and a device (e.g., server  210  and one of devices  220 - 224 ), or any suitable combination of servers and devices. Process  700  can begin at block  710 . At block  710 , a user input can be received specifying an exercise activity profile (e.g., an exercise plan). For example, a device can use a display to present a user with different potential activity profiles (e.g., interval training or hill training) and the user can select one of the potential activity profiles. 
     At block  720 , performance metadata associated with a collection of media pieces may be accessed. The collection of media pieces may be selected from any suitable collection of media pieces. For example, the collection of media pieces may include all of the media pieces in a library (e.g., all of the media pieces stored on a user&#39;s device). In another example, the collection of media pieces may include only a subset of media pieces specified by a user (e.g., all of the media pieces in a playlist). The performance metadata accessed at block  720  can include any suitable performance metadata. As previously discussed, performance metadata can include metadata based on an individual user&#39;s workout performance or collective metadata based on the workout performances of multiple users. In some embodiments, performance metadata accessed at block  720  can include performance metadata associated with different segments of a media piece (see, e.g., group  580  and group  590  of database  500 ). 
     At block  730 , the collection of media pieces can be arranged in an order so that the performance metadata of each piece corresponds to the specified exercise activity profile. For example, the collection of media pieces can be arranged in an order so that average pace metadata of each media piece (see, e.g., field  482  of database  400 ) matches one or more pace targets in the specified exercise activity profile. In some embodiments, the performance metadata of media pieces may not necessarily match one or more pace targets in a specified profile, but media pieces can be arranged based on the closest performance metadata values. 
     In some embodiments, arranging the collection of media pieces may include specifying portions of a media piece. For example, arranging the collection of media pieces may include specifying starting points and ending points of one or more media pieces. In some embodiments, a media piece may be cutoff if a target specified by an exercise activity profile changes. For example, if an exercise activity profile transitions from a high-intensity section to a low-intensity section, a media piece may be interrupted so that a media piece with more appropriate performance metadata may be provided. In embodiments where performance metadata may be generated for each segment of a media piece (see, e.g., database  500 ), arranging the collection of media pieces may include identifying segments of media pieces with performance metadata that corresponds to the specified profile. For example, the main portion of a song may be identified even though the introduction of the song may not have enough energy. In such embodiments, any suitable technique may be used to prevent over-editing media pieces because an arrangement of media pieces with too many transitions can be distracting. For example, there may be a limit on the minimum portion of a song that may be identified. 
     In some embodiments, media pieces with performance metadata indicating that they are not effective for workouts may be moved to the end of an arrangement or completely removed from the arrangement. Any suitable performance metadata for determining if a media piece is ineffective may be used. For example, performance metadata that directly represents user feedback may be used to determine if a media piece is ineffective. In another example, performance metadata that represents workout performance relative to a target may be used to determine if a media piece is ineffective (see, e.g., field  484  of database  400  and fields  584  and  594  of database  500 ). 
     At block  740 , the media pieces can be provided in the arranged order. For example, the media pieces can be provided to a user in the arranged order during her workout. Any suitable output component in a device (see, e.g., device  100  or one of devices  220 - 224 ) can be used to provide media pieces in the arranged order. For example, the media piece can be provided through one or more speakers integrated into the device, one or more speakers coupled with the device, headphones coupled with the device, a display integrated into the device, one or more displays coupled with the device, any other suitable input/output circuitry, or any combination thereof. 
     In embodiments where an arrangement includes one or more portions of media pieces, providing the media pieces can include providing the corresponding portions of the media pieces in the arranged order. For example, a device may provide the beginning of a first media piece and then, prior to that media piece ending, transition to providing a second media piece based on the arranged order (e.g., bypassing the end of the first media piece). In another example, a device may provide a first media piece and then transition to a middle portion of a second media piece based on the arranged order (e.g., bypassing the beginning of the second media piece). 
     A device may provide any suitable audio effect to transition between media pieces, portions of media pieces, or any combination thereof. In some embodiments, a device may crossfade from one media piece to another media piece. In some embodiments, a device may use a beat-matching algorithm to temporarily adjust and match the timing of one or both media pieces when transitioning between the media pieces. 
     The various embodiments of the invention may be implemented by software, but can also be implemented in hardware or a combination of hardware and software. The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium can be any data storage device that can store data which can thereafter be read by a computer system. Examples of a computer readable medium include read-only memory, random-access memory, CD-ROMs, DVDs, magnetic tape, and optical data storage devices. The computer readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. 
     The above described embodiments of the invention are presented for purposes of illustration and not of limitation, and the present invention is limited only by the claims which follow.

Metadata:
Filing Date: 20090715
Publication Date: 20141125
Grant Date: 20141125
Priority Date: 20090715
Inventors: HAUGHAY, JR. ALLEN P.
ROTTLER BENJAMIN
Assignee: APPLE INC
CPC Classifications: [{"code": "A63B24/0062", "inventive": true, "first": true, "tree": "[]"}, {"code": "A63B2230/00", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2225/50", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B24/0062", "inventive": true, "first": false, "tree": "[]"}, {"code": "A63B2220/803", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2071/0625", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2225/20", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F19/3481", "inventive": true, "first": false, "tree": "[]"}, {"code": "A63B71/0622", "inventive": true, "first": true, "tree": "[]"}, {"code": "G11B20/10", "inventive": true, "first": false, "tree": "[]"}, {"code": "G11B27/02", "inventive": true, "first": true, "tree": "[]"}, {"code": "G11B27/36", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0482", "inventive": true, "first": false, "tree": "[]"}, {"code": "A63B2071/0625", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B71/0622", "inventive": true, "first": false, "tree": "[]"}, {"code": "G16H20/30", "inventive": true, "first": false, "tree": "[]"}, {"code": "A63B2225/20", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B24/0062", "inventive": true, "first": false, "tree": "[]"}, {"code": "A63B2225/50", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2071/0625", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/803", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B71/0622", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/04842", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F16/639", "inventive": true, "first": true, "tree": "[]"}, {"code": "G16H20/30", "inventive": true, "first": false, "tree": "[]"}, {"code": "A63B2225/20", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2225/50", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2220/803", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2230/00", "inventive": false, "first": false, "tree": "[]"}, {"code": "A63B2230/00", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F16/639", "inventive": true, "first": true, "tree": "[]"}]
Family ID: 42668795