Apple’s timeline animation patent: Final Cut Pro with a little more Motion

Four years ago, Apple applied for a patent that is relevant to animating parameters of clips and other content in a timeline. They were awarded patent 8,458,593 today.

I’m not reproducing this to start a debate on whether this sort of thing should be patentable. This patent shows how future Apple applications might show timelines of animatable values, and how more than one value can be changed at a time as well as controlling the shape of the graph joining two keyframes.

09

You can see from this drawing of an imaginary application interface, this patent applies to a media editing application that users can use to set keyframe values for clip parameters such as scale and position with editable graphs.

The example application shown in the patent looks like a version of Final Cut Pro that uses some elements from Motion, but not so many that editors are turned off. The editing temperament is somewhat different from that of motion graphic designers.

However bear in mind that this patent represents Apple’s thinking back in May 2009, in the intervening years, they may have moved on from these ideas.

The rest of this post is made up of most of the text and images from the new Apple patent

Abstract

Some embodiments of the invention provide novel methods for editing the value of an attribute of a media item (e.g., a media content or a media operation) for a media editing application. Such attributes of a media item can include scale, rotation, opacity, pan, volume, etc. In some embodiments, a media editing application represents the changing value of such an attribute over a duration (e.g., a duration of time, a duration of frequencies, etc.) as a key-indexed geometry. A user of the media editing application can manipulate these geometries to change the attribute value over a duration. Such geometries may include graphs and shapes. For such applications, some embodiments provide novel compressed geometric representations (i.e., collapsed views) of one or more uncompressed key-indexed geometries (e.g., graphs or shapes). Additionally, other embodiments provide a novel method for editing the value of one or more attribute directly in a preview display area used to view the composite presentation created in the media editing application.

Detailed description of the invention

For a media editing application, some embodiments of the invention provide novel methods for editing the value of an attribute of a media content or a media operation. Some media editing applications represent the changing value of such an attribute over a duration (e.g., a duration of time, a duration of frequencies, etc.) as a key-indexed geometry. Such geometries may include graphs, graph shapes, or bars. For such applications, some embodiments provide novel compressed or collapsed views of one or more key-indexed graphs or shapes. For instance, some embodiments provide single-attribute timing bars, multi-attribute timing bars, and/or global timing bars on which a user can perform key-index edit operations for one or more attributes. Other embodiments provide a novel method for manipulating the value of one or more attribute directly in a display area that is used to view the media content in the media editing application.

Several examples of such embodiments will be initially described below by reference to FIGS. 1-8. However, before describing these initial examples, several terms are defined. In some media editing applications, a key index represents a value (e.g., a default value or a user-specified value) of an attribute of a media content (e.g., a clip) or a media operation at a particular location in a particular duration. For example, in a fade to black operation, a starting key index might represent one point in time when an opacity attribute starts to change from fully visible to fully transparent, and an ending key index represents another transitional point in time when the change ends.

Some embodiments use such key indices to define geometries such as graphs and/or shapes that specify the transitioning values of any attribute associated with the edited media content (e.g., media clips) or the editing operations. Different types of media content may have different attributes. For instance, attributes of a video clip may include opacity, axis, color, and scale, while attributes of an audio clip may include volume level, echo, and pan. Moreover, the duration across which the attributes are defined may differ. They may differ in length or in type (e.g., the duration might be expressed in time, or in frequency, or along a different axis).

FIGS. 1-8 illustrate examples of compressed timing bars of the media editing application of some embodiments of the invention. The many embodiments that will be described will refer to key-indexed graphs and their associated shapes as well as collapsed timing bar representations of those graphs and shapes. These terms represent different types of key-indexed geometries. The geometries represent the values of attributes across a duration, which may be a temporal duration, a frequency duration, or any other duration of interest for a media editing application. Although compressed representations of the geometries will be referred to as timing bars, they can also be frequency bars for a frequency duration.

In the following examples, the timing bars are compressed representations of key-indexed graphs and their associated key-indexed shapes that specify the changing values of attributes along a timeline. One of ordinary skill will realize, however, that such compressed timing bars can be used in embodiments that only used key-indexed graphs or key-indexed shapes to specify the changing values of attributes. For purposes of simplifying the description of these figures, only the geometry editing window 100 of the media editing application is shown in these figures. An example of a graphical user interface (“GUI”) of a media editing application of some embodiments is described further below in FIG. 9.

01

FIG. 1 illustrates a key-indexed graph 105 being collapsed into a timing bar representation. Specifically, FIG. 1 illustrates the geometry editing window 100 at three different stages, a first stage 125 displaying a key-indexed graph, a second stage 130 where one of the key-indices of the graph is manipulated, and a third stage 135 illustrating a timing bar as the collapsed version of the key-indexed graph.

In the first stage 125, a key-indexed graph 105 is initially shown in the key-index geometry editing window 100. This graph 105 represents the value of an attribute (e.g., opacity, position, volume level) of a media clip (e.g., audio clip, video clip, text overlay, picture, and/or other media) over a duration of time. Initially, the graph 105 is a horizontal line that represents a constant attribute value. This graph also defines a rectangular shape 120 within the window 100 of the media editing application; in other words, the key-indexed shape 120 is initially defined underneath the graph 105. Also, in this example, a timeline (not shown) spans across the window 100. One or more media tracks (not shown) also span along this timeline in a composite display area of the media editing application. Each track is for holding one or more media clips, with each clip lasting a particular duration. Each media clip can have several attributes, one of which is represented by the key-indexed graph 105 in this first stage 125.

As shown in the second stage 130 of FIG. 1, the value of the attribute at the second key index 115 is changed to a zero value thus changing the slope of the graph 105. The graph 105 in the second stage 130 now defines a triangular shape 170. This shape is an example of one editable shape in some embodiments of the media editing application.

The third stage 135 illustrates selection of a user control 165 which presents the user with a modified view of the key-indexed graph 105 and the shape 170 it defines. Specifically, the selection of the user control 180 causes the key-indexed graph 105 to collapse into a compressed timing bar 140. This timing bar represents the key-indexed graph 105 in a collapsed form. Some embodiments provide the user selectable control 180 to expand and collapse the view of a key-indexed graph while others may accomplish the same with different user commands (e.g., a click or double-click selection of the attribute label or a key-board shortcut).

The timing bar 140 displays each key index 110 and 115 as selectable key indices 145 and 150 on respective key index markers 165 and 170. The vertical position of each key index 145 and 150 along the key index markers 165 and 170 conveys the value of the attribute. Here, the first key index 145 is located towards the top of the timing bar representing the attribute value at its maximum, while the second key index 150 is located at the bottom of the timing bar representing the attribute value at its minimum.

As shown in the third stage 135 of FIG. 1, some embodiments display the change in value of the attribute as a text label 160 that is displayed on top of the timing bar. Some embodiments can display this text label in other forms such as below the timing bar or through a pop-up window when a user scrolls over the timing bar or key index. As show, the text is displayed between two key indices 145 and 150 and the label displays the value at each key index. When a timing bar has multiple key indices, it appears segmented. Each segment is defined by a starting and ending key index. A text label can be displayed for each segment to convey the changing attribute values between the starting and ending key index. Such an example is shown in FIG. 2. Furthermore, to display attribute values in the compressed timing bar format, some embodiments do not use both the text description 160 and the vertical position of the key indices 145 and 150 on the timing bar, and instead only use one of these approaches. Still other embodiments use other techniques in conjunction with one or both of these techniques.

02

FIG. 2 illustrates an example of creating a new key index for the graph 105 on the timing bar 140. Specifically, FIG. 2 illustrates the geometry editing window at two different stages, a first stage 250 where an interior location for creating a key index is selected and a second stage 255 where a key index has been created on the timing bar. The timing bar 140 at the first stage 250 illustrates the cursor selection (e.g., a double click operation within) of an interior location 205 within the timing bar 140. The second stage 255 illustrates the creation of a new key index 210 that divides the timing bar into two new portions or segments 215 and 220. Specifically, this cursor selection creates the new key index 210 about the horizontal location 205 of the cursor. The new key index 210 defines a new graph segment 225 along with the key index 110 and a new graph segment 230 along with the key index 115. Each segment also has a respective text label that displays the changing attribute value between each key index.

The media editing applications of different embodiments treat differently the division of the graph 105 into the two graph segments 225 and 230. For instance, some embodiments discard the graph 105 and only use the two graph segments 225 and 230 and/or their associated shapes 260 and 265 as selectable elements in the graphical user interface of the media editing application. Other embodiments, however, use the new graph segments 225 and 230 and/or associated shapes 260 and 265 as conceptual, pictorial representations of the division of the graph 105 and the shape 170; in other words, these embodiments maintain the graph 105 and shape 170 as the selectable element in the GUI, and use the new key index 210 for placing bounds on the modifications that are received directly or indirectly with respect to the graph 105 and the shape 170.

