PATENT DOCUMENT

Publication Number: US-8701007-B2
Application Number: US-43389309-A
Country: US
Kind Code: B2

Title: Edit visualizer for modifying and evaluating uncommitted media content

Abstract:
A computer readable medium (CRM) storing a media editing application for creating media presentations is described. The application includes a graphical user interface (GUI). The GUI has (1) a display area for displaying a composite presentation that the application creates by compositing a plurality of media clips, (2) a composite display area for displaying graphical representations of a set of media clips that are part of the composite presentation and a set of media clips that are candidates for adding to the composite presentation, and (3) a preview tool for differentiating in the composite display area the graphical representation of any media clip that is part of the composite presentation from the graphical representation of any media clip that is a candidate for adding to the composite presentation.

Claims:
The invention claimed is: 
     
       1. A non-transitory machine readable medium storing a media editing application for creating media presentations, said application comprising a graphical user interface (GUI), said GUI comprising:
 a composite display area for displaying graphical representations of a set of committed media clips that are part of a composite presentation and a set of candidate media clips that are candidates for adding to the composite presentation; 
 a preview tool for:
 adding a candidate media clip to the composite display area at a particular location that at least partially overlaps a graphical representation of a committed media clip, and 
 differentiating in the composite display area the graphical representation of the added candidate media clip, which is a candidate for adding to the composite presentation but is not part of the composite presentation, from the graphical representation of the committed media clip that is part of the composite presentation, wherein the differentiating comprises displaying the candidate clip&#39;s graphical representation with a different shape than the committed clip&#39;s graphical representation; and 
 a preview display area for displaying a preview of the composite presentation, wherein a preview of the committed media clip in the composite presentation is superseded by a preview of the candidate media clip in accord with the overlap of the graphical representation of the candidate media clip over the graphical representation of the committed media clip. 
 
 
     
     
       2. The non-transitory machine readable medium of  claim 1 , said GUI further comprising a preview selection item for selecting a particular media clip to designate as the candidate clip before adding the candidate clip to the composite display area. 
     
     
       3. The non-transitory machine readable medium of  claim 1 , wherein the GUI further comprises a media library for displaying media clips to add to the composite display area, wherein the candidate clip is added to the composite display area based on a selection of the candidate clip from the media library. 
     
     
       4. The non-transitory machine readable medium of  claim 3 , wherein the candidate clip is added to the composite display area by dragging the candidate clip from the media library to the composite display area. 
     
     
       5. The non-transitory machine readable medium of  claim 1 , said GUI further comprising a pull-down menu comprising a menu option for adding media clips to the composite display area, wherein the candidate clip is added to the composite display area based on a selection of the menu option from the pull-down menu. 
     
     
       6. The non-transitory machine readable medium of  claim 1 , said GUI further comprising a preview selection item for (i) removing a particular media clip from the set of committed media clips that are part of the composite presentation and (ii) adding the particular media clip to the set of candidate media clips that are not part of the composite presentation. 
     
     
       7. The non-transitory machine readable medium of  claim 1 , said GUI further comprising a preview commit item for (i) removing the candidate clip from the set of candidate media clips that are not part of the composite presentation and (ii) adding the candidate clip to the set of committed media clips that are part of the composite presentation. 
     
     
       8. The non-transitory machine readable medium of  claim 1 , wherein the graphical representation of each committed media clip that is part of the composite presentation has a first visible appearance, wherein the graphical representation of each candidate media clip that is not part of the composite presentation has a second visible appearance that is different from the first visible appearance. 
     
     
       9. The non-transitory machine readable medium of  claim 1 , the preview display area for playing a preview of the composite presentation including any candidate clips that are graphically displayed in the composite display area. 
     
     
       10. The non-transitory machine readable medium of  claim 1 , wherein the media clips comprise at least one audio clip and at least one video clip. 
     
     
       11. A method of creating media presentations using a media editing application, said method comprising:
 providing a display area for displaying a composite presentation that the application creates by compositing a plurality of media clips; 
 providing a composite display area for displaying geometric shapes representing media clips at a plurality of locations in the composite display area, the media clips comprising a set of committed media clips that are part of the composite presentation and a set of candidate media clips that are candidates for adding to the composite presentation; and 
 providing a preview tool for (i) adding a candidate media clip to the composite display area and (ii) differentiating in the composite display area the geometric shape of any particular committed media clip that is part of the composite presentation and is displayed at a particular location in the composite display area, from the geometric shape of any particular candidate media clip that is a candidate for adding to the composite presentation at the particular location in the composite display area, said preview tool differentiating the geometric shapes in order to simultaneously display the particular committed and candidate media clips at the particular location in the composite display area. 
 
     
     
       12. The method of  claim 11 , wherein the geometric shape of each committed media clip in the composite display area that is part of the composite presentation has a first visible appearance and the geometric shape of each candidate media clip in the composite display area that is a candidate for adding to the composite presentation has a second visible appearance, said first visible appearance different from said second visible appearance. 
     
     
       13. The method of  claim 12 , wherein the first and second visible appearances are first and second colors. 
     
     
       14. The method of  claim 12 , wherein the first and second visible appearances are first and second shapes. 
     
     
       15. The method of  claim 12 , wherein the first and second visible appearances are first and second sizes. 
     
     
       16. The method of  claim 15 ,
 wherein the first visible appearance comprises a rectangle with a particular width and a particular height, 
 wherein the second visible appearance comprises a rectangle with the particular width and a height that is half the particular height. 
 
     
     
       17. A non-transitory machine readable medium storing a media editing application, the media editing application comprising:
 a set of instructions for providing a preview display area for previewing a composite presentation that the application creates by compositing a plurality of audio clips; 
 a set of instructions for providing a composite display area for displaying geometric shapes of a set of committed audio clips that are part of the composite presentation and a set of candidate audio clips that are candidates for adding to the composite presentation; and 
 a set of instructions for providing a preview tool for (i) converting a particular committed audio clip, that is displayed in the composite display area and is part of the composite presentation, to a candidate audio clip that is a candidate for adding to the composite presentation but is not part of the composite presentation and (ii) differentiating in the composite display area the geometric shape of any committed audio clip that is part of the composite presentation from the geometric shape of the converted candidate audio clip, wherein differentiation of the committed and candidate audio clips allows any candidate audio clip in the composite display area to be distinguished from any committed audio clips in the composite display area. 
 
     
     
       18. The non-transitory machine readable medium of  claim 17 , wherein the preview tool is further for applying at least one edit style from a set of edit styles to one or more candidate audio clips that are not part of the composite presentation. 
     
     
       19. The non-transitory machine readable medium of  claim 17 , wherein the preview tool is further for removing, from the composite display area, the geometric shapes of the set of candidate audio clips that are candidates for adding to the composite presentation. 
     
     
       20. The non-transitory machine readable medium of  claim 18 , wherein an appearance of one or more geometric shapes in the composite display area is modified upon application of the edit style, wherein the preview tool is further for locking a particular geometric shape in the composite display area, wherein an appearance of the locked particular geometric shape is not modified upon application of the edit style. 
     
     
       21. The non-transitory machine readable medium of  claim 17 , wherein the composite display area comprises a timeline relating to a duration of the composite presentation, wherein the geometric shapes of the candidate and committed audio clips are placed on one or more tracks that span the timeline of the composite display area. 
     
     
       22. The non-transitory machine readable medium of  claim 1 , said GUI further comprising a deactivation control for deactivating the candidate media clip by removing the candidate clip&#39;s graphical representation from the composite display area or modifying an appearance of the candidate clip&#39;s graphical representation in the composite display area. 
     
     
       23. The non-transitory machine readable medium of  claim 22 , wherein the deactivation control is further for storing information relating to a location of the candidate clip&#39;s graphical representation in the composite display area. 
     
     
       24. The non-transitory machine readable medium of  claim 23 , said GUI further comprising an activation control for reactivating the candidate clip by placing the candidate clip&#39;s graphical representation in the composite display using the information relating to the location. 
     
     
       25. The non-transitory machine readable of  claim 1 , wherein the GUI further comprises a preview selection item for selecting a particular video clip to designate as the candidate clip before adding the candidate video clip to the composite display area.

