System and method for scrolling through a list

A system and method for scrolling through a list uses control and display algorithms for scrolling through a long list of text strings. The control algorithm interfaces to the user via a rate-based scheme to switch the display through various levels of abstraction where higher levels of abstraction are displayed “in-situ” on the single-line display. These higher levels of abstraction display as starting characters or words that are common to a group of entries in the alphabetized list. Multiple levels of abstraction are supported, where lower levels of abstraction are displayed as longer strings of characters, representing smaller groups of entries in the given list of text strings. Higher levels of abstraction are displayed as shorter character strings. The rate of user movement is detected for the display to change to a previous or next item in the list if below a predetermined threshold while increasing the abstraction level if the user rapidly selects different options.

FIELD OF THE INVENTION

The invention relates generally to systems and methods (collectively the “system”) for scrolling through a list.

BACKGROUND OF THE INVENTION

Human beings interact with an increasing number of different devices. Many of those interactions involve “scrolling” through a list of items to select the desired item. For example, there are numerous different MP3 players available to consumers that are capable of storing thousands of different songs. Given the portability of such devices, the devices are often quite small, and thus such devices often possess relatively small display panels. In some contexts, the display panel is only large enough to display a single line of information. In other contexts, more than a single line can be displayed, but the display capacity of the device is nonetheless dwarfed by the total volume of available information.

SUMMARY OF THE INVENTION

The invention relates generally to systems and methods (collectively the “system”) such as the control and display algorithms for scrolling through a list. A device using the system can selectively and automatically modify the format in which a label in the list is displayed. The selective modifications to a display format can be influenced by a current search state that is identified from a variety of search states defined within the system. A speed metric, a measurement relating to the speed in which a user is scrolling through the list, can influence the current search state of the system. The system can be more fully understood upon reading the following detailed description in conjunction with the accompanying drawings.

DETAILED DESCRIPTION

The invention relates generally to systems and methods (collectively the “system”) such as the control and display algorithms for scrolling through a list consisting of names, labels or other characters.

The system uses a format heuristic to selectively influence the manner in which a label is displayed in the list being searched. The system captures a speed metric from the interactions of the user with the scrolling list. The speed metric can influence what is determined to be the current “search state” of the system. The current “search state” can influence the manner and degree to which the format heuristic influences the display of a label in the list.

The method used in the invention uses a control algorithm for monitoring the user interaction via a control knob or wheel. Typically, each click or partial rotation of the control wheel changes the display to show the previous or next entry in the list. However, if the user moves rapidly through the list via multiple clicks of the control wheel which is faster than some predetermined calibrated rate, the control algorithm will change the display to show the list in a higher level of abstraction as described herein.

In operation, each time the user moves at a substantially rapid rate through the displayed list, the control algorithm will advance to the next higher level of abstraction. The level of abstraction may be defined as the level of complexity or detail by which the user views the list information. For a higher the level of abstraction, the less detail of list information will be displayed while the lower level of abstraction, the more detail is shown. The highest level of abstraction in the single system display showing the least detail such that only the first character of a group of entries is displayed.

Different embodiments of the system can involve a different number of different search states. Search states can be defined as speed ranges, with one search state being identified as the current search state on the basis of the speed metric falling within the speed range associated with that search state. In some embodiments, search states are predefined by the manufacturer of the applicable device. In other embodiments, search states can be influenced or even entirely defined and customized by users. A user profile can be used to customize the format heuristic, which controls the nature and extent to which display formats for labels are selectively modified, the number of different search states, and the range of speed metrics that make up a particular search state.

The user may also manually select a higher level of display abstraction by actuating a switch though a button press or paddle lever to change the display to a higher level of abstraction. This process can continue until only the first character of each group of entries is displayed. While at a higher level of abstraction, if the user stops turning the knob or wheel, the control algorithm may change the display to the next lower level of abstraction after a calibrated time interval. If more time passes without movement of the knob or wheel then the control algorithm may progressively change to the next lower level of abstraction, once every calibrated time period. This process can continue until the display is at the lowest level of abstraction, where the entire string of each entry in the list is displayed. Alternatively, the user may also manually select a lower level of abstraction by pressing a button or paddle lever to change the display to a lower level of abstraction. This process can continue until the display is at the lowest level of abstraction, where the entire string of each entry in the list is displayed.