When a key index is created on a collapsed timing bar, some embodiments create and display on the timing bar 1) a key index marker and 2) a moveable key index on the key index marker. In some embodiments, a key index marker is represented as a vertical line that spans the timing bar. This line identifies the horizontal location of the key index along the timeline. A key index marker, or the key index displayed on the marker, can be selected and moved horizontally along the timing bar to modify the position of the key index along the timeline. As discussed above, the attribute value at that particular location is identified by the vertical position of a key index along the key index marker. This key index is selectable and can slide up or down along the key index marker to affect the attribute value at that particular position on the timeline. One example of such a key index and key index marker combination is illustrated in FIG. 2. For instance, in the second stage 255 of FIG. 2, the selection of the interior location 205 of the timing bar 150 causes a line 235 (i.e. key index marker) and the key index 210 to appear on the timing bar. This key index marker 235 can be viewed as dividing the timing bar 140 into two distinct segments 215 and 220. Alternatively, the marker 235 and its associated key index 210 can simply be viewed as only a selectable control within the shape. Irrespective of its characterization, the next two figures, FIGS. 3-4, will illustrate the use of the key index marker and its associated key index for modifying attribute value and location of a particular key index.

03

FIG. 3 continues from FIG. 2 and illustrates an example of modifying the attribute value of a key index from a timing bar. Specifically, FIG. 3 illustrates modifying the attribute value of a key index at two stages, a first stage 320 where a key index 150 is selected, and a second stage 325 where the attribute value of the key index 150 is modified. As illustrated, three key indices 145, 210, and 150 from FIG. 2 are defined on the timing bar. In the first stage 320, the vertical position of the three key indices 145, 210, and 150 on their respective key index markers convey their values of 100%, 25%, and 0%. Here, the cursor selection of the key index 150 is illustrated at the first stage 320.

The second stage 325 then illustrates sliding the key index 150 in an upward direction along the key index marker 305 to affect the attribute value at that location. Specifically, the attribute value is changed from 0% to its maximum, 100%. The change in attribute value is reflected by the change in segment shape 265 which is illustrated in the uncollapsed view of the key-indexed graph in FIG. 3. As illustrated in FIG. 4, both shapes 260 and 265 can further be modified by relocating the key index 210 and its associated key index marker 235 to a different position along the timeliness.

04

FIG. 4 illustrates an example of relocating the key index 210 with its associated key index marker 235 to a new location on the graph 105. Specifically, FIG. 4 illustrates the geometry editing window at two stages 415 and 420. The first stage 415 illustrates the cursor selection of the key index marker 235 along with key index 210. The selection can be accomplished by selecting either the key index marker 235 or the key index 210 itself. The second stage 420 illustrates moving the marker 235 and key index 210 (e.g., a cursor click and drag operation) along a horizontal direction. The movement also redefines the graph segments 225 and 230, as it reduces the distance between the key indices 110 and 210 while distancing the key indices 210 and 115. In other words, the horizontal movement causes the transitional period between the key indices 210 and 115 to increase while causing the transitional period between the key indices 110 and 210 to decrease. The attribute value at each key index 110 and 210 remains the same and thus affects the slope of each graph segment 225 and 230 as well as the shapes defined by each 260 and 265. This operation maintains the attribute value at the key index whereas the operation described in FIG. 3 illustrated changing the attribute value by sliding key index 150 vertically along the key index marker 235. To avoid accidental modification of both attribute value and location when selecting a key index, some embodiments provide a controlled selection (e.g., keyboard and cursor selection) of the key index for modification of only the attribute value or the location of the key index.

The previous figures have described operations on a timing bar for creating a key index, modifying the attribute value at a key index, and relocating the position of the key index. Other embodiments also provide a mechanism for directly modifying the interpolation between two key indices without modifying the key index value or location using a timing bar. One such example is illustrated in FIG. 5.

05

FIG. 5 shows several editable interpolation marks 500 on a collapsed representation of the key-indexed graph of FIG. 4. The interpolation marks 500 span a segment within the timing bar which, in this example, is a segment defined by key indices 210 and 150. The space between each interpolation mark conveys the speed or ease at which the attribute value changes over the duration of the segment. In this example, the interpolation marks 500 are evenly spaced and thus represent a linear change in attribute value as shown by the key-indexed graph 230.

06

As illustrated in FIG. 6, the interpolation marks 500 can be selected at any point within the segment and modified to affect the interpolation between two key indices. Here, a click and drag operation from the center of the segment modifies the interpolation marks by squeezing them closer together towards the first key index 210. In some embodiments a shorter distance between each interpolation mark indicates a faster transition while other embodiments might interpret a shorter distance to be a slower transition. In this particular example, a shorter distance represents a slower transition as illustrated by the modified shape 265 between key indices 210 and 150. This interpolation mark mechanism provides a user with a simple method to directly modify the interpolation between key indices. This mechanism can also be invoked in various ways including a user interface item, keyboard shortcut, or drop down menu.

All the examples described above have modified a key-indexed graph using a collapsed representation of the graph. In order to get visual feedback of how each modification has affected the corresponding key-indexed graph, the timing bar would have to be uncollapsed into its full key-indexed graph form. However, some embodiments allow viewing of the modified key-indexed graph without uncollapsing the timing bar into a full key-indexed graph. This is accomplished by providing a zoom tool that displays a portion of the graph being modified in a separate window. Such an example of a zoom tool is illustrated in FIG. 7.

07

FIG. 7 shows the same timing bar and the same modification of attribute value using key index 150 as shown in FIG. 3. In this figure, as the attribute value is being modified using key index 150 (i.e. by sliding key index 150 along the key index marker 305) a window 700 is displayed. This window 700 initially shows a portion of the key indexed graph and shapes 260 and 265. As the graph is being modified from the timing bar, the effect of the modification on its corresponding key-indexed graph is concurrently displayed in the zoom window 700. Therefore this window alleviates the need to uncollapse the timing bar to view a modified key-indexed graph.

FIGS. 1-7 above illustrate examples where the compressed timing bar represents one key-indexed graph or shape in a collapsed mode. However, as mentioned above, some embodiments use a single collapsed timing bar to represent multiple attributes rather than individual key-indexed graphs or shapes for each attribute. FIG. 8 shows one such example.

08

FIG. 8 illustrates a timing bar for representing two or more attributes of a media clip. Specifically, FIG. 8 first shows two media clip attributes 805 and 810 in the geometry editor window 100. Both attributes 805 and 810 are displayed in an expanded view where shapes 815 and 820 represent the key-indexed graphs. The geometry editor window 100 is then shown with both graphs combined into a single multi-attribute timing bar 830 where a user can perform editing operations to affect both attributes simultaneously. Such operations can include one or more of the operations discussed above such as creating new key indices, relocating key indices, and affecting attribute values at a specific key index.

The multi-attribute timing bar described in FIG. 8 is also equivalent to a third timing bar variation, specifically, a global timing bar. A global timing bar is tied to the geometry editor window and is a collective representation of all the attributes that currently reside in the geometry editor. These timing bar variations will be discussed in further detail in the following sections.

As described above, some embodiments allow a user to manipulate key indices and attribute values without interacting with the key-indexed line or shape graph. Other embodiments also allow manipulation of the transition, or interpolation, between two key indices directly from the timing bar. Furthermore, a timing bar can represent one or more attributes of a media clip. For instance, some embodiment provide a single attribute timing bar for representing one attribute while other embodiments provide a multi-attribute timing bar for representing two or more attributes of a media clip. In addition, some embodiments also provide a global timing bar for representing all attributes that a user is actively editing in a geometry editor window of a media editing application. Some embodiments provide the timing bars as selectable and modifiable items in the graphical user interface (“GUI”) of the media editing application (i.e., as items that can be selected and modified by the user in the GUI).

The examples illustrated in FIGS. 1-8 were described above to include certain features of a timing bar. Several more detailed examples of manipulating key-indexed graphs using timing bars will be described below. However, before describing these examples, an exemplary media editing application that implements the graph editing operations of some embodiments will be described below in Section I. Section II then describes the variations of timing bars provided by a media editing application. Section III follows that discussion with several examples of manipulating attributes of media content using one or more variations of a timing bar. Section IV continues with a discussion of attribute editing operations performed directly from the display area of a media editing application. Section V follows that discussion with a description of the software modules used to implement some embodiments of the media editing application. Lastly, Section VI describes a computer system which implements some embodiments of the invention.

09
I. Media Editing Application

FIG. 9 illustrates a graphical user interface (“GUI”) 900 of a video editing application that uses novel key-indexed timing bars to represent one or more attributes of a media clip. As shown, the GUI 900 includes a canvas 905, a composite display area 910, a timeline 920, an attribute display window 915, and a geometry editor 925 with a geometry editing window 930.