Description:
FIELD OF THE INVENTION 
     The present invention relates to an editing tool that allows modification and display of uncommitted media content without affecting content that is committed to a media project. 
     BACKGROUND OF THE INVENTION 
     Digital graphic design, image editing, audio editing, and video editing applications (hereafter collectively referred to as media content editing applications or media editing applications) provide graphical designers, media artists, and other users with the necessary tools to create a variety of media content. Examples of such applications include Final Cut Pro® and iMovie®, both sold by Apple Computer, Inc. These applications give users the ability to edit, combine, transition, overlay, and piece together different media content in a variety of manners to create a resulting media project. The resulting media project specifies a particular sequenced composition of any number of text, audio clips, images, or video content that is used to create a media presentation. 
     Various media editing applications facilitate such composition through electronic means. Specifically, a computer or other electronic device with a processor and computer readable storage medium executes the media content editing application. In so doing, the computer generates a graphical interface whereby designers digitally manipulate graphical representations of the media content to produce a desired result. 
     One difficulty in media editing is that a user cannot easily evaluate alternative content or changes to existing content in the context of the media project without altering the existing project data. At any given time, the user may wish to preview changes to the project before committing such changes to the project. 
       FIG. 1  illustrates a typical graphical user interface (“GUI”)  100  of a media editing application. As shown, the GUI includes a timeline  110  that includes various media clips  120 - 130 , a preview display pane  140  for viewing the project, and a collection of media content (alternatively referred to as a “media library”)  150  that is available to add to the project. In this example, a user wishes to evaluate the project after replacing the “Video_ 2 ” clip  130  in the timeline  110  with the “Video_ 3 ” clip  160  in a modified timeline  170  shown in the updated GUI  180 . 
     As shown, the user has replaced the clip  130  with the “Video_ 3 ” clip  160 . The application automatically overwrites both the display of the clip data in the timeline  170  and the underlying project data. The project data is conceptually represented as a set of media content. As shown, before modifying the project, the project data  185  includes representations of the three clips  120 - 130  in the example timeline  110 . After modifying the project, by altering the timeline  160  to include a new clip  160  in place of a previously-included clip  130 , the project data  190  has been modified to represent the three clips  120 ,  125 , and  160  shown in the modified timeline  170 . 
     By replacing the “Video_ 2 ” clip  130 , the “Video_ 2 ” clip (or a reference thereto) is removed from the project data and any data associated with the “Video_ 2 ” clip is also lost. This associated data may include video effects data, start and stop points, audio enhancements, etc. Thus, if the user wishes to revert to the project as shown in timeline  110 , the user must replace the “Video_ 3 ” clip  160  with the previously-displaced “Video_ 2 ” clip  130  (e.g., by manually replacing the content, performing a series of “undo” operations, or some other way). In addition, after restoring the “Video_ 2 ” clip the user may have to trim the content, add effects, or perform other editing operations to return the project to the state it was in before evaluating the “Video_ 3 ” clip  160 . Furthermore, the user must repeat similar steps in order to evaluate other potential changes to the media project. 
     Thus, there is a need for a media editing application that allows a user to preview modifications to the media project and resulting media presentation without committing the modifications to the project or presentation. 
     SUMMARY OF THE INVENTION 
     Some embodiments provide a media editing application for creating media presentations. The media editing application includes in some embodiments a display area for displaying a composite presentation that the application creates by compositing several media clips (e.g., audio clips, video clips, text overlays, pictures, and/or other media). The media editing application of some embodiments also includes a composite display area (e.g., an area with multiple tracks that span a timeline in some embodiments) for displaying graphical representations of (1) a set of “committed” media clips that are part of the composite presentation, and (2) a set of “candidate” media clips that are candidates for adding to the composite presentation. The media editing application of some embodiments further includes a preview option for differentiating in the composite display area between a graphical display representation of a media clip that is part of the composite presentation and a graphical display representation of a media clip that is a candidate for adding to the composite presentation. 
     To implement the preview option, some embodiments of the media editing application have a preview selection GUI item (e.g., a user interface item or menu selection item) that can be used to define a particular media clip as a candidate clip in the composite display area. In some embodiments, a user of the application can use the preview selection GUI item to add a particular media clip (e.g., audio clip, video clip, text overlay, picture, and/or other media) that is in a media storage (e.g., a folder or media library) as a candidate clip to the composite display area. For instance, in some embodiments, the user can first select the preview selection GUI item before adding the particular clip to the composite display area from the media storage. This clip can be added to the composite display area through a click-and-drag operation of a cursor-control device, through the selection of an option from a pull-down or pop-up menu after selecting the particular clip, or through any number of other GUI operations. 
     Alternatively, or conjunctively, some embodiments allow the user to first select the particular clip from the media storage before selecting the preview selection GUI item to add the particular clip to the composite display area. For example, in some embodiments, the user selects a particular clip and then selects the preview selection GUI item (e.g., through a pull-down or pop-up menu, or through a UI preview selection item). 
     Some embodiments also use the preview selection GUI item to change the designation of a clip in the composite display area from a committed clip to a candidate clip. For instance, in some such embodiments, a user can select a committed clip and then change its designation to a candidate clip by selecting the preview selection GUI item (e.g., selecting this item in a pop-up or pull-down menu, or selecting this item as a button in the user interface). In addition to the preview selection item, some embodiments also provide a preview commit option (e.g., a user interface item or menu selection item) that removes a particular media clip from the set of candidate clips in the composite display area and adds the particular media clip to the set of committed clips in the composite display area. 
     Different embodiments of the invention differentiate the graphical display representation of the candidate and committed clips differently. For instance, some embodiments use the same geometric shape for both candidate and committed clips, but use a different size of the shape for the candidate clip (e.g., use parallelograms for the candidate clips that are smaller than the parallelograms used for the committed clips). Other embodiments use different geometric shapes for the committed and candidate clips (e.g., use rectangles for the committed clips, while using ellipses for candidate clips). Yet other embodiments use different colors for the committed and candidate clips. Still other embodiments use any combination of shape, size, color, or other visual attribute to distinguish candidate clips in the composite display area from the committed clips in this area. 
     As mentioned above, the application includes a display area that displays a composite presentation that the application creates by compositing several media clips. In some embodiments, this display area is a preview display area that displays a preview of the composite presentation. In some such embodiments, the candidate clips in the composite display area supersede the committed clips in the composite presentation displayed in the preview display area, even though the candidate clips in the composite display area are not part of the composite clip presentation that is defined in the composite display area. Specifically, when candidate and committed clips overlap in the composite presentation, some embodiments display the candidate clips in the composite presentation shown in the preview display area for the overlapping portions of the composite presentation. When the superseding clip has a smaller size than the superseded clip, some of these embodiments display the superseding clip over a portion of the superseded clip. On the other hand, when the superseding clip is at least as large as the superseded clip, these embodiments displace the entire superseded clip in the display. Some embodiments require a user to direct the application to have the candidate clips supersede the committed clips, while other embodiments allow the user to direct the application not to have the candidate clips supersede the committed clips. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The novel features of the invention are set forth in the appended claims. However, for purpose of explanation, several embodiments of the invention are set forth in the following figures. 
         FIG. 1  illustrates a typical media editing application. 
         FIG. 2  illustrates a Graphical User Interface (“GUI”) of a media editing application of some embodiments. 
         FIG. 3  illustrates a more detailed GUI of a media editing application that includes a preview tool of some embodiments. 
         FIG. 4  illustrates the GUI of some embodiments after a user has invoked the preview tool using a preview selection item. 
         FIG. 5  illustrates the GUI of some embodiments after a user has selected a particular clip from the media library. 
         FIG. 6  illustrates the GUI after a user has dragged the selected clip to a modified timeline in some embodiments. 
         FIG. 7  illustrates the GUI of some embodiments. 
         FIG. 8  illustrates the selection of a track using the GUI of some embodiments. 
         FIG. 9  illustrates the GUI of some embodiments after a user has selected a particular clip from the media library. 
         FIG. 10  illustrates the use of a pull-down menu to insert a particular clip as a candidate clip into a composite display area of some embodiments. 
         FIG. 11  illustrates the GUI of some embodiments after a user has invoked a pop-up up menu. 
         FIG. 12  illustrates the use of a pop-up menu to insert a particular clip as a candidate clip into a composite display area of some embodiments. 
         FIG. 13  illustrates a conceptual process of some embodiments used to add a clip to a media project. 
         FIG. 14  conceptually illustrates the data structures used to implement some of the functions and procedures of some embodiments. 
         FIG. 15  illustrates the selection of a particular clip in an example timeline of some embodiments. 
         FIG. 16  illustrates the indication of some embodiments that a clip has been modified from a committed clip to a candidate clip. 
         FIG. 17  illustrates an exemplary timeline of some embodiments that includes several committed clips and two candidate clips in various tracks. 
         FIG. 18  illustrates the operation of moving a candidate clip within the composite display area using the GUI of some embodiments. 
         FIG. 19  illustrates trimming the end point of a candidate clip in some embodiments. 
         FIG. 20  illustrates an exemplary timeline of some embodiments with the preview tool invoked. 
         FIG. 21  illustrates an insertion operation of some embodiments. 
         FIG. 22  illustrates an insertion operation with locked tracks of some embodiments. 
         FIG. 23  illustrates an insertion operation with locked clips of some embodiments. 
         FIG. 24  illustrates an overwrite operation of some embodiments. 
         FIG. 25  illustrates a fit-to-fill operation of some embodiments. 
         FIG. 26  illustrates a replace operation of some embodiments. 
         FIG. 27  illustrates an exchange operation of some embodiments. 
         FIG. 28  illustrates a superimpose operation of some embodiments. 
         FIG. 29  illustrates the operation of turning off a candidate clip in some embodiments. 
         FIG. 30  illustrates the operation of some embodiments of restoring a candidate clip. 
         FIG. 31  illustrates an operation used to commit candidate clips to the project in some embodiments. 
         FIG. 32  illustrates different exemplary representations of the preview tool and preview clips. 
         FIG. 33  illustrates some embodiments that include a timeline, and a corresponding preview playback frame set and/or segment table used to perform playback preview. 
         FIG. 34  illustrates a conceptual process used by some embodiments to generate a segment table from a set of timeline data. 
         FIG. 35  conceptually illustrates the software architecture of the media editing application of some embodiments. 
         FIG. 36  conceptually illustrates the process of some embodiments used to display preview modifications to a project and commit the preview modifications to the composite media presentation. 
         FIG. 37  conceptually illustrates a process used by some embodiments to define a media-editing application. 
         FIG. 38  illustrates an alternative GUI of the media editing application of some embodiments. 
         FIG. 39  illustrates a computer system with which some embodiments of the invention are implemented. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     In the following detailed description of the invention, numerous details, examples, and embodiments of the invention are set forth and described. However, it will be clear and apparent to one skilled in the art that the invention is not limited to the embodiments set forth and that the invention may be practiced without some of the specific details and examples discussed. 
     Some embodiments of the invention provide a media editing application, that provides a preview feature that: (1) allows a user to add media clips to a composite project as candidate clips without altering the composite project, (2) provides a visual indication that differentiates candidate clips from committed media clips, and (3) allows a user to watch and/or listen to the composite project, with the candidate clips included, in a preview display area. 
     In some embodiments, media clips are any kind of clip that can be used to create a composite presentation. The term clips may also be used to refer to images (i.e., single-frame clips). Examples of such clips include audio clips, video clips, text overlays, pictures, and/or other media. Committed clips are media clips that are part of the composite presentation because they are already part of the composite presentation, while candidate clips are media clips that are candidates for adding to the composite presentation as they have not yet been added to the composite presentation. Candidate clips may alternatively be referred to as “preview clips”. 
     For some embodiments of the invention,  FIG. 2  illustrates a graphical user interface (“GUI”)  200  of a media editing application with such a preview feature. Specifically, this figure illustrates the GUI  200  at two different stages, a first stage  210  that is before the addition of a candidate clip to the composite presentation and a second stage  220  that is after the addition of the candidate clip to the composite presentation. As shown in this figure, the GUI  200  includes a preview display area  225 , a media library  230 , a composite display area  235 , and a preview selection item  240 . The preview display area  225  displays a preview of a composite presentation that the application creates by compositing several media clips. 
     The media library  230  is an area in the GUI  200  through which the application&#39;s user can select media clips to add to a presentation that the user is compositing with the application. In the example of  FIG. 2 , the clips in the media library are represented as thumbnails that can be selected and added to the composite display area  235  (e.g., through a drag-and-drop operation or a menu selection operation). In some embodiments, the media library may include audio clips, video clips, text overlays, pictures, and/or other media. 
     The composite display area  235  provides a visual representation of the composite presentation being created by the user. Specifically, it displays one or more geometric shapes that represent one or more committed and/or candidate media clips that are part of the composite presentation. In the example illustrated in  FIG. 2 , the composite display area  235  is an area that includes multiple tracks that span a timeline. One or more media clips can be placed on each track. In some embodiments, no two committed clips can overlap on the same track, but, as described above and below, a preview clip can overlap one or more committed clips on a particular track. 
     The preview selection item  240  is one UI item that allows the media editing application to implement its preview feature for adding candidate clips to the composite display area. In some embodiments, a user of the application can use the preview selection item to add a particular media clip that is in the media library  230  as a candidate clip to the composite display area  235 , as further described below. Also, as further described below, some embodiments use the preview selection item to change the designation of a clip in the composite display area from a committed clip to a candidate clip. 
     The operation of the GUI  200  will now be described by reference to the state of this GUI during the first and second stages  210  and  220  that are illustrated in  FIG. 2 . In the first stage  210 , the composite display area  235  displays a composite presentation that displays three committed clips along a timeline. These three clips are the audio clip  245 , the video clip  250 , and the video clip  255 . A user might have added these three clips to the composite presentation by selecting them from the media library  230 , or the user might have opened a previously defined composite project that included these three clips. 
     In the second stage  220 , the composite display area  235  displays the composite presentation with the three committed clips  245 ,  250  and  255 , but also with a candidate video clip  260 . The candidate video clip  260  has been added to the composite display area without affecting the composite presentation that is displayed in that area. In other words, the clips  245 ,  250  and  255  were not eliminated nor were their positions in the timeline and tracks altered to add the candidate clip  260 . As further described below, some embodiments of the invention offer a preview clip insert operation that can alter the composite presentation in the display area by pushing the committed clips along the timeline. 
     In the second stage  220 , the candidate video clip  260  has been added by using a rectangular shape that has a smaller size (i.e., has half the height) and has a different color than the rectangles used to represent the audio and video clips  245 ,  250  and  255 . These different sizes and shapes have been used to differentiate in the composite display area  235  between the graphical display representations of the committed media clips from the graphical display representation of the candidate media clip. One reason to graphically differentiate between candidate and committed clips is that, unlike committed clips, candidate clips are not part of the composite presentation. The different appearance of the candidate and committed clips in the composite display area  235  allows the user to view and manipulate the candidate clip  260  while still easily recognizing the committed clips that are part of the composite project. 
     Different embodiments of the invention graphically differentiate between candidate and committed clips differently. For instance, like the embodiments illustrated in  FIG. 2 , some embodiment use different sizes and colors to differentiated candidate clips from committed clips. Other embodiments use different geometric shapes for the committed and candidate clips (e.g., use rectangles for the committed clips, while using diamonds for candidate clips). Yet other embodiments simply use different colors for the committed and candidate clips. Still other embodiments use any combination of shape, size, color, or other visual attribute to distinguish candidate clips in the composite display area from the committed clips in this area. 
     Even though the candidate clips are not part of the composite presentation and are distinguished from the committed clips in the composite display area, some embodiments allow the candidate clips (like clip  260 ) in the composite display area  235  to supersede the committed clips  245 ,  250  and  255  in the composite presentation displayed in the preview display area  225 . For instance, candidate clip  260  overlaps committed clip  255  perfectly in the composite presentation. Accordingly, some embodiments display the candidate clip  260  in the preview of the composite presentation that is shown in the preview display area  225  for the entire duration of the clip  255 . When the superseding clip has a smaller size than the superseded clip, some of these embodiments display the superseding clip over a portion of the superseded clip. On the other hand, when the superseding clip is at least as large as the supersede clip, these embodiments, displace the entire superseded clip in the display. Some embodiments require a user to direct the application to have the candidate clips  260  supersede the committed clips, while other embodiments allow the user to direct the application not to have the candidate clips supersede the committed clips. 
     Having the candidate clip  260  appear in the composite presentation in the preview display area  225  without modifying the underlying composite presentation allows a user to evaluate and/or modify the candidate clip  260  without making changes to the composite project. This is helpful in saving time in making modifications to the underlying composite project that later prove to be undesirable. Moreover, such modifications in some instances might prove difficult in reversing accurately when they prove to be unwanted later. 
     The composite display area  235  of the GUI  200  can receive candidate clips in several different ways. As mentioned above, the preview selection item  240  can be used in some embodiments to add a particular media clip to the composite display area as a preview clip. For instance, in some embodiments, the user can first select the preview selection item. The particular media clip may then be added to the composite display area through a click-and-drag operation (i.e., by using a cursor-control device, such as a mouse or trackpad, to select this clip&#39;s thumbnail representation from the media library and dragging-and-dropping this thumbnail to the composite display area  235 ). A particular media clip may also be added to the composite display area by selecting an option from a pull-down menu (not shown) after the selection of the clip&#39;s thumbnail in the media library. 
     Alternatively, or conjunctively, some embodiments allow the user to first select the particular clip from the media library  230  before selecting the preview selection item  240  to add the particular clip to the composite display area. For example, in some embodiments, the user selects a particular clip and then selects the preview selection item. Also, in lieu of or in conjunction with the preview selection item  240 , the GUI  200  includes in some embodiments other GUI items that can be used as a substitute for the preview selection item  240 . Examples of such GUI items include menu items that are displayed in pull-down menus that are accessed by selecting and opening menus in the GUI, or that are displayed in pop-up menus that are opened through cursor control operations (e.g., right-cursor click operation or control-cursor-click operations). 
     Some embodiments also use the preview selection item  240  or similar GUI item to change the designation of a clip in the composite display area from a committed clip to a candidate clip. For instance, in some such embodiments, a user can select a committed clip and then change its designation to a candidate clip by selecting the preview selection item  240  or selecting a similar UI item in a pop-up or pull-down menu. 
     Several more detailed embodiments of the invention are described in the sections below. Section I provides a conceptual description of the various ways to invoke the preview tool and use the tool to add content. In addition, Section I describes various conceptual data structures that may be used to implement the preview tool. Next, Section II describes some of the edit functions used to manipulate both committed and preview clips once they have been added to a media project. Section III describes the process of playing back a media project that includes committed and preview clips. Section IV follows that discussion with a description of the software modules used to implement the media editing application. Next, Section V describes the process used to define the media editing application of some embodiments. Lastly, Section VI describes a computer system which implements some of the embodiments of the invention. 
     I. Adding Content Using the Preview Tool 
     As mentioned above, some embodiments provide several different techniques for adding candidate clips to a composite display area of a media editing application without affecting the composite presentation that is graphically represented in the composite display area (i.e., without displacing or replacing any of the committed clips in the composite project that is represented in the composite display area). Sub-section I.A will describe several more detailed examples of such techniques by reference to  FIGS. 3-12 . Sub-section I.B will then describe a conceptual process used by some embodiments when a request is made to add a clip to the composite display area as a candidate or a committed clip. 
     A. Examples of Ways to Add Candidate Clips 
       FIGS. 3-6  illustrate one example of adding a candidate clip through the use of a preview selection item  310  of a GUI  300  of a media editing application. Like the GUI  200  of  FIG. 2 , the GUI  300  of  FIGS. 3-6  includes (1) a preview selection item  310 , (2) a media library  320 , (3) a preview display area  330 , and (4) a composite display area  340  with several tracks (e.g., video track  350  and audio track  360 ) that span a timeline  370 . 
       FIGS. 3-6  also illustrate the GUI  300  to include a menu bar  380  that provides several grouped sets of menu commands and options for the media editing application. In addition, these figures illustrate a cursor  385  for providing feedback to a user and operating various selection items or other controls included in the GUI  300 . The cursor  385  also allows a user to select or manipulate various representations of content that are included in the GUI  300 . 
     These figures also illustrate the composite display area  340  to include a playhead  390  for highlighting the instance in time in the composite presentation that is being represented in the composite display area. Highlighting this instance in time is useful for a variety of reasons. For instance, when viewing a preview of the composite presentation in the preview display area  330 , the playhead  390  scrolls across the timeline  370  to identify the location in the composite presentation in the composite display area  340  that is being currently displayed in the preview display area  330 . Furthermore, as further described below, the playhead  390  location also acts as an insertion point when adding clips or effects to the project. 
     In addition, these figures illustrate the GUI  300  to include a preview tool  410  that allows a user to select from among several edit styles, commit the edits to the composite project, and also to de-invoke to preview tool. The preview tool may alternatively be referred to as an “edit visualizer”. The various edit and control functions of the preview tool will be described in more detail in section II below. One of ordinary skill in the art will recognize that the preview tool  410  may be implemented using a different graphical interface, may provide more or fewer controls, etc. 
     To illustrate the example of adding a candidate clip to the composite display area through the use of the preview selection item  310 ,  FIGS. 3-6  illustrate four different stages of a user&#39;s interaction with the GUI  300 .  FIG. 3  illustrates a first stage that is before the addition of any candidate clips to the composite display area  340 . In the first stage, the composite display area  340  displays a number of committed clips  395  along the timeline  370 . The committed clips  395  include several audio clips and several video clips. A user might have added these clips  395  from the media library  320 , or the user might have opened a previously defined composite project that included the clips  395 . 
       FIG. 4  illustrates a second stage of user interaction that is after a user has moved the cursor  385  to a location over the preview selection item  310  and selected this item (e.g., by left-cursor click operation). As shown, this selection has caused the preview tool  410  to be displayed. In some embodiments, once the preview tool has been invoked, it will be displayed until it is either deactivated or any preview edits are committed to the composite presentation. As shown, the preview tool  410  displays a particular edit style (e.g., “overwrite”) when invoked. As further described below, in reference to  FIGS. 20-31 , the edit styles that may be accessed using the preview tool  410  in some embodiments include “overwrite,” “insert,” “replace,” “exchange,” “superimpose,” etc. Different embodiments may include different edit styles. In the example of  FIG. 4 , one style (“Overwrite”) is presented in the preview tool  410  as a default selection, while other available edit styles may be selected using the various controls of the preview tool  410 . 
       FIG. 5  illustrates a third stage of user interaction that is after a user has selected a particular clip  510  from the media library  320 . The selection of clip  510  has been indicated by displaying a thicker border around the clip and highlighting the background of the selected clip. In some embodiments, the user selects a particular clip using a left-cursor click operation after positioning the cursor  385  over the desired clip. One of ordinary skill in the art will recognize that other cursor-control operations may be used to select a particular clip from the media library  320 . For instance, a user may perform a combination of keystrokes, use a hotkey to select a particular clip, etc. 
       FIG. 6  illustrates a fourth stage of user interaction that is after a user has dragged the selected clip  510  from the media library  320  to the composite display area  340  and released the selected clip  510 . This dragging-and-dropping results in the addition of the candidate clip  610  to the composite display area  340  without affecting the composite presentation that is displayed in that area (i.e., no committed clips  395  were eliminated, nor were their positions in the composite display area  340  altered to add the candidate clip  610 ). However, the candidate clip  610  has been added by using a differently sized and colored rectangle than the rectangles used to represent the committed clips  395 . As mentioned above in reference to  FIG. 2 , different embodiments may differentiate between candidate and committed clips in different ways. 
     Some embodiments will automatically “snap” the added clip to a particular position on the timeline. In the example of  FIG. 6 , the preview clip  610  is shown as exactly filling the area between two existing clips. One of ordinary skill will recognize that in other cases, the clip may be longer or shorter than an available space and thus may overlap with clips that are already in the composite display area  340 , or leave a gap to an existing clip or clips. 
       FIGS. 7-10  illustrate another example of adding a candidate clip. In this example, a particular media clip is added to a particular video track at a particular location of the playhead through the invocation of a command from the menu bar  380  of the GUI  300  of the media editing application. The GUI  300  is the same GUI  300  described above in reference to  FIGS. 3-6 . Also, to illustrate the example of adding a candidate clip to the composite display area through the use of menu bar  380 ,  FIGS. 7-10  explain four different stages of a user&#39;s interaction with the GUI  300 . 
       FIG. 7  illustrates a first stage that is before any candidate clip has been added to the composite display area  340 . In this stage, the composite display area  340  displays a number of committed clips  395  along the timeline  370 . The committed clips  395  include several audio clips and several video clips. A user might have added these clips  395  from the media library  320 , or the user might have opened a previously defined composite project that included the clips  395 . 
     As shown in  FIG. 7 , a user may position the playhead  390  at a particular location  710  along the timeline  370 , before adding the candidate clip to the composite display area. A user may wish to select the particular location  710  for the playhead  390  because a particular candidate clip may be placed at the playhead&#39;s current location when the candidate clip is added to the composite display area. The user may position the playhead using a drag-and-release operation as shown, or by some other method (e.g., a combination of keystrokes, a direct selection caused by a left-cursor click operation, etc.). 
       FIG. 8  illustrates a second stage of user interaction after the user has moved the playhead  390  to the new location  710 . In this stage, the user selects the fourth video track  350  as the track in the composite display area for later receiving the candidate clip  510 . The user makes this selection by moving the cursor  385  to a location  810  over the track  350  and performing a click operation. As shown, this selection operation has caused a change in the graphical representation of the selected track  350  relative to the other tracks. The selected track may be indicated in various ways, such as a bold outline, a change in background, a change in color, etc. In some embodiments, the track  350  may also be selected through any number of other techniques, such as a combination of keystrokes, a pull-down or pop-up menu selection, etc. 
       FIG. 9  illustrates a third stage of user interaction after the user has selected the fourth video track  350 . In this stage, the user selects, from the media library  320 , a video clip  510  to be added to the selected video track  350  at the particular location  710  of the playhead  390 . In this example, the user made this selection by positioning the cursor  385  over a particular clip  510  in the media library  320  and performing a click operation. However, in some embodiments, the user might also make this selection through other GUI operations (e.g., a combination of keystrokes, a pull-down or pop-up menu selection, or other appropriate method). 
     As shown in  FIG. 9 , the selection of the video clip  510  causes a change in the graphical representation of the selected clip  510  relative to the other clips. The selected clip may be indicated in various ways, similar to the indication of a selected track described above in reference to  FIG. 8 . 
       FIG. 10  illustrates a fourth stage that is after the user has selected the media clip  510  from the media library  320 . In this stage, the user selects a GUI command to add the selected clip  510  as a preview clip to the selected track  350  at the playhead location  710 . The selection in this example is made by first selecting the “insert” option  1010  in the “edit” set of menu commands  1020  of the menu bar  380  and then selecting the “preview clip” command  1030  using the cursor  385 . Some embodiments allow the user to select the “insert as preview clip” command through other mechanisms (e.g., by selecting the command in a pop-up menu). 
     As shown in  FIG. 10 , this selection operation has caused a representation  1040  of clip  510  to be placed in the composite display area  340  at the playhead  390  location  710  in the selected track  350  and also invoked the preview tool  410 . 
     Although the inserted clip  1030  overlaps an existing clip  1050  in the composite display area  340 , the existing clip representation  1050  is not displaced by the preview clip  1040 . Normally, when inserting a committed clip into the timeline, any overlapping area of another committed clip in the same track is overwritten (both in the displayed representation and in the underlying project data). The representation of the preview clip  1040 , in contrast, allows a user to manipulate the preview clip without affecting the descriptive nature of the display of the representation of the existing committed clip  1050 . 
       FIGS. 11-12  illustrate an additional example of adding a candidate clip to a composite project. In this example, a particular media clip is added to a particular video track at a particular location of the playhead through the invocation of a command from a pop-up menu of the GUI  300 . The GUI  300  is the same GUI  300  described above in reference to  FIGS. 3-10 . To illustrate the example of adding a candidate clip to the composite display area through the use of pop-up menu  1110 ,  FIGS. 11-12  describe two different stages of a user&#39;s interaction with the GUI  300 . These two stages follow the first and second stages described above in reference to  FIGS. 7-8 . 
       FIG. 11  illustrates a third stage of user interaction after the user has selected the fourth video track  350 . In this stage, the user selects, from the media library  320 , a video clip  510  to be added to the selected video track  350  at the particular location  710  of the playhead  390  and also selects a GUI command to add the selected clip  510  as a preview clip. The selection of a video clip in this example is made by positioning the cursor  385  over a particular clip  510  in the media library  320  and performing a right-cursor click operation to both select the particular clip  510  and invoke a pop-up menu  1110 . The selection of the particular clip may be made in various ways, including using a left-cursor click operation as described above in reference to  FIG. 9 . 
     In the third stage, after selecting the clip  510  and invoking the pop-up menu  1110 , the user selects a GUI command to insert the selected clip  510  as a preview clip. The selection in this example is made by first selecting the “insert” command  1120  in the pop-up menu  1110  and then selecting the “preview clip” command  1130  using the cursor  385 . Different embodiments may have different menu commands or different access paths for those commands. In addition, some embodiments allow the user to select the “insert as preview clip” command through other mechanisms (e.g., by selecting the command in a pull-down menu as described above in reference to  FIG. 10 ). 
       FIG. 12  illustrates a fourth stage that is after the user has selected a GUI command  1130  to insert the selected clip  510  as a preview clip. In this stage, a representation of a candidate clip  1210  has been added to the composite display area  340 . As shown, the representation  1210  of clip  510  has been placed in the composite display area  340  at the playhead  390  location  710  in the selected track  350  and the preview tool  410  has also been invoked (and displayed in the GUI  300 ). 
     In addition to the ways described above in reference to  FIGS. 3-12 , other embodiments may insert candidate clips (or committed clips) using a variety of methods. For instance, a combination of keystrokes, use of “hotkeys”, or another appropriate method may be used to select and insert a clip into a particular location of the timeline. 
     B. Process Used to Add Clips 
       FIG. 13  illustrates an example of a conceptual process  1300  that some embodiments perform when a request is made to add media content to the composite display area. The process  1300  starts when the media editing application receives a request to add a clip to the media project. The request to add a clip may be received in various ways. For example, the drag-and-drop, pull-down menu, or pop-up menu operations described above in reference to  FIGS. 3-12  may be used to request that a clip be added to the composite display area. 
     As described above, the process of selecting and adding a clip may be performed using a variety of operations. Thus, one of ordinary skill will recognize that in some embodiments, the process may determine whether the clip to be added is a preview clip before the clip has been selected. Or, the operations of receiving a selection and determining whether the clip is to be added as a candidate clip may be performed at the same time based on a single user action. 
     In addition, process  1300  is a conceptual representation of the operations used when a clip is added to a media project. The specific operations of the process may not be performed in the exact order described or different specific operations may be performed in different embodiments. Also, the process may not be performed as one continuous series of operations. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro-process. 
     After receiving a request to add a clip, the process determines (at  1310 ) whether the clip is a candidate clip. When determining (at  1310 ) that the clip to be added is a candidate clip, process  1300  adds (at  1320 ) data to the candidate clip definition (e.g., data structure(s) that define data for any candidate clip(s) that will not be included in the composite presentation). 
     As mentioned above, in some embodiments, the candidate clip definition is not part of the composite project data. To illustrate this point,  FIG. 14  provides a conceptual illustration of a project file. Specifically, this figure illustrates a project file  1400  that includes composite project data  1410  (alternatively referred to as a “composite project definition”) used to generate a composite presentation and preview data  1420  (alternatively referred to as a “candidate clip definition”) used to generate a preview presentation. The composite project data  1410  may include attributes such as the project name  1425 , author  1430 , etc. In addition, the composite project data  1410  may include video track data elements  1440  and audio track data elements  1445  for storing information corresponding to various clips that have been placed in the different tracks. These audio and video track data elements  1440 - 1445  are shown in more detail in breakout section  1450 . The composite project data  1410  may also include multiple clip data elements  1460  that are shown in more detail in breakout section  1470 . 
     As shown in  FIG. 14 , the preview data  1420  is separate from the composite project data  1410 . The preview data  1420  may include a preview playlist data element  1485  and preview clip data elements  1490  in some embodiments. The preview clip data elements use the same structure as the clip data elements  1470  in some embodiments, with the clip type specifying that the clip data element corresponds to a preview clip. 
     After the data corresponding to the preview clip has been added (at  1320 ) to the candidate clip definition, the process displays (at  1330 ) an updated GUI. The updated GUI may show a new representation of a candidate clip in the composite display area. In addition to (or in place of) being performed following the addition of clip data to the composite project definition, display operation  1330  may be performed in response to certain user actions or commands, at regular time intervals, etc. In addition, the updated GUI may be at least partially generated based on the updated composite project definition. 
     This display of an updated GUI was described above in reference to  FIGS. 6 ,  10 , and  12 , where the newly added candidate clip did not completely overwrite or displace any existing display representation of any overlapping section(s) of committed clip(s). Thus, when adding a candidate clip, both the display and the underlying data in the candidate clip definition may be updated based on the addition of a candidate clip. After the process updates (at  1320 ) the candidate clip definition and displays (at  1330 ) the updated graphical user interface, the process ends. 
     When determining (at  1310 ) that the clip is not a candidate clip, the process next determines (at  1340 ) whether any section of the added clip overlaps any section(s) of any existing clip(s) in the composite display area. The process may determine whether any section of the added clip overlaps any section of an existing clip by evaluating the track data elements  1440 - 1445  from the composite project data  1410  of the project file  1400 . Thus, process  1300  may determine (at  1340 ) whether any clip sections overlap by evaluating each track data element  1450  to identify and retrieve each of the clip data elements  1470  corresponding to each clip reference  1475  in a particular track data element  1450 . This determination may involve evaluating neighboring clips in the same track data element  1450  to, for instance, determine if one clip&#39;s timeline out occurs after another clip&#39;s timeline in. In addition to determining (at  1340 ) whether any clip sections overlap, the process may determine (not shown) which sections of the clips overlap. 
     When the process determines (at  1340 ) that the added clip does overlap section(s) of existing clip(s), the process deletes (at  1370 ) the overlapping section(s) of the existing clip(s) from the composite project definition (e.g., data structure(s) that define the composite presentation). The process may “delete” (at  1370 ) the overlapping section(s) by, for instance, modifying the particular clip data element&#39;s  1470  timeline in or timeline out entry, thus removing any overlapping section of the clip. 
     After deleting (at  1370 ) any overlapping section of an existing clip from the composite project definition, or determining (at  1340 ) that no sections overlap, the process adds (at  1360 ) data to the composite project definition corresponding to the clip to be added. The data structure for the clip in the composite project definition may take different forms, one of which is the clip data element  1470  shown in  FIG. 14 . 
     After the data has been added (at  1360 ) to the composite project definition, the process displays (at  1370 ) an updated GUI. The updated GUI may show a new representation of a committed clip in the composite display area. Similar to the display operation  1370  described above, the display operation  1370  may be performed in response to certain user actions or commands, at regular time intervals, etc. In addition, the updated GUI may be at least partially generated based on the updated composite project definition. 
     The result of this display update operation was illustrated above in  FIG. 1 , where the existing clip representation was completely replaced by a representation for a newly added committed clip that completely overlapped the existing clip. Thus, when adding a committed clip, both the display and the underlying data in the composite project definition may be updated based on the addition of a committed clip. After the process updates (at  1360 ) the composite project definition and displays (at  1370 ) the updated graphical user interface, the process ends. 
     One of ordinary skill in the art will recognize that the actual implementation may differ from the conceptual representation show in  FIG. 14 . For instance, the actual project file may also include a committed playlist data element similar to the preview playlist data element  1485 , the project file may include other file attributes, or data structures that are arranged differently or include different specific elements than are shown in  FIG. 14 . As another example, the preview data  1420  may include a set of video and audio track data elements that allow a user to move committed and/or candidate clips along the timeline or among the tracks without affecting the track data elements  1440 - 1445  that are part of the composite project data  1410 . 
     In addition, although the preview data  1420  is represented as being part of the project file  1400 , in some embodiments the preview data  1420  is not saved unless a user commits the preview edit(s) to the composite project. In other embodiments, the preview data  1420  may be saved as preview data (i.e., saved without affecting the composite project data  1410 ). Alternatively, some embodiments may allow the user to save preview data  1420  in a separate file location from the composite project data  1410 . 
     Furthermore, although the process of adding a clip has been described with references to certain features and actions, one of ordinary skill in the art will recognize that the process may be implemented using other specific embodiments without departing from the spirit of the invention. For instance, the process could initially add all clips as preview clips before receiving another indication causing the preview clip to be converted to a committed clip. In addition, some potential operations have been omitted for clarity. For instance, after inserting one or more clips, a user may choose to save the composite project data before continuing. In the next section, various editing functions that may be used on the added candidate or committed clips are described. Furthermore, some embodiments of the process may determine if the added candidate clip overlaps an existing candidate clip in the same track and delete the overlapping section of the existing candidate clip from the candidate clip definition. Other embodiments, however, may allow candidate clips to overlap in the same track. 
     II. Edit Functions 
     Several edit operations that may be performed on the committed and/or candidate clips shown in the composite display area are described below. Sub-section II.A describes various “live-edit” functions that are commonly performed on committed clips and may also be applied to candidate clips in conjunction with the preview tool of some embodiments. In addition, sub-section II.A describes the operations of selecting a committed clip and converting that clip to a candidate clip. Sub-section II.B describes several different “edit styles” that may be selected using the preview tool of some embodiments. These edit styles include a pre-defined set of editing functions that may be applied to candidate clips. Sub-section II.C will describe a conceptual process used by some embodiments when an edit is made to a clip in the composite display area. 
     A. Live-Edit Functions 
       FIGS. 15-16  illustrate an example of converting a committed clip to a candidate clip. In this example, a particular clip is converted from a committed clip to a candidate clip through the invocation of the preview tool selection item  310  of the GUI  300 . The GUI  300  is the same GUI described above in reference to  FIGS. 3-12 . To illustrate the example of converting a committed clip to a candidate clip using a pop-up menu,  FIGS. 15-16  describe two different stages of a user&#39;s interaction with the GUI  300 . 
       FIG. 15  illustrates a first stage that is before any committed clip has been converted to a candidate clip. In this stage, the user selects a particular committed clip  1510  in the composite display area  340  as the clip to be converted to a candidate clip. The user makes this selection by positioning the cursor  385  over the representation of the clip  1510  in the composite display area  340  and performing a click operation. As shown, this selection operation has caused a change in the graphical representation of the selected clip  1510  relative to the other clips. The selected clip may be indicated in various ways, such as a bold outline, a change in background, a change in color, etc. In some embodiments, the clip  1510  may also be selected through any number of other techniques, such as a combination of keystrokes, a pull-down or pop-up menu selection, etc. 
       FIG. 16  illustrates a second stage of user interaction after the user has selected a particular committed clip  1510  to be converted to a candidate clip. In this stage, the user invokes the preview tool selection item  310  in order to initiate the conversion. In this example, the user invokes the preview tool selection item  310  by moving the cursor  385  to a location over the preview tool selection item  310  and performed a selection operation. As shown, this selection operation has caused a representation of a preview clip  1610  to be added to the composite display area  340  at the same location as the previously-selected committed clip  1510 . 
     In some embodiments, the previously-existing committed clip  1510  may be deleted from the composite display area  340  when the preview clip  1610  is added to the composite display area  340 . The determination of whether to delete the selected committed clip  1510  may be made by default, through a user-selected option, or in some other appropriate manner. One reason to add a preview clip in addition to the committed clip  1510 , is that the user is able to manipulate the preview clip  1610  without affecting the committed clip  1510  or underlying composite project definition. In this way, a user may evaluate potential changes to a committed clip without affecting the committed clip and thus modifying the composite project definition. 
       FIG. 17  illustrates the operation of moving a candidate clip within a composite display area  340  using a GUI  1700  of some embodiments. Specifically, the figure illustrates a user selecting a particular candidate clip  1710  and moving the particular candidate clip from a first location  1720  in a first track to a second location  1730  in a second track in the composite display area  340 . The composite display area  340  is the same composite display area  340  discussed above in reference to  FIGS. 3-12  and  15 - 16 . The GUI  1700  is a sub-section of the GUI  300  that was described above in reference to  FIGS. 3-12  and  15 - 16 . 
     As shown in  FIG. 17 , the particular candidate clip  1710  may be moved from the first location  1720  to the second location  1730  in the composite display area  340  using a drag-and-drop operation. In this example, the user performs the drag-and-drop operation by moving the cursor  385  to a location over the candidate clip  1710  when the candidate clip is displayed at the first location  1720  and performing a selection operation (e.g., by a left-cursor click-and-hold operation). The user then moves the candidate clip  1710  to the second location  1730  using the cursor  385 . After the candidate clip  1710  has been moved to the second location  1730 , the user may release the selection (e.g., by a left-cursor release operation). As shown, this drag-and-drop operation has caused the representation of the candidate clip  1710  to be moved from the first location  1720  to the second location  1730  in the composite display area  340 . 
     The movement of a candidate clip does not affect the committed track data that the candidate clip may overlap in previous, current, or potential locations that the candidate clip may occupy in the composite display area. One of ordinary skill will recognize that the committed clips may be moved in the same manner as the preview clips. However, moving committed clips will overwrite any overlapping section of any other committed clip. 
       FIG. 18  illustrates the operation of moving a candidate clip within the composite display area  340  using the GUI  1700  of some embodiments. Specifically, the figure illustrates a user selecting a particular candidate clip  1710  and moving the particular candidate clip from a first location  1730  to a second location  1810  in a particular track in the composite display area  340 . The composite display area  340  is the same composite display area  340  discussed above in reference to  FIGS. 3-12  and  15 - 17 . The GUI  1700  is the same sub-section of the GUI  300  that was described above in reference to  FIG. 17 . 
     As shown in  FIG. 18 , the particular candidate clip  1710  may be moved from the first location  1730  to the second location  1810  in the composite display area  340  using a drag-and-drop operation. In this example, the user performs the drag-and-drop operation by moving the cursor  385  to a location over the candidate clip  1710  when the candidate clip is displayed at the first location  1730  and performing a selection operation (e.g., by a left-cursor click-and-hold operation). The user then moves the candidate clip  1710  to the second location  1810  using the cursor  385 . After the candidate clip  1710  has been moved to the second location  1810 , the user may release the selection (e.g., by a left-cursor release operation). As shown, this drag-and-drop operation has caused the representation of the candidate clip  1710  to be moved from the first location  1730  to the second location  1810  in the composite display area  340 . 
     As above, the movement of a candidate clip does not affect the committed track data that the candidate clip may overlap in previous, current, or potential locations that the candidate clip may occupy in the composite display area. One of ordinary skill will recognize that the committed clips may be moved in the same manner as the preview clips. However, moving committed clips will overwrite any overlapping section of any other committed clip. 
       FIG. 19  illustrates the editing operation of some embodiments of trimming (i.e., moving the end point of a clip relative to its begin point, or vice-versa) a preview clip. Specifically, this figure illustrates a user selecting the end point of a particular candidate clip  1710  and moving the end point from a first location  1910  to a second location  1920  in the composite display area  340 . The composite display area  340  is the same composite display area  340  discussed above in reference to  FIGS. 3-12  and  15 - 18 . The GUI  1700  is the same sub-section of the GUI  300  that was described above in reference to  FIGS. 17-18 . 
     As shown in  FIG. 19 , the end point of the particular candidate clip  1710  may be moved from the first location  1910  to the second location  1920  using a click-and-drag operation. In this example, the user performs the click-and-drag operation by moving the cursor  385  to the first location  1910  over the end point of the candidate clip  1710  and performing a selection operation (e.g., by a left-cursor click-and-hold operation). The user then moves the end point to the second location  1920  using the cursor  385 . After the end point has been moved to the second location  1920 , the user may release the selection (e.g., by a left-cursor release operation). As shown, this click-and-drag operation has caused the end point of the candidate clip  1710  to be moved from the first location  1910  to the second location  1920  in the composite display area  340 . 
     This trimming operation may also be performed using other methods such as a combination of keystrokes, directly specifying a new end point by a left-cursor click operation, or other appropriate method. Furthermore, one of ordinary skill will recognize that, in addition to reducing the length of the clip (i.e., moving the end point to the left), the endpoint may be moved so as to increase the length of the clip (i.e., moving the end point to the right). The user may also trim the start point of the clip in addition to or instead of the end point. In addition, one of ordinary skill will recognize that the same trim operation may be performed on a committed clip, with the exception that any overlapping sections of committed clips will be overwritten. 
     One of ordinary skill will also recognize that other editing functions may be applied to a candidate clip in a similar manner. For instance, speed effects, fade in/fade out effects, volume control, or other such options may be changed by selecting and modifying certain locations within the representation of the candidate clip. In addition, these editing functions may be applied using a combination of keystrokes, selecting an option from a pull-down or pop-up menu, etc. 
     B. Edit Styles 
     After a candidate clip has been added to the composite display area as described above, several edit styles may be applied to the candidate clip using the preview tool. These edit styles will be described below. The edit styles provided by the preview tool allow a user to preview various typical media editing functions such as insert, overwrite, etc. Most of these edit styles allow the user to view the preview clip in the preview display area without affecting the composite presentation that is displayed in that area (i.e., without eliminating committed clips or moving committed clips along the timeline in the composite display area). However, in some embodiments, one of these edit styles can have the addition of a preview clip push one or more committed clips along the timeline. 
       FIGS. 20-31  illustrate various edit styles that may be applied to a candidate clip (or clips) using the preview tool  410  of some embodiments.  FIGS. 20-31  illustrate the same composite display area  340  as described above in reference to  FIGS. 3-12  and  15 - 19  and the same GUI sub-section  1700  described above in reference to  FIGS. 17-19 .  FIGS. 20-31  further illustrate the controls  2010 - 2040  provided by the preview tool  410 . 
     As shown in  FIG. 20 , the preview tool includes an edit style application item  2010  for applying the selected edit style to the selected candidate clip  1710 , a selection control  2020  for cycling through a set of edit style options, a preview end item  2030  to terminate the preview tool and remove any candidate clips from the composite display area, and an edit commit item  2040  to reassign any selected candidate clip from the candidate clip definition to the composite presentation definition. Although the example of  FIGS. 20-31  will be described with reference to cursor-control operations, one of ordinary skill will recognize that any of the operations described with respect to cursor-control operations may also be performed using a combination of keystrokes, selecting a pull-down or pop-up menu command, or some other appropriate method of invoking an edit command. 
       FIG. 20  illustrates the partial GUI  1700  including the preview tool  410  of some embodiments. In this example, the edit style shown in the edit style application item  2010  is changed from a first edit style to a second edit style using the selection control  2020  of the preview tool  410 . To illustrate the example of changing from the first edit style to the second edit style using the selection control  2020 ,  FIG. 20  describes two different stages of a user&#39;s interaction with the partial GUI  1700 . 
       FIG. 20  illustrates a first stage  1700  of user interaction that is after the preview tool  410  has been invoked in its default state. In this stage, the user operates the selection control  2020  to change the selected edit style that is shown in the edit style application item  2010 . The user performs this operation by positioning the cursor  385  over the selection control  2020  and performing a selection operation. 
       FIG. 20  further illustrates a second stage  2000  of user interaction after the user has operated the selection control  2020 . As shown, the operation of the selection control has caused the option displayed in the edit style application item  2010  to change from “Option  1 ” to “Option  2 ”. 
       FIG. 21  illustrates applying an insert edit style to one or more candidate clips using the preview tool  410  of some embodiments. In this example, the insert edit style is applied to two candidate clips by selecting the candidate clips and using the preview tool  410  to select and apply the edit style. To illustrate this example,  FIG. 21  explains two different stages of a user&#39;s interaction with the partial GUI  1700 . 
     This figure illustrates a first stage  1700  of user interaction that is after the preview tool  410  has been invoked, two clips  1710  and  2110  have been selected to which the edit style will be applied, and the user has operated the selection control  2020  to select the desired edit style (i.e., “insert”). The user may have selected the two clips  1710  and  2110  by positioning the cursor  385  over the first clip  1710  and performing a left-cursor click operation and then moving the cursor  385  over the second clip  2110  and performing a control-cursor-click operation. In addition, the user may have operated the selection control of some embodiments by positioning the cursor  385  over the selection control  2020  and performing a left-cursor click operation. 
     In this stage  1700 , the user applies the selected edit style (as shown in the edit style application item  2010 ) to the selected clips  1710  and  2110 . The user performs this operation by positioning the cursor  385  over the edit style application item  2010  and performing a selection operation (e.g., a left-cursor click operation). As shown, this selection operation has caused a change in the graphical representation of the edit style application item  2010 . In this example, the outline of the item has been bolded and the background of the item highlighted. Different embodiments may indicate this selection using different graphical representations. 
       FIG. 21  further illustrates a second stage of user interaction  2100  that is after the user has performed an insert operation. As shown, the insert operation has caused all non-selected clips to be shifted by an equal amount  2120  (corresponding to the length of the inserted clip(s)) from the begin point  2130  of the selected clips  1710  and  2110 . By shifting all of the non-selected clips by the same amount  2120 , the relationships between the non-selected clips are maintained. 
     In some cases, it may be advantageous to select multiple clips before performing any edit styled operations. This is because many audio and video clips are associated to each other. For example, when recording audio and video at the same time, onto the same media, such as when using a video camera with a microphone to record some content, the video data and audio data may be associated in any media project that utilizes the inherently linked content. In some embodiments, when a user selects a particular video clip any associated audio clip is also selected automatically (or vice-versa). 
     Although the second stage  2100  represents the existing track data (including committed clips) as being moved (and thus modified), the composite presentation definition is not affected by the preview tool insertion command in some embodiments. Different embodiments may use different methods to allow a user to make preview modifications without affecting the composite project data. For instance, some embodiments store an “undo” point that refers to the state of the project before any preview edits were made and then jump back to that undo point if no preview modifications are committed to the composite project. As another example, some embodiments store a “snapshot” of the locations of the committed clips in the composite display area, and then restore that snapshot when the user exits the preview tool without committing any preview edits. Other embodiments may define two separate undo threads, where one undo thread applies to the preview edits and another undo thread applies to the non-preview edits. As yet another example, some embodiments store a stack of changes from the time the preview tool was invoked, and then revert to the state of the project before any preview edits were made by undoing all of the changes in the stack. 
       FIG. 22  illustrates applying an insert edit style, using the preview tool  410  of some embodiments, to one or more candidate clips in the composite display area where the composite display area includes one or more locked tracks. In this example, the insert edit style is applied to a candidate clip(s) by selecting the candidate clip(s) and using the preview tool  410  to select and apply the edit style after locking two tracks. To illustrate this example,  FIG. 22  explains two different stages of a user&#39;s interaction with the partial GUI  1700 . 
     This figure illustrates a first stage  1700  of user interaction that is after the preview tool  410  has been invoked, two clips  1710  and  2110  have been selected to which the edit style will be applied, two tracks  2210  and  2220  have been locked (as indicated by the lock icons  2230 ), and the user has operated the selection control  2020  to select the desired edit style (i.e., “insert”). As above, the user may have selected the two clips  1710  and  2110  by positioning the cursor  385  over the first clip  1710  and performing a left-cursor click operation and then moving the cursor  385  over the second clip  2110  and performing a control-cursor-click operation. The user may have locked the tracks  2210  and  2220  by performing a left-cursor operation over an icon in each track to be locked (not shown), or some other appropriate method. In addition, the user may have operated the selection control of some embodiments by positioning the cursor  385  over the selection control  2020  and performing a left-cursor click operation. 
     In this stage  1700 , the user applies the selected edit style (as shown in the edit style application item  2010 ) to the selected clips  1710  and  2110 . The user performs this operation by positioning the cursor  385  over the edit style application item  2010  and performing a selection operation (e.g., a left-cursor click operation). As shown, this selection operation has caused a change in the graphical representation of the edit style application item  2010 . In this example, the outline of the item has been bolded and the background of the item highlighted. Different embodiments may indicate this selection using different graphical representations. 
       FIG. 22  further illustrates a second stage of user interaction  2200  that is after the user has performed an insert operation with locked tracks. As shown, the insert operation has caused all non-selected clips in unlocked tracks to be shifted by an equal amount  2240  (corresponding to the length of the inserted clip(s)) from the begin point  2250  of the selected clips  1710  and  2110 . By shifting all of the non-selected clips in unlocked tracks by the same amount  2240 , the relationships between the non-selected clips in unlocked tracks are maintained. 
     As above, although the second stage  2200  represents the existing track data (including committed clips) as being modified, the composite presentation definition is not affected by the preview tool insertion command in some embodiments. 
       FIG. 23  illustrates applying an insert edit style, using the preview tool  410  of some embodiments, to one or more candidate clips in the composite display area where the composite display area includes one or more locked clips. In this example, the insert edit style is applied to a candidate clip(s) by selecting the candidate clip(s) and using the preview tool  410  to select and apply the edit style after locking several clips  2310 - 2330 . To illustrate this example,  FIG. 23  describes two different stages of a user&#39;s interaction with the partial GUI  1700 . 
     This figure illustrates a first stage  1700  of user interaction that is after the preview tool  410  has been invoked, two clips  1710  and  2110  have been selected to which the edit style will be applied, three clips  2310 - 2330  have been locked (as indicated by the lock icons  2340 ), and the user has operated the selection control  2020  to select the desired edit style (i.e., “insert”). As above, the user may have selected the two candidate clips  1710  and  2110  by positioning the cursor  385  over the first clip  1710  and performing a left-cursor click operation and then moving the cursor  385  over the second clip  2110  and performing a control-cursor-click operation. The user may have locked the clips  2310 - 2330  by performing a left-cursor operation over an icon in each clip to be locked (not shown), or some other appropriate method. In addition, the user may have operated the selection control of some embodiments by positioning the cursor  385  over the selection control  2020  and performing a left-cursor click operation. 
     In this stage  1700 , the user applies the selected edit style (as shown in the edit style application item  2010 ) to the selected clips  1710  and  2110 . The user performs this operation by positioning the cursor  385  over the edit style application item  2010  and performing a selection operation (e.g., a left-cursor click operation). As shown, this selection operation has caused a change in the graphical representation of the edit style application item  2010 . In this example, the outline of the item has been bolded and the background of the item highlighted. Different embodiments may indicate this selection using different graphical representations. 
       FIG. 23  further illustrates a second stage of user interaction  2300  that is after the user has performed an insert operation with locked clips. As shown, the insert operation has caused all non-selected, unlocked clips to be shifted by an equal amount  2350  (corresponding to the length of the inserted clip(s)) from the begin point  2360  of the selected clips  1710  and  2110 . By shifting all of the non-selected, unlocked clips by the same amount  2350 , the relationships between the non-selected, unlocked clips are maintained. 
     As above, although the second stage  2300  represents the existing track data (including committed clips) as being modified, the composite presentation definition is not affected by the preview tool insertion command. 
       FIG. 24  illustrates applying an overwrite edit style, using the preview tool  410  of some embodiments, to one or more candidate clips in the composite display area where the composite display area includes one or more locked clips. In this example, the overwrite edit style is applied to a candidate clip(s) by selecting the candidate clip(s) and using the preview tool  410  to select and apply the edit style after locking several clips  2310 - 2330 . To illustrate this example,  FIG. 24  describes two different stages of a user&#39;s interaction with the partial GUI  1700 . 
     This figure illustrates a first stage  2300  of user interaction that is after the preview tool  410  has been invoked, two clips  1710  and  2110  have been selected to which the edit style will be applied, three clips  2310 - 2330  have been locked (as indicated by the lock icons  2340 ), and the user has operated the selection control  2020  to select the desired edit style (i.e., “overwrite”). In addition, the first stage  2300  represents the state of the composite display area  340  after a user has previously performed an insert operation with locked clips (e.g., as described above in reference to  FIG. 23 ). As above, the user may have selected the two candidate clips  1710  and  2110  by positioning the cursor  385  over the first clip  1710  and performing a left-cursor click operation and then moving the cursor  385  over the second clip  2110  and performing a control-cursor-click operation. The user may have locked the clips  2310 - 2330  by performing a left-cursor operation over an icon in each clip to be locked (not shown), or some other appropriate method. In addition, the user may have operated the selection control of some embodiments by positioning the cursor  385  over the selection control  2020  and performing a left-cursor click operation. 
     In this stage  2300 , the user applies the selected edit style (as shown in the edit style application item  2010 ) to the selected clips  1710  and  2110 . The user performs this operation by positioning the cursor  385  over the edit style application item  2010  and performing a selection operation (e.g., a left-cursor click operation). As shown, this selection operation has caused a change in the graphical representation of the edit style application item  2010 . In this example, the outline of the item has been bolded and the background of the item highlighted. Different embodiments may indicate this selection using different graphical representations. 
       FIG. 24  further illustrates a second stage of user interaction  1700  that is after the user has performed an overwrite operation with locked clips. As shown, the overwrite operation has caused all non-selected, unlocked clips to be shifted by an equal amount  2410  (corresponding to the length  2350  the clips were shifted during the insertion operation described above in reference to  FIG. 23 ) toward the begin point  2420  of the selected clips  1710  and  2110 . By shifting all of the non-selected, unlocked clips by the same amount  2410 , the relationships between the non-selected, unlocked clips are maintained. 
     One of ordinary skill will recognize that the overwrite operation may also be used with locked tracks, a combination of locked tracks and locked clips, or with no locked tracks or clips. The overwrite edit style is used as the default edit style in some embodiments because it does not affect the display of any committed clips. In other words, no committed clips will be moved due to an overwrite operation (unless those clips had been previously moved through an insert or some other operation). 
     As above, although the second stage  1700  represents the existing track data (including committed clips) as being modified, the composite presentation definition is not affected by the preview tool overwrite command. 
       FIG. 25  illustrates applying a fit-to-fill edit style, using the preview tool  410  of some embodiments, to a candidate clip in the composite display area. In this example, the fit-to-fill edit style is applied to multiple candidate clips by selecting the candidate clips and using the preview tool  410  to select and apply the edit style. To illustrate this example,  FIG. 25  describes two different stages of a user&#39;s interaction with the partial GUI  1700 . 
     This figure illustrates a first stage  1700  of user interaction that is after the preview tool  410  has been invoked, clips  1710  and  2110  have been selected as the clips to which the edit style will be applied, and the user has operated the selection control  2020  to select the desired edit style (i.e., “fit to fill”). Furthermore, the first stage  1700  illustrates that a user has defined an area that the selected clip will fill by positioning begin and end point indicators  2510  and  2520  for the fit-to-fill operation. In some embodiments, the begin and end point indicators may be invoked when the user selects the fit to fill edit style (or some other edit style that used begin and end point indicators). In other embodiments, the user may invoke the begin and end point indicators through a menu selection, combination of keystrokes, or some other appropriate method. In some embodiments, the begin and end point indicators may initially be placed at the begin and end points of the selected clip(s) by default. The begin and end point indicators may be set before selecting a clip (or clips) to which the fit-to-fill style will be applied in some embodiments. 
     The user may have selected the two clips  1710  and  2110  by positioning the cursor  385  over the first clip  1710  and performing a left-cursor click operation and then moving the cursor  385  over the second clip  2110  and performing a control-cursor-click operation. The user may have positioned the begin and end points  2510  and  2520  by a click-and-drag operation, or some other appropriate method (e.g., a series of menu commands, a combination of keystrokes, a select-and-drag operation, radio buttons for setting the in and out points, etc.). In addition, the user may have operated the selection control of some embodiments by positioning the cursor  385  over the selection control  2020  and performing a left-cursor click operation. 
     In this stage  1700 , the user applies the selected edit style (as shown in the edit style application item  2010 ) to the selected clips  1710  and  2110 . The user performs this operation by positioning the cursor  385  over the edit style application item  2010  and performing a selection operation (e.g., a left-cursor click operation). As shown, this selection operation has caused a change in the graphical representation of the edit style application item  2010 . In this example, the outline of the item has been bolded and the background of the item highlighted. Different embodiments may indicate this selection using different graphical representations. 
       FIG. 25  further illustrates a second stage of user interaction  2500  that is after the user has performed a fit-to-fill operation. As shown, the fit-to-fill operation has caused the selected candidate clips  1710  and  2110  to be stretched to fill the area defined by the begin  2510  and end  2520  points that had been previously set. Some embodiments may stretch the selected clip by altering the playback speed, or changing the source in and out points in the underlying content, or some other appropriate method. The fit-to-fill operation of some embodiments may also be used to automatically trim (or speed up) a clip to fit into a smaller time period than originally defined for the clip. In some embodiments, after a user has applied a fit-to-fill operation to a clip or clips, the user may move the begin and/or end point indicator(s)  2510  and  2520  in order to automatically update the begin and end points of the clip(s) to which the fit-to-fill operation has been applied. 
       FIG. 26  illustrates using the preview tool  410  of some embodiments to apply a replace edit style to a candidate clip in the composite display area. In this example, the replace edit style is applied to a candidate clip by selecting the candidate clip and using the preview tool  410  to select and apply the edit style. To illustrate this example,  FIG. 26  describes two different stages of a user&#39;s interaction with the partial GUI  1700 . 
     This figure illustrates a first stage  1700  of user interaction that is after the preview tool  410  has been invoked, a clip  2610  has been selected to which the edit style will be applied, and the user has operated the selection control  2020  to select the desired edit style (i.e., “replace”). Furthermore, the first stage  1700  illustrates that the playhead  390  is positioned at a particular location  710  in the composite display area  340 . In addition, the first stage  1700  illustrates that the preview clip  2610  also has a clip playhead location indicator  2620 . This indicator may be used to designate a particular location within a clip. A user may identify the particular location by performing a selection operation using the GUI  1700  of some embodiments (e.g., by setting a marker while viewing the particular clip in a preview display area). Although the clip playhead location indicator  2620  has been represented using a particular display representation, one of ordinary skill in the art will recognize that different embodiments may use different display representations. 
     In some embodiments, a user may invoke the clip playhead location indicator  2620  by performing a pop-up or pull-down menu selection operation. In other embodiments, the clip playhead location indicator may be invoked when the user selects a particular clip from the composite display area  340  and then selects a GUI item that initiates playback of the selected clip (e.g., by pressing a “play” item provided by the GUI). In still other embodiments, a user may invoke the clip playhead location indicator  2620  by moving the cursor  385  to a particular location over a clip in the composite display area  340 , causing the GUI to automatically display the clip playhead location indicator. In yet other embodiments, a user may invoke a different clip playhead location indicator (not shown) in a clip that is displayed in the media library of some embodiments. In some of these embodiments, the location identified by the different clip playhead location indicator may be indicated by the clip playhead location indicator  2620  when the clip is moved from the media library to the composite display area  340 . 
     The user may have selected the candidate clip  2610  by positioning the cursor  385  over the clip  2610  and performing a left-cursor click operation. The user may have positioned the playhead  390  using a click-and-drag operation, or some other appropriate method (e.g., a series of menu commands, a combination of keystrokes, a select-and-drag operation, etc.). In addition, the user may have operated the selection control of some embodiments by positioning the cursor  385  over the selection control  2020  and performing a left-cursor click operation. Furthermore, a user may have set the location of the playhead location indicator  2620  using a drag-and-drop operation or some other appropriate operation (e.g., setting a flag when viewing a preview playback of the particular clip). 
     The playhead  390  may be used to determine the location in an existing clip at which to insert the replacement clip. Thus, a user may find a certain point in a particular committed clip and set the playhead to that location. The clip playhead location indicator  2620  may be set in a similar fashion. A user may then perform a replace operation to automatically move the playhead location indicator  2620  in the selected clip  2610  and trim begin point of the selected clip to match the certain point  710  in the particular committed clip  2630 . In addition, as described below, the end point of the selected clip may be trimmed to match the end point of the particular committed clip. This feature has the benefit of allowing a user who has compiled several “takes” of one scene to use a certain portion of a particular take and a certain portion of a different take to make up a complete scene. 
     In this stage  1700 , the user applies the selected edit style (as shown in the edit style application item  2010 ) to the selected clip  2610 . The user performs this operation by positioning the cursor  385  over the edit style application item  2010  and performing a selection operation (e.g., a left-cursor click operation). As shown, this selection operation has caused a change in the graphical representation of the edit style application item  2010 . In this example, the outline of the item has been bolded and the background of the item highlighted. Different embodiments may indicate this selection using different graphical representations. 
       FIG. 26  further illustrates a second stage of user interaction  2600  that is after the user has performed a replace operation. As shown, the replace operation has caused the selected candidate clip  2610  to be moved and trimmed such that the playhead location indicator  2620  is matched to the playhead position  710  and the begin and end points of the selected clip  2610  have been trimmed to match the begin and end points of the committed clip  2630  that is being partially replaced. 
     Some embodiments may also require the user to select the clip being replaced, while other embodiments will automatically select a clip that overlaps the selected clip  2610 . In addition, the end point of the selected clip  2610  may be automatically trimmed to match the end point of the committed clip  2630  that is being partially replaced. 
       FIG. 27  illustrates applying an exchange edit style, using the preview tool  410  of some embodiments, to a candidate clip in the composite display area. In this example, the exchange edit style is applied to a candidate clip by selecting the candidate clip and using the preview tool  410  to select and apply the edit style. To illustrate this example,  FIG. 27  describes two different stages of a user&#39;s interaction with the partial GUI  1700 . 
     This figure illustrates a first stage  1700  of user interaction that is after the preview tool  410  has been invoked, a clip  2710  has been selected to which the edit style will be applied, and the user has operated the selection control  2020  to select the desired edit style (i.e., “exchange”). The user may have selected the candidate clip  2710  by positioning the cursor  385  over the clip  2710  and performing a left-cursor click operation. In addition, the user may have operated the selection control of some embodiments by positioning the cursor  385  over the selection control  2020  and performing a left-cursor click operation. 
     In this stage  1700 , the user applies the selected edit style (as shown in the edit style application item  2010 ) to the selected clip  2710 . The user performs this operation by positioning the cursor  385  over the edit style application item  2010  and performing a selection operation (e.g., a left-cursor click operation). As shown, this selection operation has caused a change in the graphical representation of the edit style application item  2010 . In this example, the outline of the item has been bolded and the background of the item highlighted. Different embodiments may indicate this selection using different graphical representations. 
       FIG. 27  further illustrates a second stage of user interaction  2700  that is after the user has performed an exchange operation. As shown, the exchange operation has caused the selected candidate clip  2710  to be moved to match the begin point and trimmed to match the end point of the committed clip  2720  that is being exchanged. The move of the begin point to match the begin point of the committed clip is similar to the clip move to match playhead locations described above in reference to  FIG. 26 . Alternatively, in some embodiments (not shown) the begin point may be trimmed (e.g., to match a marker location as described below). Some embodiments may also require the user to select the clip being replaced, while other embodiments will automatically select a clip that overlaps the selected clip  2710 . 
     The exchange feature is useful when a user has compiled several “takes” of one scene, and wishes to replace a committed scene with another take, while automatically moving and trimming the clip to match the appropriate location in the timeline. 
     Although the examples of  FIGS. 26-27  illustrate the replace and exchange edit styles as matching the begin and end points of a particular committed clip, one of ordinary skill in the art will realize that other variations may be used to achieve the same functionality. For instance, in some embodiments a user may set timeline in and out points (e.g., by positioning markers along the timeline, performing a series of keystrokes, etc.) that determine the begin and end points for the clip that will replace or exchange with the particular committed clip. The timeline in out points may be set in some cases where a user wants to replace or exchange a section of the timeline that is longer than an existing clip, for example. 
       FIG. 28  illustrates applying a superimpose edit style, using the preview tool  410  of some embodiments, to a candidate clip in the composite display area. In this example, the superimpose edit style is applied to a candidate clip by selecting the candidate clip and using the preview tool  410  to select and apply the edit style. To illustrate this example,  FIG. 28  describes two different stages of a user&#39;s interaction with the partial GUI  1700 . 
     This figure illustrates a first stage  1700  of user interaction that is after the preview tool  410  has been invoked, a clip  2810  has been selected to which the edit style will be applied, and the user has operated the selection control  2020  to select the desired edit style (i.e., “superimpose”). The user may have selected the candidate clip  2810  by positioning the cursor  385  over the clip  2810  and performing a left-cursor click operation. In addition, the user may have operated the selection control of some embodiments by positioning the cursor  385  over the selection control  2020  and performing a left-cursor click operation. 
     In this stage  1700 , the user applies the selected edit style (as shown in the edit style application item  2010 ) to the selected clip  2810 . As above, the user performs this operation by positioning the cursor  385  over the edit style application item  2010  and performing a selection operation (e.g., a left-cursor click operation). As shown, this selection operation has caused a change in the graphical representation of the edit style application item  2010 . In this example, the outline of the item has been bolded and the background of the item highlighted. Different embodiments may indicate this selection using different graphical representations. 
       FIG. 28  further illustrates a second stage of user interaction  2800  that is after the user has performed a superimpose operation. As shown, the superimpose operation has caused the selected candidate clip  2810  to be moved to an open location on an adjacent track. In some embodiments, the selected candidate clip will be moved to the next higher-numbered track when there is sufficient space to place the candidate clip without overlapping any previously-existing clips. In cases where there is not sufficient space in the next higher-numbered, a new track may be created and inserted into the composite display area  340  above the track that includes the clip that is being superimposed. For instance, in the example of  FIG. 28 , if there was not sufficient space in the “Video  4 ” track  350  to place clip  2810 , a new track would be created and inserted between tracks “Video  3 ”  2820  and “Video  4 ”  350 . 
     Some embodiments may also require the user to select the clip over which the candidate clip will be superimposed, while other embodiments will automatically select a clip that overlaps the selected clip  2810 . Although the example of  FIG. 28  shows the superimposed clip  2810  as overlapping multiple existing clips  2830  and  2840 , in some cases a superimposed clip may overlap only a single clip (or portion of a single clip). 
     The superimpose feature allows a user to place text, pictures, overlay video, etc., over previously-existing content in the timeline. The superimposed clip is then played in addition to the underlying clip(s) (e.g., by compositing the superimposed clip with an underlying clip). Thus, a user may, for instance, add credits or other text that is to be displayed over the existing project data (such as a scene in a video). 
       FIG. 29  illustrates using a deactivation control of some embodiments to turn off the display of a candidate clip in the composite display area. In this example, the display of the candidate clip is turned off by selecting a deactivation control  2910 . To illustrate this example,  FIG. 29  describes two different stages of a user&#39;s interaction with the partial GUI  1700 . 
     This figure illustrates a first stage  1700  of user interaction that is after the preview tool  410  has been invoked and a user has moved the cursor  385  over the far-right section of candidate clip  2910 , causing the deactivation control  2910  to be displayed. 
     In this stage  1700 , the user selects the deactivation control  2910 . The user performs this operation by positioning the cursor  385  over the deactivation control  2910  and performing a selection operation (e.g., a left-cursor click operation). 
       FIG. 29  further illustrates a second stage of user interaction  2900  that is after the user has selected the deactivation control  2910 . As shown, the selected candidate clip  1710  has been removed from the composite display area  340 . Although this example shows the representation of the clip as being completely removed, various implementations of the preview tool may indicate the track&#39;s status using other representations. For instance, a clip that has been turned off may be represented as a different color, have a different fill, be shown as more transparent than an enabled clip, etc. 
     In addition to changing the displayed representation, the candidate clip definition is modified such that when a user invokes a preview playback, the removed clip  1710  will not be displayed. In addition to the operation shown in  FIG. 29 , a user may turn off a candidate clip using other methods. For instance, the user may select a command in a pull-down or pop-up menu, perform a series of keystrokes, or some other appropriate method of indicating that the clip should be removed from any preview display of the project. Furthermore, although the representation of the clip  1710  has been completely removed from the composite display area  340 , in some embodiments the underlying data is still available, and the clip may be restored. One such way of restoring a clip that has been turned off will be described in reference to  FIG. 30  below. 
       FIG. 30  illustrates using a candidate clip list of some embodiments to restore the display of a candidate clip in the composite display area. In this example, the display of the candidate clip is turned on by selecting the deactivated clip  1710  from a candidate clip list  3010 . To illustrate this example,  FIG. 30  describes two different stages of a user&#39;s interaction with the partial GUI  1700 . 
     This figure illustrates a first stage  1700  of user interaction that is after the candidate clip list  3010  has been invoked. The user may invoke such a list  3010  in several different ways. For example, the user may right-click in an area of the timeline and select a “candidate clip list” option from a pop-up menu. Alternatively, a user may invoke the list  3010  using a pull-down menu selection, a combination of keystrokes, a hotkey, etc. 
     In this stage  1700 , the user selects the activation control  3020 . The user performs this operation by positioning the cursor  385  over the activation control  3020  and performing a selection operation (e.g., a left-cursor click operation). In this example, the list  3010  represents enabled candidate clips as having a partially filled circle, while any clip that has been turned off is represented using a completely empty circle. In some embodiments, the list includes only those clips that have been active during the current preview edit session. 
       FIG. 30  further illustrates a second stage of user interaction  3000  that is after the user has selected the activation control  3020 . As shown, the selected candidate clip  1710  has been restored to the composite display area  340 . In addition to using a candidate clip list  3010  and activation control  3020  to restore clips that have been turned off, some embodiments may allow different methods of restoring such clips. For instance, a user may select an option (or series of options) from a pull-down menu, perform some combination of keystrokes, etc., to restore the particular clip. 
       FIG. 31  illustrates using the preview tool  410  of some embodiments to commit one or more candidate clips to a composite presentation definition. In this example, the candidate clips are committed to the composite presentation definition by selecting the candidate clips and using the preview tool  410  to select the edit commit item  2040 . To illustrate this example,  FIG. 31  describes two different stages of a user&#39;s interaction with the partial GUI  1700 . 
     This figure illustrates a first stage  1700  of user interaction that is after the preview tool  410  has been invoked and two clips  1710  and  2110  have been selected to commit to the composite presentation definition. The user may have selected the two clips  1710  and  2110  by positioning the cursor  385  over the first clip  1710  and performing a left-cursor click operation and then moving the cursor  385  over the second clip  2110  and performing a control-cursor-click operation. 
     In this stage  1700 , the user selects the edit commit item  2040 . The user performs this operation by positioning the cursor  385  over the edit commit item  2040  and performing a selection operation (e.g., a left-cursor click operation). 
       FIG. 31  further illustrates a second stage of user interaction  3100  that is after the user has selected the edit commit item  2040 . As shown, the selected candidate clips  1700  and  2110  have been modified to indicate that the selected clips have been changed from candidate clips to committed clips  3110  and  3120 . In the example of  FIG. 31 , the graphical representation of each of the selected clips  1710  and  2110  is changed from a half-height rectangle (indicating candidate clip status) to a full-height rectangle (indicating committed clip status). In addition to modifying the appearance of the clips, the composite presentation definition is also modified to reflect the change. Thus, any clip data that overlaps with the converted clips  3110  and  3120  is overwritten (e.g., committed clip  3130  is completely overwritten by committed clip  3120 ). The overlapping data may be overwritten in a similar manner as that described above in reference to  FIG. 13 , operations  1340 - 1360 . 
     Although not shown in  FIG. 31 , after committing the preview clip(s) to the project a user may wish to discontinue using the preview tool  410 . Thus, the user may select a particular item  2030  to remove the preview tool, make a selection from a pull-down menu, or otherwise indicate that the preview tool  410  is no longer needed. In some embodiments, when a user removes the preview tool  410  using the item  2030 , any candidate clips are removed from the composite display area  340  and the underlying data is deleted from the candidate clip definition. 
     Although the preview tool has been shown as having a certain graphical representation with particular controls and edit style options, different embodiments may implement the preview tool using a different graphical representation having a different set of controls or edit style options. In addition, as described above, different embodiments may differentiate between candidate clips and committed clips in different ways. 
       FIG. 32  illustrates different exemplary representations of the preview tool and preview clips. Specifically, this figure shows an alternative representation of the preview tool  3210 . In addition, the figure shows several different alternatives  3220 - 3240  to the half-height rectangles used in the examples described above.  FIG. 32  illustrates the same GUI sub-section  1700  described above in reference to  FIGS. 17-31 . 
     As shown, in some embodiments the preview tool  3210  may be displayed as a set of functional tabs in a toolbar that hovers over the GUI of the media editing application. One of ordinary skill will also recognize that the preview tool may be implemented with various other interfaces than shown. For example, in some embodiments the preview tool may be accessed and controlled using pull-down or pop-up menu options and/or commands (not shown). 
     In addition,  FIG. 32  illustrates several alternative display representations for candidate clips  3220 - 3240 . As shown, one preview clip  3220  has been represented using the same shape as used for committed clips, but with a different color than the committed clips. This clip may alternatively be differentiated using a different fill pattern than the committed clips (not shown). As another example, preview clip  3230  has been represented using the same shape and color as used for committed clips, however the clip  3230  has a  3 -D hovering effect. The next example clip  3240  uses the same color as the committed clips, but has a different shape than the committed clips. In addition, the preview clip  3240  is shown as semi-transparent, allowing a user to view a committed clip  3130  that would otherwise be obscured by the preview clip  3240 . 
     C. Process Used to Modify Clips 
     The process  1300  described above in reference to  FIG. 13  is not only illustrative of the operations used to add a clip to a media project, but may also be used when a clip that has previously been added to the media project is modified. The same conceptual operations apply, except that the process would begin when a clip is modified (instead of added), and instead of adding (at  1320  or  1360 ) clip data to the candidate clip definition or composite project definition, existing clip data in the candidate clip definition or composite project definition would be modified. 
     The clip modification that initiates the process of modifying the candidate clip definition or composite project definition may be made in various ways. For example, any of the operations described above in reference to  FIGS. 17-31  may be used to modify a clip. 
     As described above in reference to  FIG. 13 , one of ordinary skill will recognize that the modified process  1300  as performed in response to a modification to an existing clip is a conceptual representation of the operations used when a clip is modified in a media project. The specific operations of the process may not be performed in the exact order described. In addition, different specific operations may be performed in different embodiments. Also, the process may not be performed as one continuous series of operations. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro-process. 
     In addition, although the process of modifying a clip has been described with references to certain features and actions, one of ordinary skill in the art will recognize that the process may be implemented using other specific embodiments without departing from the spirit of the invention. For instance, alternative embodiments may determine whether a particular clip is a preview clip before receiving any modification to that clip. In addition, some potential operations have been omitted for clarity. For instance, after modifying one or more clips, a user may choose to save the composite project data before continuing. 
     III. Playback Preview 
     The following section describes the process and data structures used in some embodiments to allow playback preview (i.e., playback of a project with candidate clips included), while leaving any committed project data unaffected. One of ordinary skill will recognize that these data structures and process are conceptual representations of the actual implementation. Different embodiments may use different structures or a different process to allow playback preview. 
       FIG. 33  illustrates some embodiments that include a timeline  3300 , and a corresponding preview playback frame set  3350  and/or segment table  3390  used to perform playback preview. Specifically, this figure illustrates several data structures of an example timeline  3300 , a segment table  3390  generated from the example timeline data and a preview playback frame set  3350  that may be generated from the example timeline  3300  and/or the segment table  3390 . As shown in the figure, the timeline  3300  includes several tracks  3305 - 3315  for displaying and manipulating media clips that are part of the media project. This figure further illustrates the preview playback frameset  3350  that allows a user to view a display of the project with any candidate clips included in the displayed media presentation. 
     The tracks  3305 - 3315  include data corresponding to a set of clips  3320 - 3340  that have been placed in the tracks  3305 - 3315 . As shown, in addition to committed clips, each track may also include candidate clips. Furthermore, each track may include multiple non-overlapping committed clips and multiple non-overlapping candidate clips (not shown). Although the timeline is represented as using increments of one frame, some embodiments may use other increments. For example, some timelines may use a time increment (i.e., 30 ms). 
     The preview playback frame set  3350  represents one particular conceptual data structure that may be used to display a preview for the user that shows how the composite presentation would appear if the candidate clips were committed to the project. The preview playback frameset  3350  generated from the timeline  3300  includes multiple frames, where some frames are committed frames  3360 ,  3375 , and  3380  from individual committed clips, and some frames are preview frames  3365  and  3370  from the preview clip. Although each frame in the preview playback frame set  3350  have been represented as coming from a single clip, in some embodiments one or more frames may be composite frames that are generated by combining one or more clip frames. 
     The segment table  3390  represents another conceptual data structure that may be used to display a preview for the user or to generate the preview playback frame set  3350 . The segment table  3390  of some embodiments may include information such as a reference to all clips  3392  in the timeline, a frame number or other location indicator  3394 , a clip type attribute  3396 , and/or a point type indicator  3398 . In some embodiments the segment table  3390  may be used to optimize the playback operation by allowing the media application to perform preview playback more efficiently. 
     The generation of the segment table  3390  and the preview playback frame set  3350  from the timeline data  3300  will now be described by reference to process  3400 , as illustrated in  FIG. 34 . One of ordinary skill will recognize that process  3400  is a conceptual representation of the operations used to generate a segment table. The specific operations of the process may not be performed in the exact order described, or different specific operations may be used in different embodiments. Also, the process may not be performed as one continuous series of operations. Furthermore, the process could be implemented using several sub-processes, or as part of a larger macro-process. 
     As shown, the process  3400  begins at  3410  by retrieving timeline data. In this example, the timeline data  3300  will be used. Next, the process walks (at  3420 ) the timeline in order to generate a segment table indicating clip start and stop points and identify overlapping sections of clips. Thus, for the example timeline  3300 , the timeline starts at frame  1 . The process then progresses through the timeline and identifies any frames where any clips start or stop. For the example timeline  3300 , there is only one clip  3320  identified as starting or ending at frame  1 , so the first clip  3320  is added to the segment table  3390  as a clip start point. In addition, several clip properties may also be added to the table (e.g., track number, whether the clip includes audio data or video data, etc.). In addition to walking (at  3420 ) the timeline to generate the segment table, the process identifies overlapping sections of clips in order to define segments. This identification of overlapping sections may be achieved, for instance, by determining when consecutive entries in the segment table  3390  are “start” points. In some embodiments, the segment table includes information related to the overlapping sections of clips (not shown). In addition, some embodiments may remove entries from the table when the associated data will be superseded by other data. For example, as the preview clip  3340  completely overlaps the committed clip  3325  in track  2   3310 , the entries in the segment table  3390  corresponding to clip  2   3325  may simply be removed from the table. 
     The process  3400  proceeds along the timeline  3300  until it determines that preview clip  1   3340  begins at frame  5 . This begin point is added to the segment table  3390  as the next clip start or end point. The process proceeds in this manner, identifying clip start and end points and adding them to the segment table  3390  until it reaches the end of the timeline  3300  at the start of frame  17  in this example. 
     In some embodiments, the tracks are arranged hierarchically in the timeline, so that a clip on a track with a higher number supersedes the display of a track with a lower number. In some of these embodiments, frames on different tracks may also be composited (e.g., when performing a transition between clips on different tracks, the clips may overlap for at least a portion of the transition). The preview playback frame set  3350  shows the resulting frames under the hierarchical arrangement of one embodiment. 
     In some of these embodiments, the superseding clip is a smaller size than the superseded clip and thus, the superseding clip is only displayed over a portion of the superseded clip. In other embodiments, the superseding clip is at least as large as the superseded clip, and thus displaces the entire superseded clip or image in the display. The example playback frame set  3350  shows that the preview clip  3340  in this example supersedes the overlapping clip  3320  on a lower-numbered track  3305  in frames  5  and  6   3365 . In contrast, the committed clip  3330  in a higher-numbered track  3315  supersedes the overlapping preview clip  3340  in frames  11  and  12   3375 . In addition the preview clip  3340  supersedes the committed clip  3325  in the same track  3310 . 
     As in the above example, the preview clips may follow the hierarchy of the committed clips, and thus be superseded by committed clips on higher-numbered tracks, but may supersede clips on lower or equal-numbered tracks. In other embodiments, preview clips may supersede committed clips regardless of whether the preview clip is placed in a higher-numbered track than the committed clip. 
     In some embodiments, when audio clips overlap, the clips may be “mixed” instead of a particular clip superseding another. In these embodiments, the mixing operation may be controlled by the user, or may be performed as a default mix (e.g., playing all audio tracks at equal relative volume). In other embodiments, the audio clips on higher-numbered tracks may supersede the audio clips on lower-numbered tracks. In some of these embodiments, a user may elect audio clips to supersede other audio clips, while in other embodiments, the election may be a default election. The preview audio clips of some embodiments will supersede any committed audio clips in the same track, but be mixed with or supersede clips in other tracks as described above. 
     After walking (at  3420 ) the timeline to generate the segment table and identify overlapping sections of clips in order to define segments, the process uses (at  3430 ) the table to direct a fetcher to identify and retrieve individual frames (e.g., from a content storage element). In some embodiments, the table may omit superseded clips, or make other appropriate modifications (e.g., by adding attributes to each clip entry in the table) such that the fetcher is able to efficiently identify and retrieve frames. 
     After using (at  3430 ) the fetcher to identify and retrieve frames, the process of some embodiments sends (at  3440 ) frames retrieved by the fetcher to the preview display. The fetcher in this example retrieves the frames shown in the preview playback frame set  3350 . After sending (at  3440 ) the frames to the preview display, the process ends. 
     Although the preview playback function has been described above using numerous specific details, one of ordinary skill in the art will recognize that the function could be implemented in different ways without departing from the spirit of the invention. For instance, some embodiments scan the timeline and generate a list of frames for playback. As another example, different embodiments may assign a particular priority to the clips in a track, such that any overlapping sections of clips are resolved by removing (or omitting) the section from the clip with a lower priority. 
     In addition, many of the examples given above are by reference to a video compositing application that composites video clips and provides a preview display area for displaying the composite presentation. The preview tool may also be used for other media compositing applications such as audio mixers. In the case of an audio mixer, for example, the feedback would not be provided to the user through a preview display area, but rather through another mechanism (e.g., by playing an audio preview using a PC&#39;s sound card and speakers). 
     IV. Software Architecture and Implementation 
     In some embodiments, the processes described above are implemented as software running on a particular machine, such as a computer or a handheld device, or stored in a computer readable medium.  FIG. 35  conceptually illustrates the software architecture of an application  3500  of some embodiments for presenting menus such as those described in the preceding sections. In some embodiments, the application is a stand-alone application or is integrated into another application (for instance, application  3500  might be a portion of a video-editing application), while in other embodiments the application might be implemented within an operating system. Furthermore, in some embodiments, the application is provided as part of a server-based (e.g., web-based) solution. In some such embodiments, the application is provided via a thin client. That is, the application runs on a server while a user interacts with the application via a separate client machine remote from the server (e.g., via a browser on the client machine). In other such embodiments, the application is provided via a thick client. That is, the application is distributed from the server to the client machine and runs on the client machine. 
     Media editing application  3500  includes a user interface interaction module  3515  for sending data to and receiving data from a user, an editing module  3520  for receiving and processing edits to a composite project, a preview generator  3525  for creating a composite presentation based on stored project data, a rendering engine  3530  used to generate image data for storage or display, and a set of storages  3535  for storing data used by the application  3500 . The set of storages  3535  includes storages for project data  3540 , content data  3545 , as well as other data  3550  (e.g., data about media objects in a video scene). The sub-components of the preview generator  3525  of some embodiments are shown in breakout section  3555 . As shown, the preview generator includes a preview processor  3560 , a section identifier  3565 , and a fetcher  3570 . 
     The operating system  3510  of some embodiments includes a cursor controller driver  3575  that allows the application  3500  to receive data from a cursor control device, a keyboard driver  3580  for that allows the application  3500  to receive data from a keyboard, an audio playback module  3585  for processing audio data that will be supplied to an audio device (e.g., a soundcard and speakers), and a display module  3590  for processing video data that will be supplied to a display device (e.g., a monitor). 
     A user interacts with items in the user interface of the media editing application  3500  via input devices (not shown) such as a cursor controller (e.g., a mouse, touchpad, trackpad, etc.) and/or keyboard. The input from these devices is processed by the cursor controller driver  3575  and/or the keyboard driver  3580 , and passed to the user interface interaction module  3515 . 
     The present application describes a graphical user interface that provides users with numerous ways to perform different sets of operations and functionalities. In some embodiments, these operations and functionalities are performed based on different commands that are received from users through different input devices (e.g., keyboard, trackpad, touchpad, mouse, etc). For example, the present application describes the use of a cursor in the graphical user interface to control (e.g., select, move) objects in the graphical user interface. However, in some embodiments, objects in the graphical user interface can also be controlled or manipulated through other controls, such as touch control. In some embodiments, touch control is implemented through an input device that can detect the presence and location of touch on a display of the device. An example of such a device is a touch screen device. In some embodiments, with touch control, a user can directly manipulate objects by interacting with the graphical user interface that is displayed on the display of the touch screen device. For instance, a user can select a particular object in the graphical user interface by simply touching that particular object on the display of the touch screen device. As such, when touch control is utilized, a cursor may not even be provided for enabling selection of an object of a graphical user interface in some embodiments. However, when a cursor is provided in a graphical user interface, touch control can be used to control the cursor in some embodiments. 
     The user interface interaction module  3515  translates the data from the drivers  3575  and  3580  into the user&#39;s desired effect on the media editing application  3500 . For example, when the user edits content in a display area of the media editing application, the user interface interaction module  3515  may translate these edits into instructions that are processed by the editing module  3520  in some embodiments. In other embodiments, the edits may be applied directly to project data  3540 , or other data stored by the application  3500  in the set of storages  3535 . An example of the user editing content is if the user trims a media clip in a display area of the media editing application  3500 . The user interface interaction module  3515  also receives input data that is translated as instructions to preview visual content in a preview display area (for example, if a user clicks a play control while editing a media project). This information is passed to preview generator  3525  through the editing module  3520  in some embodiments. 
     Editing module  3520  of some embodiments processes edit instructions received from the user interface interaction module  3515  and data retrieved from the set of data storages  3535 . Editing module  3520  may also create and/or update data stored within the set of data storages  3535  based on received instructions that affect the project data  3540 , content  3545 , or other stored data  3550 . In addition, the editing module  3520  may send instructions and/or data to the preview generator  3525  of some embodiments. Furthermore, the editing module  3520  may also send data and/or instructions to the rendering engine  3530  of some embodiments. Editing module  3520  may perform, for example, some or all of the operations of processes  1300  and/or  3400  in some embodiments. 
     Preview generator  3525  of some embodiments generates a preview based on instructions received from the editing module  3520  and/or the user interface interaction module  3515  and project data stored in storage  3540 , content stored in storage  3545 , and/or other data stored in storage  3550 . In some embodiments, preview generator  3525  also generates a preview window (through the user interface interaction module  3515 ) after generating the preview, and manages the movement of the preview window. In some of these embodiments, the preview generator  3525  may also provide content to the user interface interaction module  3515  for display. The preview generator  3525  may perform some or all of operations of the processes  1300  and/or  3400  in some embodiments. 
     The operation of the preview generator  3525  will be further described in reference to breakout section  3555 . As shown, the preview generator of some embodiments includes a preview processor  3560  that may be used to communicate with the editing module  3520 , send and receive data to and from the user interface interaction module  3515  and/or the set of data storages  3535 . In addition, the preview processor  3560  may be used to send and receive data to and from the section identifier  3565  and/or the fetcher  3570 . In some embodiments, the preview processor  3560  sends timeline data to the section identifier  3565 , which generates a table or other appropriate set of data. The generated table or set of data may be similar to the segment table  3390  or the preview playback frame set  3350  described above in reference to  FIG. 33 . 
     In some embodiments, the preview processor  3560  may supply the set of data (e.g., a segment table or frame set) generated by the section identifier  3565  to the fetcher  3570 . In some embodiments, audio data may be passed directly to the user interface interaction module, while video data is processed through the fetcher  3570 . In other embodiments, the preview processor  3560  may supply both audio and video data to the user interface interaction module  3515 . If project data, content, and/or other data are edited, that modified data is passed to the preview generator  3525  so that a new preview can be generated. 
     Fetcher  3570  of some embodiments retrieves frames of video data from the set of data storages  3535  based on data provided by the preview processor  3560 . In some embodiments, the fetcher  3570  may also receive data from the editing module  3520  (either directly, or through the preview processor  3560 ). The data received by the fetcher  3570  may take the form of a table or list of frames (e.g., segment table  3390  or preview playback frame set  3350  described above in reference to  FIG. 33 . In addition to processing video frames through the fetcher  3570 , some embodiments may use the fetcher to retrieve and send audio data. 
     Rendering engine  3530  enables the storage or output of audio and video from the media editing application  3500 . For example, rendering engine  3530  uses data about media objects in a video scene to render the video scene from the particular location, direction, etc. defined by a camera object. As such, the rendering engine receives, in some embodiments, data from the editing module  3520  so that a preview can be displayed. In other embodiments (not shown), the rendering engine  3530  may receive data from the preview generator  3525  in order to generate a preview display. Data from the rendering engine  3530  (e.g., audio and video data of a video scene, preview data, etc.) is passed to the display module  3590  and/or the audio playback module  3585 . The audio playback module enables audio playback from the media editing application  3500  on an audio device (e.g., a set of speakers or headphones). Display module  3590  enables the display of the media editing application  3500  on a display device (e.g., a CRT monitor, LCD screen, etc.). Alternatively, data may be passed from the rendering engine  3530  to the set of storages  3535  for later playback. 
     Although the application  3500  and its features have been described using several specific embodiments, other embodiments might implement the application or its features using different resources or by placing the various modules in different specific locations. For instance, while many of the features have been described as being performed by one module (e.g., the UI interaction module  3515  or preview generator  3525 ), one of ordinary skill would recognize that a particular operation might be split up into multiple modules, and the performance of one feature might even require multiple modules in some embodiments. In addition, the application  3500  may include a separate audio module that performs functions analogous to the fetcher  3570 . 
       FIG. 36  conceptually illustrates a process  3600  used to receive and display a preview modification to a project and commit the preview modification to the composite media presentation. In some embodiments, the process  3600  could be implemented using the software modules and storages described above in reference to  FIG. 35 . As shown, the process  3600  begins at  3610  by receiving a preview modification to a project. The preview modification may include adding a candidate clip, modifying an existing candidate clip (e.g., by applying a particular edit style, moving a candidate clip along the timeline, etc.), or other such preview modification to the project. In some embodiments, the preview modifications are not permanently stored with the project data and may be stored in RAM, or other appropriate short-term storage while the preview edit session is still active. After receiving (at  3610 ) a preview modification, the process continues by determining (at  3620 ) whether to display a preview that includes the preview modification. In some cases, the determination may be based on user input, a default determination, or some other appropriate method. 
     In any case, when the process determines (at  3620 ) that the preview playlist is to be displayed, the process continues by generating (at  3630 ) a preview playlist to include the preview modifications. The generation of one example of such a preview playlist was described in reference to  FIGS. 33-34  above. The process next displays (at  3640 ) the modified project using the preview playlist. After displaying (at  3640 ) the modified project, or after determining (at  3620 ) not to display a preview, the process continues by determining (at  3650 ) whether to commit the preview edits to the project. When the process determines (at  3650 ) that the preview modifications will be committed to the project, the process overwrites (at  3660 ) the committed project clip data with preview clip data. When the process determines (at  3650 ) that the preview modifications will not be committed to the project, or after overwriting (at  3660 ) the committed clip data, the process determines (at  3670 ) whether there are other preview modifications. When the process determines (at  3670 ) that there are further preview modifications, the process repeats the operations  3610 - 3670  until the process determines (at  3670 ) that there are no other preview modifications. When determining (at  3670 ) that there are no other preview modifications, the process ends. 
     In addition to those operations shown in process  3600 , the media editing process of some embodiments further includes operations such as compositing a media project&#39;s video data, rendering the media presentation to a file, and encoding the file into various media formats (e.g., MPEG-2, DivX, etc.). One of ordinary skill in the art will recognize that various different operations may be used to prepare media presentations for playback on various different devices. 
     One of ordinary skill in the art will recognize that the conceptual descriptions provided above in reference to  FIGS. 35-36  may be implemented using different embodiments without departing from the spirit of the invention. For instance, the various storage modules  3540 - 3550  described above in reference to  FIG. 35  may be implemented as a single storage element, where the various storage modules all exist at the same physical location, and are differentiated using some appropriate method. As another example, the various storage modules  3540 - 3550  may be located externally to the application  3500  and accessed through a communication pathway (e.g., a bus). Section V below describes a process of some embodiments for defining and storing the software modules described above. Section VI then describes a computer system used by some embodiments to implement the various software modules and structures described above. 
     V. Process for Defining a Media Editing Application 
       FIG. 37  conceptually illustrates a process  3700  of some embodiments for defining and storing a media-editing application of some embodiments, such as application  3500 . Specifically, process  3700  illustrates the operations used to define several of the elements shown in GUI  300 . As shown, process  3700  begins by defining (at  3710 ) a composite display area for displaying graphical representations of a set of media clips. Composite display area  340  is one example of such a display area. 
     The process then defines (at  3720 ) a display area for displaying a composite presentation that is created by compositing the set of media clips. For instance, preview display area  330  is such a display area. Next, the process defines (at  3730 ) a preview user interface item for invoking the preview feature. The preview selection item  310  is an example of such a user interface item. 
     After defining (at  3730 ) the preview user interface tool for invoking the preview feature, the process defines (at  3740 ) clip representations for a set of committed clips and alternative representations for a set of preview clips. GUI  300  of  FIG. 6  shows one example of such representations. 
     The process then defines (at  3750 ) rules and processes for performing edit visualization operations.  FIGS. 20-31  illustrate several examples of such edit visualization operations and the accompanying discussion describes the rules and processes used to implement those operations. 
     After defining (at  3750 ) rules and processes for performing edit visualization operations, process  3700  defines (at  3760 ) rules for generating a display for playback in the display area. Several examples of these rules and processes were described above in reference to  FIGS. 33-34 . 
     The process then defines (at  3770 ) other media editing items and functionalities. Examples of such editing tools may include zoom, color enhancement, blemish removal, audio mixing, etc. In addition, various other media editing functionalities may be defined. Such functionalities may include library functions, format conversion functions, etc. The process defines these additional tools in order to create a media editing application that has many additional features to the features described above. 
     A more detailed view of a media editing application with these additional features is illustrated in  FIG. 38 . Specifically, this figure shows a media editing application with these additional tools.  FIG. 38  illustrates a list of video clips  3810 , video editing tools  3820 , and video displays  3830 . The list of video clips  3810  includes video clips along with metadata (e.g., timecode information) about the video clips. In some embodiments, the list of video clips is the list of video clips in a particular sequence of video clips, and the metadata specifies in and out points, durations, etc. for the video clips. 
     The video editing tools  3820  include tools that allow a user to graphically set in and out points for video clips (in other words, where in the final product a specific clip or part of a clip will be shown). For instance, the video editing tools  3820  include a number of timelines that can be used to modify the temporal sequence of the video frame and to synchronize audio tracks with video tracks (e.g., in order to add music over a video clip). In some embodiments, video editing tools  3820  also give users the ability to edit in effects or perform other video editing functions. 
     Video displays  3830  allow a user to watch multiple video clips at once, thereby enabling easier selection of in and out points for the video clips. The screen shot  3800  illustrates a few of many different editing tools that a video editing application of some embodiments may have to edit digital video. 
     In some cases, some or all of the video clips that are displayed in the list of video clips  3810 , played in displays  3830 , and edited by a user with video editing tools  3820 , are video clips of real-world objects (e.g., people, landscapes, etc.) filmed by a camera and include real-world audio (e.g., conversations, real-world noises, etc.) recorded by a camera, microphone, etc. In some cases, some or all of the video clips are computer-generated animations or include computer generated animations (e.g., animated objects, computer-generated effects, etc.). 
     Process  3700  then stores (at  3780 ) the defined media editing application (i.e., the defined modules, UI items, etc.) on a computer readable storage medium. The computer readable storage medium may be a disk (e.g., CD, DVD, hard disk, etc.) or a solid-state storage device (e.g., flash memory) in some embodiments. One of ordinary skill in the art will recognize that the various elements defined by process  3700  are not exhaustive of the modules, rules, processes, and UI items that could be defined and stored on a computer readable storage medium for a media editing application incorporating some embodiments of the invention. In addition, the process  3700  is a conceptual process, and the actual implementations may vary. For example, different embodiments may define the various elements in a different order, may define several elements in one operation, may decompose the definition of a single element into multiple operations, etc. In addition, the process  3700  may be implemented as several sub-processes or combined with other operations within a macro-process. 
     VI. Computer System 
     Many of the above-described processes and modules are implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as “computer readable medium” or “machine readable medium”). When these instructions are executed by one or more computational element(s), such as processors or other computational elements like Application-Specific ICs (“ASIC”) and Field Programmable Gate Arrays (“FPGA”), they cause the computational element(s) to perform the actions indicated in the instructions. Computer is meant in its broadest sense, and can include any electronic device with a processor. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, RAM chips, hard drives, EPROMs, etc. The computer readable media does not include carrier waves and/or electronic signals passing wirelessly or over wired connection. 
     In this specification, the term “software” is meant in its broadest sense. It can include firmware residing in read-only memory or applications stored in magnetic storage which can be read into memory for processing by one or more processors. Also, in some embodiments, multiple software inventions can be implemented as sub-parts of a larger program while remaining distinct software inventions. In some embodiments, multiple software inventions can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software invention described herein is within the scope of the invention. In some embodiments, the software programs when installed to operate on one or more computer systems define one or more specific machine implementations that execute and perform the operations of the software programs. 
       FIG. 39  conceptually illustrates a computer system  3900  with which some embodiments of the invention are implemented. For example, the system described above in reference to  FIG. 35  may be at least partially implemented using sets of instructions that are run on the computer system  3900 . As another example, the processes described in reference to  FIGS. 13 ,  34 , and  36  may be at least partially implemented using sets of instructions that are run on the computer system  3900 . 
     Such a computer system includes various types of computer readable mediums and interfaces for various other types of computer readable mediums. Computer system  3900  includes a bus  3910 , a processor  3920 , a system memory  3930 , a read-only memory (ROM)  3940 , a permanent storage device  3950 , a graphics processing unit (“GPU”)  3960 , input devices  3970 , output devices  3980 , and a network connection  3990 . The components of the computer system  3900  are electronic devices that automatically perform operations based on digital and/or analog input signals. The various examples of user interfaces shown in  FIGS. 3-12 ,  15 - 32 , and  38  may be at least partially implemented using sets of instructions that are run on the computer system  3900  and displayed using the output devices  3980 . 
     One of ordinary skill in the art will recognize that the computer system  3900  may be embodied in other specific forms without deviating from the spirit of the invention. For instance, the computer system may be implemented using various specific devices either alone or in combination. For example, a local PC may include the input devices  3970  and output devices  3980 , while a remote PC may include the other devices  3910 - 3960 , with the local PC connected to the remote PC through a network that the local PC accesses through its network connection  3990  (where the remote PC is also connected to the network through a network connection). 
     The bus  3910  collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the computer system  3900 . In some cases, the bus  3910  may include wireless and/or optical communication pathways in addition to or in place of wired connections. For example, the input devices  3970  and/or output devices  3980  may be coupled to the system  3900  using a wireless local area network (W-LAN) connection, Bluetooth®, or some other wireless connection protocol or system. 
     The bus  3910  communicatively connects, for example, the processor  3920  with the system memory  3930 , the ROM  3940 , and the permanent storage device  3950 . From these various memory units, the processor  3920  retrieves instructions to execute and data to process in order to execute the processes of some embodiments. In some embodiments the processor includes an FPGA, an ASIC, or various other electronic components for execution instructions. 
     The ROM  3940  stores static data and instructions that are needed by the processor  3920  and other modules of the computer system. The permanent storage device  3950 , on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when the computer system  3900  is off. Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device  3950 . 
     Other embodiments use a removable storage device (such as a floppy disk, flash drive, or CD-ROM) as the permanent storage device. Like the permanent storage device  3950 , the system memory  3930  is a read-and-write memory device. However, unlike storage device  3950 , the system memory  3930  is a volatile read-and-write memory, such as a random access memory (RAM). The system memory stores some of the instructions and data that the processor needs at runtime. In some embodiments, the sets of instructions and/or data used to implement the invention&#39;s processes are stored in the system memory  3930 , the permanent storage device  3950 , and/or the read-only memory  3940 . For example, the various memory units include instructions for processing multimedia items in accordance with some embodiments. 
     In addition, the bus  3910  connects to the GPU  3960 . The GPU of some embodiments performs various graphics processing functions. These functions may include display functions, rendering, compositing, and/or other functions related to the processing or display of graphical data. 
     The bus  3910  also connects to the input devices  3970  and output devices  3980 . The input devices  3970  enable the user to communicate information and select commands to the computer system. The input devices include alphanumeric keyboards and pointing devices (also called “cursor control devices”). The input devices also include audio input devices (e.g., microphones, MIDI musical instruments, etc.) and video input devices (e.g., video cameras, still cameras, optical scanning devices, etc.). The output devices  3980  include printers, electronic display devices that display still or moving images, and electronic audio devices that play audio generated by the computer system. For instance, these display devices may display a GUI. The display devices include devices such as cathode ray tubes (“CRT”), liquid crystal displays (“LCD”), plasma display panels (“PDP”), surface-conduction electron-emitter displays (alternatively referred to as a “surface electron display” or “SED”), etc. The audio devices include a PC&#39;s sound card and speakers, a speaker on a cellular phone, a Bluetooth® earpiece, etc. Some or all of these output devices may be wirelessly or optically connected to the computer system. 
     Finally, as shown in  FIG. 39 , bus  3910  also couples computer  3900  to a network  3990  through a network adapter (not shown). In this manner, the computer can be a part of a network of computers (such as a local area network (“LAN”), a wide area network (“WAN”), an Intranet, or a network of networks, such as the Internet. For example, the computer  3900  may be coupled to a web server (network  3990 ) so that a web browser executing on the computer  3900  can interact with the web server as a user interacts with a GUI that operates in the web browser. 
     As mentioned above, some embodiments include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable blu-ray discs, ultra density optical discs, any other optical or magnetic media, and floppy disks. The computer-readable media may store a computer program that is executable by at least one processor and includes sets of instructions for performing various operations. 
     Examples of hardware devices configured to store and execute sets of instructions include, but are not limited to, ASICs, FPGAs, programmable logic devices (“PLDs”), ROM, and RAM devices. Examples of computer programs or computer code include machine code, such as produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter. 
     As used in this specification and any claims of this application, the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of this specification, the terms display or displaying mean displaying on an electronic device. As used in this specification and any claims of this application, the terms “computer readable medium” and “computer readable media” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and/or any other ephemeral signals. 
     It should be recognized by one of ordinary skill in the art that any or all of the components of computer system  3900  may be used in conjunction with the invention. Moreover, one of ordinary skill in the art will appreciate that any other system configuration may also be used in conjunction with the invention or components of the invention. 
     While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. For example, several embodiments were described above by reference to particular media editing applications with particular features and components (e.g., particular composite display areas). However, one of ordinary skill will realize that other embodiments might be implemented with other types of media editing applications with other types of features and components (e.g., other types of composite display areas). 
     Moreover, while the examples shown illustrate many individual modules as separate blocks (e.g., the preview generator  3525 , the rendering engine  3530 , etc.), one of ordinary skill in the art would recognize that some embodiments may combine these modules into a single functional block or element. One of ordinary skill in the art would also recognize that some embodiments may divide a particular module into multiple modules. 
     One of ordinary skill in the art will realize that, while the invention has been described with reference to numerous specific details, the invention can be embodied in other specific forms without departing from the spirit of the invention. For instance, alternate embodiments may be implemented by using a generic processor to implement the video processing functions instead of using a GPU. One of ordinary skill in the art would understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims.

Metadata:
Filing Date: 20090430
Publication Date: 20140415
Grant Date: 20140415
Priority Date: 20090430
Inventors: MEANEY BRIAN
PENDERGAST COLLEEN
CERF DAVE
STIKICH MICHAELLE
Assignee: APPLE INC
CPC Classifications: [{"code": "G11B27/036", "inventive": true, "first": false, "tree": "[]"}, {"code": "G11B27/034", "inventive": true, "first": true, "tree": "[]"}, {"code": "G11B27/34", "inventive": true, "first": false, "tree": "[]"}, {"code": "G11B27/34", "inventive": true, "first": false, "tree": "[]"}, {"code": "G11B27/034", "inventive": true, "first": true, "tree": "[]"}, {"code": "G11B27/036", "inventive": true, "first": false, "tree": "[]"}]
Family ID: 43031331