The display algorithm determines what is displayed to the user on the single-line display. At the lowest level of abstraction, the entire single line of the currently selected text string is displayed. While at a higher level of abstraction, the same single-line display is changed to show only the first characters or words of the selection. These letters or words may represent multiple entries in the alphabetized list that have the same first characters or words. At each higher level of abstraction, the displayed starting phrase becomes shorter, and represents more items in the alphabetized list. The highest level of abstraction consists of a single starting character of a group of text strings in the alphabetized list.

By way of example, without limitation, in the context of an MP3 player, a label consisting of an artist's name and a song title could be formatted differently, depending on the current “search state.” As illustrated in Table 1, in a stopped state or in a slow state, the player can manifest by visual display or audibly reproducing) display “Artist Name—Song Title.” In a medium state (e.g., Medium1 or Medium2), that same label could instead be manifested as “Artist Name—S********,” or alternatively as “Artist Name ***************”. In a fast state, that label could be further truncated as “A*************************”.

Different embodiments of the system can involve different “search states” and different ways of modifying display formats for a label. There are a wide variety of different devices that can involve the activity of scrolling through a list. Both consumer devices and industrial devices can involve the task of scrolling through a list, and making a selection. Examples of devices that can include the functionality of the system include: MP3 players; cell phone address books; handheld electronic games; pocket computers; industrial, transportation, and other forms of embedded computers; desktop computers; industrial controls; and many other types of devices (collectively “devices”) can benefit from the system.

In addition to accommodating a wide variety of different devices, the system can also accommodate a wide variety of different output components. Some output components are limited to a display capacity of a single line, while in other embodiments, each individual label may individually require multiple lines, with several labels being displayed in a simultaneous or substantially simultaneous manner.

FIG. 1is a block diagram illustrating some examples of elements that can be included in a system20for scrolling through a list of labels24. The specific example illustrated inFIG. 1pertains to a media player34or other form of portable consumer device. As discussed above, other embodiments of the system20can involve a wide variety of different device types, fulfilling different functions, and providing different types of information in lists to be scrolled through by a user36.

A content unit22is a unit of content that is played or otherwise accessed on the host device, such as a player device34. In an embodiment of the system20in which music is played, a content unit22is typically an individual song. In other media player embodiments of the system20, a content unit22could be an entire album, a portion of an individual song, a movie, a scene within a movie, a video game, a particular section within a video game, or any other unit of content capable of being played on the player device34. In some embodiments, the scope of the content unit22can be defined by a user36. For example, an individual user36could “break down” a song into several sections, with each section constituting a distinct content unit22. In non-media playing embodiments of the system20, content units22relate to the different options that a user36can select with respect to the particular device. For example, in an industrial device, users36may need to select from various settings and configurations that relate to the functionality of the device.

A label24is metadata or any information that is associated with a content unit22. A label24is often a digital label that is embedded into a content unit22. In the example of a music playing device, a label24can potentially include the name of the song, the name of the artist, the name of the album, the year that the song or album was published, the producer of the album, and virtually any other information relating to the content unit22. Different types of content units22can involve different types of information being included within a label24. For example, in a movie playing context, the label24could include information about the director and/or actors, and in a videogame playing context, the label24could include a current score. The types of information that can be incorporated into a label24are potentially limitless. A content provider28or some other entity involved in distributing the content unit22will often be the decision maker with respect to what types of information should be included within labels24for a particular embodiment of the system20. In other embodiments, the user36through the use of a user profile46can influence the contents of the label24.

The information in a label24is often embodied in a string of ASCII characters25. A single label22can include a potentially limitless number of characters, although an output component38will often have a finite display capacity. In some embodiments of the system20, only alphanumeric characters can be included in a label24.

A database26of content, which can also be referred to as a content database26, can be used by system20to store content units22, labels24, and associations between units22and labels24. The content units22and labels24stored in one or more content databases26used by the system20can be made accessible to a user36in many different ways using many different types of technologies. The content units22and labels24within the content database26can be distributed in a variety of different ways, some of which are identified below.

The system20can include a wide variety of different content databases26operated and controlled by one or more content providers28.

The system20can be used to distribute content units22from one or more content providers28. Content providers28can also be referred to as providers28. Some content providers28may focus on a single type of content unit22such as music, while others may be involved in many different types of content units22.