The canvas 905 displays the preview of the media presentation that the media editing application creates. The composite display area 910 provides a visual representation of the composite presentation being created by the application’s user. It displays one or more geometric shapes that represent one or more pieces of media content that are a part of the media presentation. In the example illustrated in FIG. 9, the composite display area 910 is an area that includes multiple media tracks that span across the timeline 920. One or more pieces of media content can be placed on each track. Each piece of media content has multiple editable attributes which can be represented as various geometric shapes such as key-indexed graphs and/or timing bars.

The timeline 920 represents a duration or a portion of the duration in the media presentation. A time marker (also called a playhead) 940 is situated on the timeline 920. The user of the media editing application can drag the time marker along the timeline to display a preview of a frame of the media presentation at a particular point in the presentation, or to play the preview starting from the particular point by selecting the play button 945.

The attribute display window 915 is an area in the GUI 900 through which the application’s user can view the multiple attributes of a media content or a media editing operations for the media presentation. The user can select one or more attributes in this window 915 for editing. For some or all attributes, such a selection will cause an editable graph to be presented in the geometry editing window 930 in order to allow the user to view and edit the graph. The attribute display window 915 also provides various user interface tools 935 (e.g., list boxes, text fields, buttons, radial dials, etc.) for modifying the attributes.

The geometry editor 925 is the area in the application that displays the geometry editing window 930. This window 930 displays one or more key-indexed geometries that can be modified by a user according to one or more editing operations. In the example illustrated in FIG. 9, the window 930 displays three representations 950, 955, and 960 of key-indexed attribute geometries. The geometry editor displays each attribute of a media clip being edited by (i) displaying a description 970 of each attribute and (ii) displaying a key-indexed geometry over a particular duration in the timeline 920.

In the example illustrated in FIG. 9, the key-indexed geometries 950, 955, and 960 are provided in the geometry editing window 930 that is dedicated for displaying such geometries in the media editing application. However, in some embodiments, one or more such geometries may be provided in another window in the media editing application. For instance, in some such embodiments, one or more such geometries may be shown in the composite display area 910 with its corresponding media content (e.g., on top of or adjacent to the media content).

II. Timing Bars Variations

FIG. 9 further illustrates the geometry editor 925 displaying two types of timing bars, specifically a single-attribute timing bar and a global timing bar. As shown, the geometry editor 925 has two attributes represented through single attribute timing bars 950 and 960 while another attribute is represented by a key-indexed graph and the shape it defines 955. As previously illustrated in FIG. 1, a single attribute timing bar representation is displayed when a key-indexed graph is collapsed, for example by using a user control 965 or a double click operation.

A second type of timing bar, a multi-attribute timing bar, similar to the one described in FIG. 8 may also be displayed in the geometry editor window 930. A multi-attribute timing bar represents two or more attributes that a user wishes to group together within the geometry editor window 930. A user can perform edit operations on a multi-attribute timing bar that simultaneously affects all the attributes associated with the multi-attribute timing bar in the same fashion. For example, selection of the user control 975 would collapse all the attributes being edited for video clip 1 980 in the geometry editor window into a single multi-attribute timing bar to represent all the attributes that were being edited for video clip 1 995. In other embodiments, a multi-attribute timing bar may also be created by a user grouping two or more attributes of together for editing. For example, attributes for a clip’s position in the x-direction and y-direction may be combined in a multi-attribute timing bar for performing the same editing operations so the user can avoid having to perform repetitive operations for multiple attributes.

Furthermore, a third type of timing bar, a global timing bar 990, is illustrated in FIG. 9. The global timing bar 990 is tied to the geometry editor window 930 and is a timing bar that collectively represents each attribute that is displayed in the geometry editor window. In some embodiments, the global timing bar is always present at the top of the geometry editor window and by default, represents every attribute and their respective key indices that are currently displayed in the geometry editor window 930. Other embodiments allow user selection of which attributes to associate with the global timing bar.

The global timing bar and multi-attribute timing bar are similar, but a multi-attribute timing bar is defined by one or more attributes that a user wishes to group together rather than a default representation of all attributes in a geometry editor window. Furthermore, a global timing bar can be equivalent to a single-attribute timing bar when only one attribute is associated with the global timing bar or if only one attribute is actively being edited in the geometry editor window. Several more detailed examples of how each type of timing bar may be used to manipulate key-indexed graphs will be described in the following sections.

III. Key-Index Editing with Timing Bars

As mentioned above, some embodiments provide several novel methods for editing the value of an attribute of a media content or a media operation. Some media editing application represent the changing value of such an attribute over a duration (e.g., a duration of time, duration of frequencies) as a key-indexed geometry. Such geometries may include graphs, graph shapes, or bars which are displayed in a geometry editor window of the media editing application. For such applications, some embodiment provide novel compressed or collapsed views of one or more key-indexed graphs or shapes, namely timing bars and different variations of timing bars.

A user of the application populates the geometry editing window with attribute geometries through selection of a piece of content and identifying one or more attributes of the content for editing. This can be accomplished in various ways such as a drag and drop operation from an attribute display window which displays all the modifiable attributes of a selected content, context menus, drop-down menus, or automatic population of all modifiable attributes when a media content is selected. These are only some examples of populating the geometry editor with attribute geometries of a media clip and it would be clear to one skilled in the art that the same can be accomplished through other different methods.

Several different examples of operations for modifying the value of one or more attributes over a duration using collapsed timing bar representations of the attributes’ key-indexed graphs will be described below. In some cases, these different operations may be used conjunctively (i.e., all together) in one application, while in other cases, some of the operations may be alternatives to one another. When these operations are used conjunctively in one application, some embodiments allow a user to differentiate one operation from another operation by providing user interface tools, user interface techniques, and/or shortcuts (e.g., through the use of hotkeys). This will be further elaborated in the examples described below. Several examples of manipulating the different types of timing bars will now be described by reference to FIGS. 10-35.

10

A. Creating Key Indices

FIGS. 10-15 illustrate several examples of creating new key indices for one or more attributes of media content using timing bars. Specifically, these figures illustrate creating new key-indices across one or more attributes by selecting an interior location of a timing bar. Different types of timing bars including a single attribute timing bar, a global timing bar, and a multi-attribute timing bar are illustrated in these figures. For purposes of simplifying the description of these figures, only the geometry editor 1000 of the media editing application is shown.

FIG. 10 illustrates an example of creating a new key index for an attribute from a timing bar. Specifically, FIG. 10 illustrates a geometry editor 1000 where a new key index 1010 is created for a single attribute 1020 using a single-attribute timing bar 1015. FIG. 10 shows a geometry editing window 1005, two attributes 1020 and 1025 of a particular media clip, two collapsed timing bars 1015 and 1035 for representing the two attributes, and a global timing bar 1030. The two timing bars, 1015 and 1035, are each associated with a corresponding single attribute, Att1 1020 and Att2 1025, of a media clip over the duration of a particular media clip. The global timing bar 1030 is for displaying a collective representation of all attributes displayed in the geometry editing window 1005. From the following examples it will become clear that all editing operation for one or more attributes can be accomplished directly from a global timing bar, whereas more complex editing might require the use of the geometry editor for manipulating key-indexed graphs and shapes individually.

When multiple attributes are being represented by the global timing bar, the global timing bar can display the location of one or more key indices by segmenting the global timing bar. Further information such as the existence of shared key indices or attribute values at the key indices can also be conveyed. Some embodiments display icons that represent globally shared versus non-shared key indices. Such information can be conveyed to the user through use of icons in or above the global timing bar as well as the use of different icon colors to represent different key indices for different attributes. These are just some examples of information that may be conveyed by a global timing bar, and it will be clear to one skilled in the art that the use of icons and colors can be used in a variety of ways to display different information that may be useful when performing edit operation on a key-indexed graphs, shapes, and/or timing bars.

FIG. 10 illustrates creating a new key index 1010 for a single attribute 1020 using a single-attribute timing bar 1015. Similar to the example described in FIG. 2, this figure illustrates performing a cursor selection (e.g., a double click operation within) of an interior location 1040 of the timing bar 1015. It further illustrates that this selection causes the timing bar to divide into two portions (i.e., segments 1045 and 1050) about the horizontal location of the cursor. As mentioned above, the media editing applications of different embodiments treat differently the division of the timing bar 1015 into the two bar segments 1045 and 1050. For instance, some embodiments discard the timing bar 1015 and only use the segments 1045 and 1050 as selectable elements in the graphical user interface of the media editing application. Other embodiments, however, use the new segmented bars 1045 and 1050 as conceptual, pictorial representations of the division of the timing bar and graph that it represents; in other words, these embodiments maintain the timing bar 1015 as the selectable element in the GUI, and use the new key index 1010 for placing bounds on the modifications that are received directly or indirectly with respect to the timing bar 1015.

When a key index is created on a graph, some embodiments create and display a key index marker to represent the location of a key index on the timeline. This marker can then be selected and moved in order to cause the key index to be relocated to a new location on the timeline. One example of such a marker in some embodiments is a line 1055 that spans the timing bar at the location of the key index 1010. For instance, in FIG. 10, the selection of the interior location of the timing bar 1040 causes a line 1055 to appear on the timing bar. This line 1055 can be viewed as dividing the timing bar 1015 into two distinct segments 1045 and 1050. Alternatively, this line 1055 can simply be viewed as only a selectable control within the shape.