Content providers28can also distribute content units22in a wide variety of different ways using a wide variety of different technologies. As illustrated in the Figure, content units22are associated with labels24before the content units22are distributed to users36.

One category of distribution techniques is the use of a storage component30that is distributed to users36. For example, music content units22can be distributed in the form of cassette tapes, records, CDs, DVDs, MP3 files, etc. Any mechanism capable of storing a content unit22can constitute a storage component30. It is anticipated that new and improved storage components30will be created in the future, and that the system20will incorporate such advances.

Another category of distribution techniques involves the transmission of a content unit22from a remote source using a communication32. For example, music content units22can be transmitted to users36via satellite radio communications32. A communication32can include any technology or process for exchanging information between a source device and a recipient device. Radio, satellite radio, broadcast television, cable television, computer networks, and the Internet are common examples of communications32. It is anticipated that new and improved communications32will be created in the future, and that the system20will incorporate such advances.

A player device34is any device capable of “playing” or otherwise using or benefiting from a content unit22and/or displaying a list of labels24. The variety of player devices34is commensurate to the variety of different types of content units22. Player devices34can also be referred to as players34. Many players34can be also be referred to as media players34.

Examples of players34can include radios, satellite radios, CD players, DVD players, PDAs, cell phones, portable music players, laptop computers, desktop computers, and a variety of other portable and stationary devices.

Regardless of the particular type of player34. a player34typically includes an output component38, a control component40, and a player component44.

As discussed above, the system20is not limited to player devices34or even to consumer devices. Industrial devices can also incorporate the processing of the system20.

A user interface component38is the means by which the label24is made manifest to the user36. In most of the examples set forth herein, the display component38is discussed in the context of visible indicia; however, it is contemplated that an audio device (i.e., speaker) can be used to make the label information audibly accessible to the user with or without a visual component. Such an audio device would benefit the visually impaired or benefit any user when the player device is used in low-light conditions.

In some music playing embodiments, a small output component38will simply display or audibly reproduce the name of the song currently being played by the player34. Such a player34could be further limited by a display capacity of a single line. On the other end of the continuum, other embodiments of the system20can involve display capacities of multiple labels24with each label24requiring multiple lines to display.

An example of single line display is:“Artist Name—Song Name.”

An example of a multiple line display is:“Artist Name.”“Song Name.”“Album Title.”

A control component40is the means by which users36interact with the player34and provide their instructions to the player34. Different embodiments of players34can involve a wide variety of different control components40. Control components40can also be referred to as controllers40. Controllers40can involve different types of buttons, switches, knobs, wheels, dials, voice recognition components, and other types of physical and electronic mechanisms for receiving instructions from users36(collectively “selector”42).

For example, in an embodiment of the system20that involves a satellite radio player34, selector42can be used to change the channel and the volume of the player34. The control component40can be used to capture a speed metric48and a direction metric50.

A player component44is the component of the player device34that allows the player device34to access the content unit22, which is often stored on a storage component30. For example, in the example of a CD player, the player component44is the mechanism within the CD player that actually reads the information located on the CD. In the context of a player34accessing content units22from a remote source such as a satellite radio station, the player component44is the electronics within the player34that allows the player34to access the satellite signal. A player component44can also be referred to as a content access component44. In non-player embodiments of the system20, the player component44is the component within the device that performs the function of the device.

A profile46is a bundle of information stored within the player34that relates to user preferences for a particular user36or a particular group of users36. For example, a profile46could include information relating to speed preferences for or historical speed attributes of a particular user36. Different profiles46can define different search states52with different speed ranges54. Profiles46can influence which content units36made accessible to the user36, as well as the ways content units36are organized within the player34. For example, one user36might prefer classical music while another user36prefers jazz. One user36might prefer to listen to music at a relatively quiet volume while another user36might prefer a substantially louder volume.

A speed metric48is a measurement relating to the speed in which a user36is scrolling through the list of labels24. The system20can capture the speed metric48in a variety of different ways. Some embodiments of the system20can include more than one speed metric48. In many embodiments of the system20, the speed metric48is the period of time (usually measured in milliseconds) between movements of the selector from one label24in the list to another label24in the list. The speed metric48is often an important input to the system20for determining the current search state.