In conjunction with displaying a key index marker on the timing bar, some embodiments display a marker for the new key index on the global timing bar. For instance, FIG. 10 illustrates when the key index 1010 is created, a line 1060 representing the key index is displayed on the global timing bar 1030. Specifically, the line 1060 is displayed on the global timing bar at the horizontal coordinate of the key index. Along with the line 1060 on the global timing bar, a graphical icon may also be used to display further information as discussed above. Here, a small triangle 1055 is displayed above the global timing bar and the newly created key index to convey that the key index at that position is not a globally shared key index between all attributes currently being displayed in the geometry editor window 1005. Furthermore, similar to the marker 1055 on the single attribute timing bar, the marker in some embodiments is a selectable graphical user interface item that a user can select and move in order to cause the key index to be relocated to a new location on the graph as will be describes in later figures.

11

FIG. 11 illustrates an example of selecting a location on the global timing bar 1030 in order to create key indices across all attributes currently residing in the geometry editor window 1005. Specifically, FIG. 11 illustrates the cursor selection (e.g., a double-click operation) of a location 1100 in the global timing bar 1030. As shown, this operation creates two new key indices 1105 and 1110, where one key index 1105 is associated with the first attribute 1020, while the other key index 1110 is associated with the second attribute 1025. In this example, new key indices are created across the timing bars 1015 and 1030 about the horizontal coordinate of the selected location. Also, two new key index markers 1115 and 1120 that correspond to the two new key indices 1105 and 1110 are displayed across the timing bars 1015 and 1030 about the horizontal coordinate of the selected location.

In some embodiments, when multiple new key indices are created at a same location on multiple timing bars, some embodiments display an icon, as previously discussed, for representing the globally shared key index location on or above the global timing bar. For instance, in FIG. 11, as the two new key indices 1105 and 1110 are created at a same location along the duration, the selection causes one icon 1125, for example a square, that represents that the key index at that location is a shared key index between all attributes currently displayed in the geometry editor window 1005. Some embodiments also use such a representation when two key indices that were created at two different times for two different attributes subsequently overlap in time.

In some cases, it may be desirable to manipulate multiple different attributes at once, but not every attribute in the geometry editor window. For instance, when multiple key-indexed shapes are displayed in a geometry editor, the user may want to create key indices across only some but not all of the graphs through a single selection of a location on the global timing bar. Accordingly, some embodiments allow the user to associate and/or disassociate one or more key-indexed graphs in the global timing bar allowing modification of only the associated attributes from the global timing bar. In other embodiments, the user can select or deselect two or more shapes to combine into one multi-attribute timing bar which allows a user to perform key-index operations on multiple attributes from one multi-attribute timing bar. Such examples will described by the following figures.

12

FIG. 12 illustrates how to associate or disassociate one or more particular attributes of a media clip from a global timing bar. In one embodiment, as shown, a user can perform a right-click or control-click using the cursor on a location 1200 in the global timing bar 1030 to open up a context menu 1205. Within the context menu 1205, a user is presented with a listing of attributes associated with a particular media clip. In some embodiments, if multiple media clips are being edited, the user may be provided with sub-context menus for displaying the attributes for each of the media clips being edited. From the context menu, a user may select all attributes to be associated in the global timing bar or individually select which attributes to associate with the global timing bar. FIG. 12 illustrates the disassociation of Attribute 2 1210 from the global timing bar 1030. When Att2 1210 is disassociated from the global timing bar 1030, the timing bar 1215 representing Att2 1210 becomes inactive for editing purposes. Some embodiments will shade an inactive attribute differently from the active attributes to differentiate it while other embodiments might remove the attribute shape or timing bar altogether so as not to be displayed in the geometry editing window 1005. Once the desired attributes are the only attributes associated with the global timing bar, a user can perform key-index operations across all the associated attributes from the global timing bar as illustrated in FIG. 13.

13

FIG. 13 shows the creation of a new key-index across all attributes associated with the global timing bar 1030 similar to the operation of FIG. 11. Specifically, a double-click operation 1330 in the global timing bar 1030 creates two new key index markers 1300 and 1305 for the associated attributes Att1 1310 and Att3 1315 at the same location. The global timing bar displays a unique symbol such as a square 1325 above the newly created global key-index 1320 to signify that the key index is globally shared across all the attributes that are currently associated with the global timing bar. If Att2 1210 was once again activated or displayed in the geometry editor window, the icon 1325 would change to represent that the key index at that location no longer is a global key index for all attributes in the geometry editor window 1005.

The same operation for creating a key index across multiple desired attributes can also be accomplished by combining the desired attributes together in a multi-attribute timing bar as illustrated in FIG. 14. This operation may sometimes be preferred over disassociating the undesired attribute(s) from the global timing bar or removing them from active editing in the geometry editor window 1005.

14

FIG. 14 illustrates altering the selection state of multiple timing bars in order to combine two attributes 1420 and 1425 in a single multi-attribute timing bar 1435. As shown, three timing bars 1405, 1410, and 1415 are displayed in the geometry editor window 1005. In this example, the selection states of two attributes 1420 and 1425 are altered. Specifically, the user alters the selection states by first selecting the Att1 timing bar 1405, and then selecting the Att2 timing bar 1410. The timing bars, or graph shapes in an un-collapsed view, may be selected in any number of different ways. For instance, the user may select the timing bars 1405 and 1410 through a cursor click operation while holding down a modifier key, by selecting user-interface controls (e.g., check boxes), or through hotkeys (e.g., CTRL+A). Once the desired attribute shape representations are selected, some embodiments use a right click operation to bring up a context menu 1430 allowing the user to group the selected attributes 1420 and 1425 into a single multi-attribute timing bar 1435. The grouping of attributes may also be performed in any number of different ways. For instance, the user may combine the two using a drop down menu from the file browser of through the use of a hotkey or keyboard shortcut.

15

FIG. 15 illustrates an example of creating key indices across the selected attributes associated with the multi-attribute timing bar 1435 created in FIG. 14. Specifically, it illustrates the cursor as selecting (e.g., through a double click operation) one location 1505 on the multi-attribute timing bar in the same fashion as illustrated in FIG. 2 and FIG. 10. The user can then ungroup the multi-attribute timing bar through a context menu 1430 or keyboard shortcut to reveal the individual shapes and/or timing bars representing each attribute that was associated with the multi-attribute timing bar. As shown, the selection to create a key index in the multi-attribute timing bar creates two new key index markers, where one key index marker 1510 is associated with Att1 1420, while the other key index marker 1515 is associated with Att2 1425. This method may be useful when a user is working with several attributes and wishes not to remove several attributes from the editor window 1005 or disassociate them from the global timing bar 1030 in order to manipulate only a few of the several attributes being edited.

16

The preceding section described and illustrated various ways to create new key indices for one or more attributes of media content using timing bars. FIG. 16 conceptually illustrates a process 1600 of some embodiments for creating one or more new key indices. The specific operations of the process may not be performed in the exact order described. The specific operations may not be performed in one continuous series of operations. Different specific operations may be performed in different embodiments. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro-process. As shown, the process displays (at 1605) one or more timing bars. Several examples of displaying such timing bars in a geometry editor window are illustrated in FIGS. 10-15.

The process then receives (at 1610) an input to create one or more new key indices on a timing bar. In some embodiments, the input is received from the user interacting with a graphical user interface of the media editing application. Next, the process (at 1615) determines whether a multi-attribute timing bar or a global timing bar is selected as opposed to a single-attribute timing bar. An example of receiving a user’s selection of a single-attribute timing bar is illustrated in FIG. 10. An example of receiving selection of a location on a global or multi-attribute timing bar is described above in FIGS. 11 and 15.

When a global or multi-attribute timing bar is selected, process proceeds to 1635 which is described below. Otherwise, the process identifies (at 1620) the selected location on a single-attribute timing bar. In some embodiments, such identification entails determining the input coordinate of the selected location. The process then determines (at 1625) a location on the attribute geometry for the new key index based on the selected location. For instance, when the user selects the interior location of a timing bar, some embodiments determine the location for the new key index at the horizontal coordinate of the selected location. The process then creates (at 1630) the new key index on the timing bar at the determined location. The process then proceeds to 1655 which is described below.

When the determination is made (at 1615) that a global or multi-attribute timing bar is selected, the process proceeds to 1635. The process identifies (at 1635) the selected location on the timing bar. In some embodiments, such identification includes determining the input coordinate of the selected location. The process then identifies (at 1640) each attribute that is associated with the selected timing bar.