A direction metric50can be captured simultaneously or substantially simultaneously with the capture of the speed metric48. Both the speed metric48and the direction metric50are captured through user36interactions with the selector42of the control component44. In many embodiments, the direction metric50relates to the scrolling direction within the list. In other embodiments, the direction metric50can relate to more complex directional information. In some embodiments of the system20, the direction metric50is an input to a transition heuristic61, as discussed below.

A search state52can also be referred to as a search mode or a search status. Different embodiments of the system20will have different search states52. There are typically two or more potential search states52in most embodiments of the system20. In many embodiments, the current search state is identified from the pool of potential search states52using one or more speed metrics48as the sole form as input. In other embodiments, the speed metric48is merely one input into the process of determining which search state52is the current search state52.

In many embodiments of the system20, search states52are defined with respect to a speed range54that can be compared to the speed metric48. Different embodiments of the system20can involve different search states52and different speed ranges54associated with those search states52.

In embodiments of the system20involving four predefined search states52, search states52could be associated with speed ranges54as illustrated in Table 2.

TABLE 2Search StateSpeed RangeStoppedGreater than about 750 ms per clickSlowBetween about 90 ms and 750 ms per clickMediumBetween about 30 ms and 90 ms per clickFastLess than about 30 ms per click

A rule56is a processing rule of the system20that cannot be altered by users36. Processing rules56constrain the possible options available to users36in creating profiles46and in defining search states52and speed ranges54, as well as various heuristics discussed below. In some embodiments of the system20, there is no user profile46.

A truncation heuristic58is a type of format heuristic60discussed below. The truncation heuristic58may be used to modify the display format by truncating the label24wherein characters25are replaced with placeholders such as an “*”, “-”, or “ . . . ”. The selective modification of characters25can be done from a left to right direction, from a left to right direction, or in accordance with some other processing rule56.

Table 1 above provides some examples of processing that can be performed using the truncation heuristic58.

A format heuristic60is a process which may be implemented by the system20that can selectively modify the display of a label24depending on the currently selected search state52. The truncation heuristic58is an example of a format heuristic60. The format heuristic60can also involve sounds, colors, graphics, and virtually any other means of communicating with users36.

A transition heuristic62is a process implemented by the system20that can change the current search state from one search state52to another search state52. For example, certain search states52can be associated with certain rules56that impact the transition from one search state52to another search state52.

For example, some embodiments of the system20can be configured to not change to a slower search state so long as the selector42keeps moving (i.e. the only change to a slower search state occurs if the system20would otherwise enter a search state of “stopped”). In such embodiments, the system20can be configured to allow changes to faster search states52without impediment.

Different embodiments of the system20may hinder or configure transitions between search states52differently.

A scrolling heuristic63is a process implemented by the system20that impacts the way in which users36scroll through a list of labels24. For example, the scrolling heuristic63can operate so that a user36is not forced to advance the selector42one click per entry (e.g. label24). The number of labels advanced by a single click can be determined by the current search state52of the system20. For example, in a “fast” search state52, the entire label24except for the first character25can be filled with a placeholder. Each click of the selector42switches to the next displayed character, even though a single character may represent multiple labels24. Truncations with respect to the “medium” and “slow” search states52can similarly form the basis for accelerated scrolling.

A user36is typically a human being, although animals and machines can also potentially be users36. Users36are often the beneficiaries and/or recipients of the content units22played on the player34. In other embodiments, users36are merely the operators of the device (such as in industrial embodiments) embodying the system20.

FIG. 2is a block diagram illustrating an example of a subsystem-level view of a system20. As indicated by the arrows originating from and pointing towards the various subsystems, each subsystem can interact and communicate with any other subsystem.

An output subsystem100is the subsystem by which labels24and other information relating to particular content units22are made manifest to users36. Subsystem100may be a visible system, an audio system or both. The output subsystem100may include an output component38. It is through the output subsystem100that the impact of truncation heuristics58, format heuristics60, and scrolling heuristics63are made manifest to users36.

The output subsystem100manifests information originating from a content subsystem104as selectively modified by user interactions received through a control subsystem102.

An external light may be used to illuminate the output component38(for indicia based components38). In some embodiments, the output subsystem100may include multiple light sources. In some embodiments, the output subsystem100can be configured to modify the luminosity of a light source, and influence the light source in ways beyond the mere activation or deactivation of the light source.