The process then determines (at 1645) the location for each new key index on each identified attribute geometry. For instance, when the user selects the location on the global or multi-attribute timing bar, some embodiments determine the location for each new key index at the horizontal coordinate of the selected location. The process then creates (at 1650) a new key index for each identified attribute. For instance, as illustrated in FIG. 11, if a global timing bar was selected a new key index is created for every attribute being editing in the geometry editor window. If a multi-attribute timing bar was selected, as shown in FIG. 15, a new key index is created for each attribute associated with the multi-attribute timing bar.

When one or more key indices are created, the process assigns (at 1655) an attribute value at each new key index. In some embodiments, one or more of the new key indices are assigned a default value. For instance, when the new key index represents an opacity attribute, it might be assigned a value that defines the opacity as fully visible. Some embodiments assign a value at the key index that is equal to the value of the attribute at the horizontal coordinate of the key index before the creation of the key index as illustrated in FIG. 2. That is, the creation of the key index does not alter the key-indexed graph at that point. The process then awaits (at 1660) an input to create more new key indices. When such input is received, the process returns to 1615. Otherwise, the process ends.

One of ordinary skill in the art will realize that not all features for creating key indices need to be used together. Accordingly, some embodiments perform variations of the process 1600. In some embodiments, the operations of process 1600 might be performed by two or more separate processes. That is, some embodiments could have one process for creating a new key index through selection of single-attribute timing bar and a separate process for creation of a new key index on a global or multi-attribute timing bar.

The preceding section described and illustrated alternative ways to create new key indices through the use of various types of timing bars including single-attribute, multi-attribute and global timing bars. The next section will illustrate how key indices may be relocated using the various types of timing bars illustrated in the preceding sections.

17

B. Relocating Key Indices

FIGS. 17-21 provide several examples of relocating key indices on one or more key-indexed graphs. Specifically, these figures illustrate relocating key indices by selecting and moving: (i) a representation (e.g. key index marker) of a key index on a timing bar (single or multi-attribute), (ii) an interior location within such a timing bar, and (iii) representations of key indices on a global timing bar.

FIG. 17 illustrates relocating the key index on the timing bar 1710 by selecting and moving a key index marker 1715 within the timing bar 1710. Specifically, to relocate the key index, this figure illustrates selecting and moving the marker 1715 which was similarly described above by reference to FIG. 4. To simplify these illustrations, a key index has not been shown on the key index marker as described in FIG. 4. In this example, when a user selects the marker 1715 (e.g., through a cursor click operation), the user can then move the marker (e.g., through a cursor drag operation 1720) to relocate the key index on the timing bar. Relocation of a key index will also be reflected in the global timing bar 1030 as illustrated by the relocation of the key index marker 1725 in the global timing bar 1030 in FIG. 17.

18

Similarly, FIG. 18 illustrates relocating multiple shared key indices 1805 and 1810 from the global timing bar. Here, the shared location of a key index in Att1 1815 and Att2 1820 is represented by a key index marker 1825 dividing the global timing bar. The square icon 1830 above the timing bar represents that the particular key index at that location is shared between all active attributes (1815 and 1820) currently displayed in the geometry editing window 1005. FIG. 18 specifically illustrates the selection of the marker 1825 representing the location of a key index on the global timing bar, and through a cursor drag operation 1835, each key index, 1805 and 1810, represented by the marker 1825 in the global timing bar is relocated to a new position. This same operation can also be accomplished by selecting the icon 1830 and relocating its position. Such an example is illustrated in FIG. 19.

19

When several key indices for several attributes overlap (i.e., are at the same point in the timeline), some embodiments display on the global timing bar one representation for the several key indices, as previously mentioned. When one of the two overlapping key indices is moved, some embodiments change the representation in the global timing bar to signify that the two key indices are no longer overlapping. One such example is illustrated in FIG. 20. Specifically, this figure illustrates an example of the grabbing the interior location 2005 of a segment 2010 in a timing bar 2015. This type of operation allows a user to move two key indices 2020 and 2025 that define the segment 2010 simultaneously without altering the duration between the two indices 2020 and 2025. Specifically, the segment is moved to a later or earlier position in the timeline while the duration between the two key indices 2020 and 2025 remains the same.

20

As illustrated in FIG. 20, relocating, with a click and drag cursor operation, the two key indices represented by key index markers 2020 and 2025 relocates key index 2020 that originally overlapped key index 2030. When key index 2020 is relocated, the representation in the global timing bar changes from a square 2035 to a triangle to signify that the two key indices 2020 and 2030 are no longer overlapping. As previously mentioned, the icons 2035 and 2040 may represent various types of information, and for illustration purposes the information being conveyed by the icons in FIG. 20 is the identification of overlapping and non-overlapping key indices.

21

FIG. 21 illustrates the similar concept of relocating a segment defined by two key indices as shown in FIG. 20 from a global timing bar 1030. As shown, two attribute 2120 and 2125 are currently being edited in the geometry editing window 1005. The segment 2105 is defined by two key index markers 2110 and 2115 that are shared across the two attributes 2120 and 2125. Relocating a segment 2105 in the global timing bar 1030 shifts each corresponding segment as illustrates here with segments 2130 and 2135 for each attribute 2120 and 2125. This same operation could have also been performed from a multi-attribute timing bar having both attributes 2120 and 2125 grouped together. Some embodiments allow a modification of multiple attributes from a global or multi-attribute timing bar only when both starting and ending key indices are commonly shared at the same location as shown here. Other embodiments may allow this modification if only one key index is commonly shared, while some embodiments might not allow this operation altogether.

22

The preceding section described and illustrated various ways to relocate key indices on a timing bar. FIG. 22 conceptually illustrates a process 2200 of some embodiments for relocating one or more key indices on a timing bar. The process is performed by a media editing application in some embodiments. The specific operations of the process may not be performed in the exact order described. The specific operations may not be performed in one continuous series of operations. Different specific operations may be performed in different embodiments. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro-process. As shown, the process starts when it displays (at 2205) one or more timing bars. Several examples of displaying such timing bars are illustrated in FIGS. 17-21.

The process then receives (at 2210) a selection of one or more the key index markers on the timing bar. In some embodiments, the input is received from a user interacting with a graphical user interface of the media editing application. Next, the process determines (at 2215) whether the selected key index marker is on a global or multi-attribute timing bar.

When a key-index marker on either a global or multi-attribute timing bar is selected, the process proceeds to 2220. Otherwise the process proceeds to 2230. The process identifies (at 2220) the selected key-index marker. After identifying the selected marker, the process identifies (at 2225) each attribute associated with the selected key-index marker. An example of identifying key indices that are associated with multiple attributes on a on a global timing bar is described above by reference to FIG. 18.

When the determination is made (at 2215) that a single-attribute timing bar is selected (i.e. not a global or multi-attribute timing bar) or has identified all the attributes associated with a global or multi-attribute timing bar, the process determines (at 2230) whether the key index marker on a timing bar is selected as opposed to an interior region of the timing bar. When a single key-index marker or key index is selected, the process identifies (at 2235) the location of the key index associated with the key-index marker for each attribute.

When a determination is made (at 2230) that a key index marker or key index on the timing bar is not selected, the selected portion of the timing bar is an interior location on the timing bar. The process then identifies (at 2240) the selected interior location. Based on this identification, the process then identifies (at 2245) one or more key indices that are affected by the selected interior location. Examples of identifying such key indices are described above by reference to FIGS. 20 and 21. For instance, some embodiments identify the first key indices on either side of the selected location.

Once one or more key indices are identified, the process receives (at 2250) cursor movement. Based on the cursor movement, the process (at 2255) moves each identified key index for each identified attribute to a new location on a corresponding graph. The process then awaits (at 2260) input to relocate more key indices. When such input is received, the process returns to 2215. Otherwise, the process ends.

One of ordinary skill in the art will realize that not all features for relocating key indices need to be used together. Accordingly, some embodiments perform variations on the process 2200. In some embodiments, the operations of process 2200 might be performed by two or more separate processes. That is, some embodiments could have one or more processes for relocating key indices through selection of a single attribute timing bar and a separate process for relocating key indices through selection of a global or multi-attribute timing bar.

The preceding section described and illustrated various ways to relocate new key indices through the use of various types of timing bars including single-attribute, multi-attribute and global timing bars. The next section will illustrate how the attribute value at each key index may be modified using the various types of timing bars illustrated in the preceding sections.

23

C. Specifying Attribute Values

FIGS. 23-26 provide several illustrative examples of selecting key indices provided in a timing bar and modifying the attribute value at a particular key index. In particular, these figures illustrate modifying the value of one or more attributes at a key index from a timing bar by selecting the key index on the timing bar and positioning the key index vertically on its corresponding key index marker to represent the value of the attribute at the location of that particular key index.

FIG. 23 illustrates a key-indexed graph 2305 and its collapsed timing bar representation 2310 where the attribute value at each key index 2315 and 2320 is represented by the vertical positions the key index 2325 and 2330 on their respective key index markers 2335 and 2340. As illustrated, key index 2315 is positioned at its maximum value on the key indexed graph 2305. The attribute value gradually decreases to key index 2320, as indicated by the position of key index 2320, before linearly increasing back towards its maximum value. The key-indexed graph is then shown collapsed into a timing bar. The key indices 2315 and 2320 are represented as selectable key indices 2325 and 2330 on the timing bar. FIG. 24 will demonstrate how these key indices can be moved vertically along a key index marker within the timing bar to change the attribute values at its particular location.

24

FIG. 24 illustrates modifying the attribute value of one key index from a timing bar. Specifically, FIG. 24 first shows a key-indexed graph 2405 and the graph collapsed into a timing bar 2410. Within the timing bar 2410, a cursor selection of the key index 2440 brings up a pop-up window 2420 displaying the current attribute value. As shown, the current value of the attribute is 100% at the selected location. The key index 2440 is then dragged in a downward direction by the cursor. As the key index 2440 is moved along its key index marker 2450, the pop-up window 2420 displays the value of the attribute as the value is modified. Some embodiments allow the user to drag the cursor outside the timing bar when manipulating an attribute value in this manner. This allows freedom of movement while editing and therefore does not restrict the user to be bound by the small area within the timing bar when making such edits in a timing bar.

As shown, the key index 2440 is dragged towards the bottom of the timing bar 2410 which modifies the attribute value from 100% to 20%. The change in attribute value is reflected in the expanded graph shape of the attribute where the key-indexed graph 2425 now reflects the new attribute value of 20% at the first key index 2415. In some embodiments, the attribute values are displayed at all times through text labels within the timing bar rather than displaying the value in a pop-up window during selection of a key index. Such an example is shown in FIG. 25.

25

FIG. 25 illustrates the same timing bar 2310 and 2410 of FIGS. 23 and 24 having text labels to reflect the attribute values at each key index. Specifically, FIG. 25 illustrates how the text labels react when editing the attribute value at a key index. In this illustration, the text conveys the attribute values in each segment of the timing bar, where each segment is defined by a starting and ending key index. When an attribute value is constant between two key indices, only the constant value of the attribute is displayed within the segment as illustrated in the first segment 2505 of the timing bar 2500. The second segment 2510 represents segment 2430 of the key-indexed graph 2405 of FIG. 24. This segment reflects the change in attribute value from 100% at the beginning key index 2515 to 60% at the ending key index 2520. The final segment 2525 illustrates the attribute value going back up to 100% from 60%.

The illustration initially shows the selection of key index marker 2515. After selection of the key index marker 2515, the text labels 2530 are highlighted and move towards the key index to visually inform a user of the selection of that particular key index for editing. Here, the illustration shows the same edit of FIG. 24 where the attribute value at key index 2515 is modified from an initial value of 100% to 20% at key index 2515 in segment 2505. The second segment 2510 also reflects the change in the same fashion by showing the attribute value now starting at 20% and changing to 60% between the two key indices 2515 and 2520 that define the second segment 2510 of the timing bar 2500. After releasing the key index marker 2515, the text labels return to their centered position within their respective segments and are no longer highlighted.

This illustration shows that the attribute values are changing from one value to another by displaying an arrow 2540 between the text that displays the attribute values. Some embodiments can also convey the type of interpolation (e.g. ease out, ease in, linear) at which the attribute value changes through icons rather than displaying an arrow between the text. These icons can represent certain default or pre-set transitions that are available to the user in the media editing application. Furthermore the icon or arrow 2540 can be selectable in some embodiments, where selection of the arrow or icon reveals a context menu populated with pre-set interpolations that can be applied to that particular segment. Editing the transition, or interpolation, from a timing bar using other methods will be discussed in further detail in the following section.

FIG. 24-25 illustrated how the attribute value at one key index can be specified. Some embodiments also allow the simultaneous modification of the value of an attribute at more than one key index, specifically the starting and ending key indices that define a segment within a timing bar or graph shape. This example is illustrated in FIG. 26. FIG. 26 shows the same timing bar of FIGS. 23-25 having an attribute value of 100% at the first key index 2605 and a value of 60% at the second key index 2610. First, the selection of an interior location 2615 of the segment 2620 is shown. This selection highlights the segment 2620 to indicate to the user that he is about to perform an edit operation on the entire segment. Previously, FIG. 20 illustrated a similar selection of a segment on the timing bar to show that the position of two key indices can be relocated to a different position in the timeline by dragging the segment left or right.

26

In FIG. 26 the same concept applies, but instead the attribute value at each key index 2605 and 2610 is being modified by a vertical up or down movement of the cursor. Some embodiments provide the user with a keyboard control or hotkey to allow movement in only the vertical or horizontal direction to avoid the user from accidentally making edits in both the location and attribute value of each key index.

When modifying the attribute value, as illustrated, a pop-up box 2625 displays the relative change in value at each key index 2605 and 2610. Initially, the relative change is zero. When the cursor is dragged vertically in a downward direction, the pop-up box 2625 reflects the relative change at each key index. Here, the illustration shows that the attribute value has been decreased by a value of 50%. Therefore, the final position of key index 2605, which started at 100%, has changed to 50% and the value of key index 2610, which started at 60%, has changed to 10% as illustrated by the position of each key index along their respective key index maker within the timing bar.

The operations described above can also be translated in the same manner to a multi-attribute or global timing bar where the two or more attributes being represented share common key indices for a particular segment. When changing the value of multiple attributes in a similar fashion, the pop up displays 2420 and 2625 of FIG. 24 and FIG. 26 can be populated with each attribute and the current value of each attribute at that particular location.

27

The preceding section described and illustrated various ways to modify attribute values at key indices. FIG. 27 conceptually illustrates a process 2700 of some embodiments for setting attribute values at one or more key indices. The specific operations of the process may not be performed in the exact order described. The specific operations may not be performed in one continuous series of operations. Different specific operations may be performed in different embodiments. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro-process. As shown, the process starts when it displays (at 2705) one or more timing bars in a geometry editor window of a media editing application as illustrated in all the previous figures.

The process then receives (at 2710) selection of at least one key index to set the attribute values at each key index. After receiving the selection, the process then determines (at 2715) whether the a single key index is selected as illustrated in FIGS. 24-25 as opposed to the selection of two key indices as illustrated in FIG. 26. Some embodiments make this determination based on whether a single key index or key index marker is selected or whether a segment, defined by a starting and ending key index is selected on the timing bar. When the selection corresponds to a single key index, the process then identifies (at 2720) the corresponding key index.

When the selection corresponds to multiple key indices (i.e. when a segment of the timing bar is selected), the process proceeds to 2725. The process identifies (at 2725) the key indices associated with the selected location on the timing bar. In some embodiments, the identification includes identifying the key indices that are adjacent to the selected segment of a timing bar. That is, when the selection is at a point within a timing bar between two key indices, the process identifies the key indices on either side of the selected point. This corresponds to the selection of a segment of the timing bar as illustrated in FIG. 26.

Next, the process receives (at 2730) cursor movement for the identified key indices. Based on the cursor movement, the process (at 2735) modifies the attribute value at each of the identified key indices. The process then modifies (at 2740) the key-index geometry at each identified key index in accordance with the new attribute values at each key index. That is, as the attribute value at a key index is modified, the key-indexed geometry is modified as well. Several examples of performing such modifications are described above by reference to FIGS. 24-26. The process also modifies (at 2745) the interpolation between key indices. For instance, in FIG. 24, the selection and movement of the key index 2440 causes the interpolation between adjacent sets of key indices to be modified. Modifying the attribute of one key index, as illustrated in FIG. 24, will modify the slope of the graph between key index 2415 and the neighboring key index before 2415 as well as the interpolation between key index 2415 and the neighboring key index after key index 2415.

One of ordinary skill in the art will realize that not all features described above for setting attribute at key indices need to be used together. Accordingly, some embodiments perform variations on the process 2700. That is, some embodiments could have one process for modifying attribute values at key indices through selection of one or more key indices and a separate process for modifying attribute values at key indices through the selection of text labels or the selection of the key-index markers on a global timing bar.

The above examples have illustrated how key indices can be relocated and how the attribute value at each key index can be modified from a timing bar. The next section will describe how the transition, or interpolation, between key indices can be directly modified from a timing bar without having to expand the timing bar into a full key-indexed graph.

28

D. Modifying Interpolation Between Key Indices

FIG. 28-35 illustrate examples of manipulating the transition (i.e. interpolation) between two key indices of a key-indexed graph with the use of a timing bar. Specifically, these figures illustrate (i) selection of an interpolation mode for editing interpolations using timing bars, (ii) interpolation marks for representing the speed or ease of a transition, and (iii) manipulation of the interpolation marks to affect the interpolation between two key indices.