A control subsystem102can also be referred to an interaction, interface or controller subsystem102because it is the means by which users36interact with the system20. In some embodiments, the control subsystem102allows users36to expressly configure the functionality of the system20. The control subsystem102can be used to create, modify, and delete profiles46. The control subsystem102includes the control component40and the selector42, and all means for interactions between the system20and the user36. Metrics such as the direction metric50and the speed metric48are captured through the control subsystem102.

The control subsystem102allows information to be retrieved from the content subsystem104and made accessible to users36through the display subsystem100.

A content subsystem104is the subsystem by which content units22and labels24are accessed by the system20. The content subsystem104can also include the player component44and the storage component30. The content subsystem104provides the information that is displayed through the display subsystem100, and interacted with through the control subsystem102.

FIG. 3is a block diagram illustrating an example of a subsystem-level view of a system20for playing media content units22.FIG. 3includes a rules subsystem106that can be configured to ultimately control how the various user36interactions with the system20influence the processing of the system20. The rules subsystem106can include the rules56, the truncation heuristic58, the format heuristic60, the transition heuristic61, and the scrolling heuristic63. In other embodiments of the system20, those heuristics can be located within the control subsystem102and/or the output subsystem100.

FIG. 4is a flow chart diagram illustrating an example of a process to selectively modify the display format of a label24. At200, a speed metric48is identified. At202, the format of a displayed label24is selectively modified. The modifications are influenced by the speed metric48.

FIG. 5is a flow chart diagram illustrating an example of a process to selectively modify the display format of a label24. At300, at least one speed metric is identified300. As discussed above, in many embodiments of the system20, the speed metric48is a measure of time between user interactions with the selector42. At302, a current search state52is classified by comparing one or more speed metrics48to one or more speed ranges54. Table 2 (displayed above) provides an example of different speed ranges54that can be associated with different search states52. At304, a truncation heuristic61can selectively modify the display format of the label24being currently displayed. In other embodiments, other aspects of the format heuristic63can also be invoked. Table 1 (displayed above) provides an example of different display formats that can be influenced by the current search state52.

FIG. 6is a flow chart diagram illustrating an example of a process for configuring a device using the system20. At400, various potential search states52can be identified. The number of search states52can vary between different embodiments of the system20. Typically, the system20will have at least two search states52. There is virtually no limit to the number of potential search states52that can be supported by the system20. Examples of search states52can be found in both Table 1 and Table 2, as disclosed above.

At402, a plurality of speed ranges54can be defined. Examples of speed ranges54are displayed in Table 2, disclosed above. The speed ranges54can be defined using empirical evidence captured from the specific context of the applicable device. At404, speed ranges54can be associated with search states52for the purpose of future state determinations using the speed metric48as an input. At406, a control component40can be configured to capture the speed metric48. In some embodiments, the control component40is also configured to capture the direction metric50. At408, the process for identifying a current search state using the speed metric48is configured into the system20. At410, the process for instructing an output component38to selectively modify a display character within the current label24is configured into the system20. An example of the display modifications of the truncation heuristic61is provided in Table 2 above. Other modifications can be incorporated through a format heuristic60, as discussed above.

FIG. 7is a flow chart diagram illustrating the process500used by the control algorithm in accordance with an embodiment of the invention. The process using the control algorithm501includes determining by the user if a change in abstraction level is desired503. With no user input, the abstraction level is decreased by one505. If there is user input, then a change in abstraction level is performed as requested507. Once there is a selection in the list, a determination is made of the rate of movement509. If the user input rate of movement is below a predetermined threshold, a change to the display to the previous/next item in the list511. However, if the user input rate of movement is above a predetermined threshold, the abstraction level is increased by one513.

FIG. 8is a flow chart diagram illustrating the process600used by the display algorithm in accordance with an embodiment of the invention. The display algorithm601operates by determining if there is a change in the abstraction level603. If a higher level of abstraction is requested, a common starting phrase is displayed of a selected group or cluster where extra symbols are added to indicate the cluster605. If a lower level of abstraction is requested a longer text string is displayed607. Only at the lowest level of abstraction will the full text be displayed.

In accordance with the provisions of the patent statutes, the principles and modes of operation of this invention have been explained and illustrated in preferred embodiments. However, it must be understood that this invention may be practiced otherwise than is specifically explained and illustrated without departing from its spirit or scope.