FIG. 28 illustrates a timing bar representation 2800 of a key-indexed graph 2805 with one segment 2810 selected for editing in interpolation mode. This figure includes a geometry editor widow 1005 for displaying a key-indexed graph representation 2805 or timing bar 2800, a global timing bar 2825, and an interpolation user interface (UI) item 2840. The interpolation UI item 2840 is a conceptual illustration of one or more UI items that allows the media editing application to enter a specific editing mode designed for affecting the transition of an attribute between two key indices. Different embodiments implement this UI differently. For instance, some embodiments implement it as an interpolation mode button, others as a interpolation mode command that can be selected in a pull-down or drop-down menu, and still others as a interpolation mode command that can be invoked through one or more keystroke operations.

Initially, FIG. 28 shows a key-indexed graph 2805 having two key indices 2815 and 2820. The graph 2805 is then collapsed into a timing bar 2800. Within the timing bar 2800, the segment 2810 defined by the key indices 2815 and 2820 is selected. Then, the interpolation mode UI item 2840 is selected as indicated by the shading of UI item 2840. Initiating interpolation mode editing does not need to be invoked after the selection of a particular segment. Starting the interpolation editing mode can be invoked by a user anytime before selection of a segment as the user can freely choose any desired segment to edit once interpolation editing has been activated.

After a particular segment has been selected for editing in interpolation mode, several vertical lines (i.e. interpolation marks) 2830 are displayed. These marks convey the speed or ease at which the attribute value is changing over the duration of the segment. Some embodiments represent a slow, gradual change in attribute value with larger spacing between lines and a fast, swift change in attribute value with smaller spacing between each vertical line. As illustrated in the figures of this section, other embodiments may represent the speed of change in an opposite way by displaying faster, swift change in attribute value with larger spacing between lines and a slow, gradual change in attribute value with smaller spacing between each vertical line. Editing the transition between key indices in interpolation mode will now be illustrated by reference to FIGS. 29-33 which show a progression of multiple interpolation mode edits and its corresponding effect on the key-indexed graph.

29

FIG. 29 shows the geometry editor window 1005 in interpolation mode, as indicated by the shaded interpolation UI item 2840, with the timing bar 2800 of FIG. 28 having segment 2810 selected. This figures, as well as each subsequent figures in this section, shows the timing bar 2800 expanded to illustrate the equivalent key-indexed graph 2805 and the modified transition between key indices 2815 and 2820. Here, the interpolation marks 2830 are evenly spaced representing a consistent change in attribute value, specifically a linear transition. The linear transition between key indices 2815 and 2820 is visually illustrated by the linear slope between the two key indices 2815 and 2820 in the key-indexed graph 2805.

30

FIG. 30 illustrates manipulation of the interpolation marks 2830 to create a non-linear transition between key indices 2815 and 2820. Here, the cursor has performed a click and drag movement within the segment 2810. Moving the cursor to the right squeezes the interpolation marks 2830 together, which, in this embodiment, represents a slower transition in the attribute value. In particular, the first edit illustrated in this figure represents an ease-out transition where the change in attribute value decreases in speed as it approaches the second key index 2820. The ease out transition between key indices 2815 and 2820 is visually illustrated in the key-indexed graph 3005.

31

FIG. 31 continues from FIG. 30 and illustrates a second edit to the transition of the attribute between key indices 2815 and 2820. Here, the cursor has clicked the middle of the segment 2810 and dragged to the left creating an ease-in transition. This edit combines the ease-out transition from FIG. 30 with an ease-in transition to slow down the change in attribute values at the beginning and before the end of the transition over the duration of the segment 2810. The interpolation marks 2830 convey the ease-both transition by showing the marks squeezed together towards the beginning and end of the segment 2810. The ease-both transition between key indices 2815 and 2820 is visually illustrated in the key-indexed graph 3105.

32

FIG. 32 illustrates one further interpolation edit using interpolation marks. Here, the cursor has selected the middle of the segment 2810 and dragged the cursor up. An up and/or down cursor movement can accelerate and/or decelerate the speed of change in the attribute value. The operation illustrated here accelerates the transition at the beginning and towards the end of the segment 2810 while decelerating the change in value in the middle of the segment 2810. This is reflected by interpolation marks being closer together in the center and more spread apart towards each key index 2815 and 2820. The change in transition between key indices 2815 and 2820 is visually illustrated in the key-indexed graph 3205.

In FIGS. 29-32, the selected internal location of the segment 2810 was horizontally halfway in between key indices 2815 and 2820 and the ease of transition throughout the entire segment was modified equally. In some embodiments, the amount of modification to the transition is weighted depending on the location of the internal selection point on the segment. For instance, when the selection point is closer to a first key index than a second key index, the transition near the first key index will be modified by a greater amount than at the second key index.

33

FIG. 33 illustrates the application of a pre-set transition from the timing bar 2800 in interpolation mode. Here, a user performs a control-click or right-click within the segment 2810 to reveal a context menu 3305 to display the different pre-set transitions available. In this example, a linear transition has been selected from the context menu 3305. Selection of a pre-set transition will replace all user edits in regards to the transition and instead use the pre-set transition selected. After selection of the linear transition, the interpolation marks 2830 become evenly spaced to represent the same linear progression within the segment 2810. The change in transition is visually illustrated in the key-indexed graph 3340 with a linear slope between key indices 2815 and 2820.

34

Some embodiments allow editing the interpolation between two key indices for two or more attributes. Such an edit would take place within a multi-attribute timing bar or the global timing bar. An example of such an edit is illustrated in FIGS. 34 and 35. FIG. 34 illustrates segment 3405 on the global timing bar 3400 in interpolation mode. This could just as well be a multi-attribute timing bar in the geometry editing window where Attribute X 3410 and Attribute Y 3415 are grouped together. For simultaneous editing of a transition between two key indices of multiple attributes, it is essential that the attributes share common key indices so a transition can be applied uniformly over the shared duration. There is no need for the multiple attributes to share common attribute values since the transition only affects the speed of the transition between a starting and ending key index. Here, both attributes 3410 and 3415 share key indices 3420 and 3425, therefore the media editing application will allow a user to enter interpolation mode for that selected segment 3405 as illustrated by the interpolation marks 3430 in FIG. 34. As shown, both attributes 3410 and 3415 currently have a linear transition between the shared key indices 3420 and 3425.

35

FIG. 35 illustrates the same ease out modification of FIG. 30 applied from the global timing bar 3400 for two attributes 3410 and 3415. Here, the center of the segment 3405 is selected and dragged towards the ending key index 3425. As illustrated, the values for both attributes 3410 and 3415 change slower towards the ending key index as illustrated by the key-indexed graph.

36

Having described editing the interpolation of an attribute between two key indices from a timing bar, FIG. 36 illustrates a process 3600 that some embodiments perform when modifying the interpolation between two key indices using interpolation marks on a timing bar. The specific operations of the process may not be performed in the exact order described. The specific operations may not be performed in one continuous series of operations. Different specific operations may be performed in different embodiments. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro-process. FIG. 36 will be described by reference to the examples that were described above in FIGS. 28-33. In some embodiments, the process of FIG. 36 starts after the interpolation mode editing has been enabled by a user.

In some embodiments, the process of FIG. 36 initially displays (at 3605) one or more timing bars in the media editing application. For example, in FIG. 28, the key-indexed graph 2805 is collapsed into a single attribute timing bar 2800 in the geometry editor window 1005.

Next, the selection of a segment of the timing bar is received (at 3610). A segment is defined by a starting and ending key index. As illustrated in FIG. 28, the selected segment 2810 is highlighted and defined by the starting key index 2815 and an ending key index 2820. After a segment has been selected, the process displays (at 3615) several vertical interpolation marks that span the selected segment of the timing bar. As illustrated in FIG. 28, the interpolation editing mode has not been enabled until after the selection of segment. The interpolation marks appear on the selected segment in interpolation editing mode, and it would be apparent to one skilled in the art that the enabling the interpolation editing mode can occur anytime before or after the selection of a desired segment.

Once a segment of the timing bar is displaying the interpolation marks, the process continues (at 3620) with the user manipulating the interpolation marks with click and drag cursor movements. Several different cursor movements within the segment 2810 were illustrated in FIGS. 29-32. For example, a user can click on any interior section of the segment and drag the cursor in any direction (i.e. up, down, left, or right). Furthermore, as illustrated in FIG. 33 a pre-set interpolation can also be applied in lieu of manually editing the interpolation marks.

Interacting with the interpolation marks 2830 in the process 3600 will modify (at 3625) the distance between each interpolation mark within the segment as illustrated in FIGS. 29-32. Applying a pre-set interpolation, as illustrated in FIG. 33, will similarly modify the distance between the interpolation marks. As previously described, the distance between each mark represents the speed at which the attribute value is changing over the duration. Accordingly, the process will compute (at 3630) the interpolation between the two key indices that define the segment with respect to the manipulation of the interpolation marks. After computing the interpolation, the process will (at 3635) redraw the key-indexed geometries for that particular segment to correspond with the computed interpolation.

Editing the interpolation between two key indices on a key-indexed graph was cumbersome before such an interpolation editing mode on a timing bar. Previously, a user created a curve, or interpolation, on the graph representing the value of an attribute through manipulation of key index control points to achieve a desired curve between two key indices. With interpolation mode editing on a collapsed representation of a key-indexed graph, a user can easily interact and receive visual feedback of the interpolation or curve between two key-indices without having to interact with an attribute graph. Accordingly, this novel feature allows greater ease when editing the interpolation between two key indices.

While all the examples described by reference to FIGS. 1-35 have illustrated editing key-indexed geometries, other permutations are possible. For instance, many collapsed geometric representations of key index geometries are describe by reference to single-attribute timing bars, multi-attribute timing bars, and global timing bars. However, for cases where the duration these bars span is defined over a frequency, similar bars would be characterized as frequency timing bars. Moreover, although the collapsed representations are shown as a bars, any type of collapsed representation that would provide similar features can be used. Thus, the scope of the invention should be analyzed by reference to the claims.

37

IV. Key-Index Editing from the Canvas

The previous sections illustrated examples of manipulating timing bars that represents one or more key-indexed graphs for the purpose of modifying attribute values of a media item over a duration. Another novel feature of the media-editing application allows modification of one or more attributes directly from the display area, or canvas, that is used to preview the composite presentation created in the media editing application. In some such embodiments, canvas editing operations allow a user to create a pre-defined transition over a pre-defined duration for one or more attributes without having to interact with attribute geometries in the geometry editor.

In some embodiments, the media editing application allows such canvas editing operation to be performed without interacting with the geometry editor by allowing the user to manipulate a particular frame of a media clip on the canvas. For instance, the particular frame displayed on the canvas is defined by the position of the playhead in time for the particular media clip. Attributes can be edited as desired, and a pre-defined transition is applied over a pre-defined duration to each attribute that was edited. The pre-defined duration can define two new key indices for the transition, one at the playhead and a second before the playhead according to the pre-defined duration for each edited attribute. Other embodiments allow the user to define the duration to begin at the closest exiting key index before the playhead. Other embodiments also allow for the second key index of the transition to be created after the playhead.

FIG. 37 illustrates a media editing application 3700 that has a canvas 3705 on which a user can specify attribute modifications. This media editing application is identical to the media application of FIG. 9 with the exception of the several tools 3710 provided on the canvas 3705. Accordingly, similar reference numbers of are used to identify similar components of FIG. 9 that match components of FIG. 37. For purposes of brevity, these similar items will not be described here.

The canvas 3705 of the media editing application 3700 in FIG. 37 includes several user interface (“UI”) tools 3710 that can be utilized to perform key-indexed editing operation for one or more attributes of a particular media clip displayed on the canvas 3705. These UI tools 3710 are conceptual illustrations of one or more UI items that allow the user of the media editing application to edit the media clip currently displayed on the canvas. Different embodiments implement these UI items differently. For instance, some embodiments implement the tools through UI buttons, others as a command that can be selected in a pull-down or drop-down menu, and still others as a command that can be invoked through one or more keystroke operations. Further embodiments can display editing tools directly on the canvas as graphical UI items for editing which will become apparent through the following figures.

38

To illustrate an example of the creation and manipulation of key indices for one of more attributes directly from the canvas 3705, FIGS. 38-45 illustrate eight different stages of a user’s interaction with the GUI 3700, specifically the canvas 3705. FIG. 38 illustrates a first stage that is before the creation of any new key indices. Initially, the canvas 3705 displays the video frame of a media clip at the particular time defined by the position of the playhead 940. In this first stage, a pre-defined transition for applying to the attributes the user will be editing on the canvas 3705 has been selected. Here, the selection of the first UI item 3850 reveals a pop-up menu 3855. The pop-up menu displays multiple pre-defined transitions that a user can select. In this particular example, an ease out transition 3860 has been selected.

39

FIG. 39 illustrates a second stage where the duration of the transition has been selected. In this stage, selection of a second UI item 3905 reveals another pop-up menu 3910 populated with pre-defined durations. Here, selection of item 3920 which provides a duration of two seconds for the transition is illustrated. Some embodiments allow a user to specify the exact duration of the transition, while others allow the duration to begin from the last key index up until the playhead 940. In this example, selection of a two second duration will be used to create two new key indices on each attribute geometry that will be manipulated from the canvas.

40

FIG. 40 illustrates a third stage where the scale tool 4005 has been selected on the canvas 3705 for modifying the scale attribute of the particular media clip being displayed. This displays a graphic 4010 on the canvas 3705 which represents the particular edit operation that can be performed. Here, that arrow graphic 4010 is selectable for editing the scale attribute of the media clip at the particular frame. Some embodiments automatically provide multiple graphics on the canvas in an editing mode where each graphic represents a tool that is used for manipulating a particular attribute of the media clip (e.g. scale, position, rotation, opacity) rather than requiring a user input to display each tool on the canvas. Other modifiable attributes that are not as easily conveyed as graphical items on a canvas (e.g. pivot, shadows, shear) can be selected through a control-click which can display all the modifiable attributes of the media content displayed in a context menu in some embodiments.

41

FIG. 41 illustrates a fourth stage where the scale graphic 4010 has been selected and dragged towards the middle of the canvas 3705. This causes the frame to be reduced in size in the x and y-direction. In response to this user edit, the attribute display window 915 reflects the changed attribute value at the playhead 940. In particular, the scale attribute 4105 reflects that the scale in both the x and y-direction has been reduced to 50%. As soon as a particular attribute is being edited on the canvas, a first key index 4150 is created at the playhead for the scale attribute. A second key index 4155 is created two seconds before the playhead to correspond with the pre-defined duration selected in the second stage as shown in FIG. 39. FIG. 41 displays these new key indices on the global timing bar 4120. Therefore, up to this point in the canvas edit operation, two new key indices 4150 and 4155 have been created for the first edited attribute and they key indices 4150 and 4155 are separated by two seconds with the second key index ending at the current playhead 940 location.

42

FIG. 42 illustrates a fifth stage where the position UI item 4205 has been selected on the canvas 3705 for modifying the position attribute for the particular media clip being displayed. This reveals a graphic 4210 on the canvas 3705 that represents a tool for manipulating the position of the current frame. Here, the graphic 4210 is selectable for dragging the scaled frame to a different position on the canvas.

43

FIG. 43 illustrates a sixth stage where the position graphic 4210 has been selected and dragged towards the top right corner of the canvas. In response to the relocation of the scaled frame, the attribute display window 915 reflects the changed position attribute 4305 at the playhead 940. Specifically, the position attribute has changed in the x-direction from 0 to 300 and the y-direction has changed from 0 to 200. Similar to FIG. 41, as soon as the position attribute is modified, two new key indices will be created on the corresponding key-indexed attribute geometry for position. This completes the particular edit operation being performed on the canvas. In particular, the edit performed has accomplished a picture-in-picture effect where the scale of the media clip been reduced by half and then positioned in the top right corner of the canvas. This transition happens over a period of two seconds and occurs faster at the beginning of the transition than the end as indicated by the ease out transition selected in the first stage of the canvas edit.

44

FIGS. 44-45 illustrate the completed canvas edit and transition. FIG. 44 first shows the playhead 940 moved to the beginning of the timeline. In particular, the playhead 940 has been moved ahead of the key index 4155 that was created for each attribute, namely position and scale. The canvas displays the frame of the media clip at the playhead 940 which occupying the entire canvas 3705. The play button 4405 is selected to begin playing the media presentation created in the media editing application.

45

FIG. 45 then illustrates the playhead 940 past the second key index 4150. At this point in time, the media clip has been scaled down and moved to the corner of the screen in accordance with the canvas edits described in the previous figures. In summary, the canvas edits described have created two new key indices 4150 and 4155 for each attribute manipulated in the canvas edit, scale 4105 and position 4305, and created a transition between the key indices 4150 and 4155 for the changing attribute value over the pre-defined duration. Although only two key indices 4150 and 4155 are displayed on the global timing bar, in reality, eight new key indices have actually been created. Specifically, two key indices have been created for each edited attribute as illustrated by the attribute geometries shown in the FIGS. 46-47.

46

FIGS. 46-47 illustrate a geometry editor window 4600 that displays each attribute that was edited on the canvas in FIGS. 38-41. FIG. 46 illustrates four timing bars in the geometry editor window 4600. In particular, the scale attribute 4610 for the x and y-direction and the position attribute 4615 for the x and y-direction are all displayed. These timing bars represent the key indices that were created, the attribute values at those key indices, and the change in value of each attribute between the two key indices that were created on the canvas.

47

FIG. 47 illustrates the same timing bars uncollapsed to reveal the graph shapes of each attribute.

The figures and processes discussed above represent an alternative method of editing multiple attribute and key indices without the use of the geometry editor. This embodiment allows a user to quickly and visually make edits to one or more attributes directly on the canvas opposed to manipulating the attributes through the use key-indexed geometries.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 3,357 other followers

%d bloggers like this: