Abstract:
A system for automatically manipulating prerecorded audio data to produce an audio track synchronized to a target video track. The system allows a user to select a music source from multiple music sources stored in a music library. Each music source includes multiple audio portions having block data and beat data associated therewith. The block data includes data blocks respectively, specifying the duration of the associated audio portions. Each data block preferably also includes interblock compatibility data and/or suitability data. The beat data, generally referred to as a “beatmap”, comprises timing information specifying the rhythmic pulse, or “beat” for the associated music source portion. The system is operable to produce an audio track synchronized to a video timing specification (VTS) specifying successive timing segments delimited by successive video events. After the user selects a music source, the system generates a music segment for each defined timing segment. Each music segment is generated by assembling an ordered sequence of compatible data blocks selected at least in part based on their suitability and/or compatibility characteristics.

Description:
FIELD OF THE INVENTION 
       [0001]    This invention relates generally to hardware/software systems for creating an audio track synchronized to a specified, i.e., target video track. 
       BACKGROUND OF THE INVENTION 
       [0002]    A “video track”, as used herein, refers to an ordered sequence of visual events represented by any time based visual media, where each such event (hereinafter, “video” event) can be specified by a timing offset from a video start time. A video event can constitute any moment deemed to be visually significant. 
         [0003]    An “audio track”, as used herein, refers to an ordered sequence of audible events represented by any time based audible media, where each such event (hereinafter, “audio” event) can be specified by a timing offset from an audio start time. A audio event can constitute any moment deemed to be audibly significant. 
         [0004]    It is often desirable to produce an audio track, e.g., music, to accompany a video track, e.g., a TV commercial or full length film. When bringing video and audio together, the significant events in the respective tracks must be well synchronized to achieve a satisfactory result. 
         [0005]    When composing original music specifically for a video track, it is common practice to compile a list of timing offsets associated with important video events and for the composer to use the list to create music containing correspondingly offset music events. Composing original music to accompany a video is quite costly and time consuming and so it has become quite common to instead manipulate preexisting, i.e., prerecorded, music to synchronize with a video track. The selection of appropriate prerecorded music is a critical step in the overall success of joining video and audio tracks. The genre, tempo, rhythmic character and many other musical characteristics are important when selecting music. But, beyond the initial selection, the difficulty of using prerecorded music is that its audio/music events will rarely align with the video events in the video track. Accordingly, a skilled human music editor is typically employed to select suitable music for the video and he/she then uses a computer/workstation to edit the prerecorded music. Such editing typically involves interactively shifting music events in time generally by removing selected music portions to cause desired music events to occur sooner or by adding music portions to cause desired music events to occur later. Multiple iterative edits may be required to alter the prerecorded music to sufficiently synchronize it to the video track and great skill and care is required to ensure that the music remains aesthetically pleasing to a listener. Various software applications (e.g., Avid Pro Tools, Apple Soundtrack, SmartSound Sonicfire Pro, Sony Vegas, Sync Audio Studios Musicbed) have been released to facilitate the editing of prerecorded music. Such applications generally provide a user interface offering the user a means to visualize the timing relationship between a video track and a proposed audio track while providing tools to move or transform items in the audio tracks. The standard approach is for the editor to repeatedly listen to the source music to acquaint himself with its form while also listening for musical events that can be utilized to effectively enhance the video events in the video track. The process is largely one of trial and error, using a “razor blade” tool to cut the music into sections and subsequently slide the sections backwards or forwards to test the effectiveness of the section at that timing. Once a rough arrangement of sections is determined, additional manual trimming and auditioning of the sections is generally required to make the sections fit together in a continuous stream of music. The outlined manual process is very work intensive and requires professional skill to yield a musically acceptable soundtrack. 
         [0006]    An alternative method utilized by a few software applications involves adjusting the duration of a musical composition or user defined sub-section by increasing or decreasing the rate (i.e., tempo, beats per minute) at which the media is played. If the tempo is increased/decreased a uniform amount for the entire musical composition, then it is true that the timing for which a single musical event occurs can be adjusted relative to the beginning of the music, but it is mathematically unlikely that multiple music events will align with multiple video events via a single tempo adjustment. Additionally, only small timing adjustments are practical to avoid degrading the recording of the music. 
       SUMMARY OF THE INVENTION 
       [0007]    The present invention is directed to an enhanced method and apparatus for automatically manipulating prerecorded audio data to produce an audio track synchronized to a target video track. For the sake of clarity of presentation, it will generally be assumed herein that “audio data”, refers to music, but it should be understood that the invention is also applicable to other audio forms; e.g., speech, special effects, etc. 
         [0008]    More particularly, the present invention is directed to a system which allows a user to select a music source from multiple music sources stored in a music library. Each music source includes multiple audio portions having block data and beat data associated therewith. The block data includes data blocks respectively, specifying the duration of the associated audio portions. Each block preferably also includes interblock compatibility data and/or suitability data. The beat data, generally referred to as a “beatmap”, comprises timing information specifying the rhythmic pulse, or “beat” for the associated music source portion. 
         [0009]    A system in accordance with the invention is operable by a user to produce an audio track synchronized to a video timing specification (VTS) specifying successive timing segments delimited by successive video events. After the user selects a music source, the system generates a music segment for each defined timing segment. In a preferred embodiment, for each music segment to be generated, an “untrimmed” music segment is first generated by assembling an ordered sequence of compatible data blocks selected at least in part based on their suitability and/or compatibility characteristics. The assembled data blocks forming the untrimmed music segment represent audio portions having a duration at least equal to the duration of the associated timing segment. If necessary, the untrimmed music segment is then trimmed to produce a final music segment having a duration matching the duration of the associated timing segment. 
         [0010]    In a preferred embodiment, trimming is accomplished by truncating the audio portion represented by at least one of the data blocks in the untrimmed music segment. Preferably, audio portions are truncated to coincide with a beat defined by an associated beat map. After final music segments have been generated for all of the timing segments, they are assembled in an ordered sequence to form the audio track for the target video track. 
         [0011]    For simplicity of explanation, reference herein will sometimes be made to trimming the duration of a data block but this should be understood to mean modifying a data block to adjust the duration of the associated audio portion. 
         [0012]    In accordance with an optional but useful feature of a preferred embodiment of the invention, a video timing specification analyzer is provided for automatically analyzing each video timing specification to identify “best fit” music sources from the music library, i.e., sources having a tempo closely related to the timing of video events, for initial consideration by a user. 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0013]      FIG. 1A  is a high level block diagram of a system in accordance with the invention; 
           [0014]      FIG. 1B  is a high level block diagram of an alternative system similar to  FIG. 1A , but incorporating additional functions; 
           [0015]      FIG. 2  is a flow chart depicting the operational sequence of the system of  FIG. 1B ; 
           [0016]      FIG. 3  is a flow chart depicting the internal operation of the system of  FIG. 1B ; 
           [0017]      FIG. 4  is a flow chart depicting the internal operation of the music segment generator of  FIG. 1B ; 
           [0018]      FIG. 5A  is a table representing block data of an exemplary music source; 
           [0019]      FIG. 5B  is a time based depiction of the block data of  FIG. 5A  relative to the music source; 
           [0020]      FIG. 6A  is a table representing beatmap data of an exemplary music source; 
           [0021]      FIG. 6B  is a time based depiction and detail of the beatmap data of  FIG. 6A ; 
           [0022]      FIG. 7A  is a table representing an exemplary video timing specification; 
           [0023]      FIG. 7B  is a table representing exemplary timing segments calculated from the video timing specification of  FIG. 7A ; 
           [0024]      FIG. 7C  is a table representing the timing segments of  FIG. 7B  with the inclusion of block data; 
           [0025]      FIG. 8  is a chart depicting exemplary results at various stages in the operation of a system in accordance with the invention; 
           [0026]      FIG. 9  is a chart depicting the state of an exemplary music segment prior to and following a segment trimming operation; and 
           [0027]      FIG. 10  is a flow chart depicting the operational sequence of the segment trimmer of  FIG. 1B ; 
       
    
    
     DETAILED DESCRIPTION 
       [0028]    Attention is initially directed to  FIG. 1A  which illustrates a block diagram of a preferred system  8 A in accordance with the invention for producing an audio track  30  to accompany a video track  10  having an associated video timing specification  12 . The video timing specification  12  defines the timing points of significant video events, e.g., scene changes, occurring in the video track  10 . The system  8 A operates primarily in response to initial user inputs via I/O control  20  to automatically produce the audio track  30 . 
         [0029]    The system  8 A includes a library  13  storing a plurality of prerecorded music sources  14 . Each music source in accordance with the invention is comprised of multiple audio portions with each portion having a data block and beat data  16  associated therewith. Each data block (as will be discussed in greater detail in connection with  FIGS. 5A ,  5 B) in accordance with the invention specifies the start and end times, and thus the duration, of the associated audio portion and the compatibility between portions, or data blocks. For example, an exemplary music source may have eight audio portions respectively represented by data blocks A, B, C, D, E, F, G, H. It may be musically inappropriate for the portion represented by data block B to ever immediately precede blocks D, F, or G. Accordingly, interblock compatibility data is incorporated in each data block where interblock compatibility refers to the ability of a block to sequentially lead (or alternatively sequentially follow) each other block according to aesthetic, e.g., musical criteria. As will be further mentioned hereinafter, each data block may also include additional data such as suitability data indicating whether the associated audio portion is appropriate to begin or end a music segment or especially appropriate to constitute a music event for synchronization with a video event. 
         [0030]    A music event constitutes an audibly significant moment of a music source. It can be subjective to a particular listener but primarily falls within two types:
       Stings—are typically a quick intensity burst of sound (often percussive or loud instruments added to the established texture of the music). Once the sting is completed the music will sound relatively unchanged from what it sounded like prior to the sting.   Changes—are easily heard when an established musical texture, rhythm, melody or harmony is added, removed or replaced by a new one. The change may occur quickly or transition over a period of time. In either case, a listener is aware that something in the music is now different. A common change in music involves the musical structure (form), such as moving from a verse to the chorus within a song. Listeners are able to easily detect when the form has changed, and most musical compositions are comprised of multiple sections, therefore making this kind of sectional change ideal for synchronization with events in a video.       
 
         [0033]    As depicted in  FIG. 1A , the video timing specification  12  and block/beat data  16  associated with a selected music source are applied to a timing controller  22  which processes the respective data to produce the audio track  30 . The controller  22  operates in conjunction with a music segment generator  24  which operates, as will be discussed hereinafter (e.g.,  FIG. 4 ), to produce an untrimmed music segment comprised of an ordered sequence of data blocks for each timing segment defined between successive video events specified by the video timing specification  12 . If the untrimmed music segment generated by generator  24  has a duration greater than that of the associated timing segment, its duration is trimmed by a process executed by segment trimmer  26 , as will be described in detail hereinafter (e.g.,  FIG. 10 ). 
         [0034]      FIG. 1B  is substantially identical to  FIG. 1A  except that it shows a system  8 B incorporates a video timing specification analyzer  34  to facilitate the automatic selection of an appropriate music source. More particularly, the analyzer  34  analyzes the intervals between video events, as defined by the video timing specification  12 , and determines the most similarly matched music source  14 . Various criteria can be used to determine matching. For example, the analyzer  34  preferably examines the video timing specification to determine a tempo which most closely matches the occurrence of video events. The analyzer  34  can then choose a particular music source of appropriate tempo or recommend one or more music sources to the user who can make a choice via I/O control  20 . The use of a music source that is paced at the preferred tempo increases the probability that music events within the music source will naturally align with the video events in the video timing specification, with the beneficial result of reducing the required manipulative processing, or trimming.  FIG. 1B  also introduces an optional video display  36  for displaying the video, i.e., visual media, file, to the user enabling the user to simultaneously view the video and synchronized audio output. 
         [0035]      FIG. 2  is a flow chart describing the operational sequence performed by the system  8 B of  FIG. 1B . More particularly, the system sequentially performs steps  40  through  56  to produce a final audio track  30 . 
         [0036]      FIG. 3  depicts the operation of the timing controller  22  in greater detail. A video timing specification (VTS)  60  is fed into the timing controller  22 . The specification  60  can be supplied from a variety of sources, and can be in various formats, e.g., a standard EDL file. The timings specified in the VTS are preferably laid out in a table ( FIG. 7A ) allowing successive timing segments  62  to be determined, each timing segment having a calculated start time, end time, and duration, along with music block begin and target information ( FIG. 7B ). 
         [0037]    A data display  64  preferably displays the timing segments to a user and the user is able to interact with the timing segment data via input  66 . In a preferred embodiment, the timing segment table can be displayed on the computer screen with the user controlling the keyboard and mouse to modify, add or remove timing segments. In an alternative embodiment, the timing segment data can be displayed and modified in a visual timeline form, presenting the user with a visualization of the relative start time and duration of each timing segment. User modifications will preferably be recalculated into the table  62  to ensure that timing segments are successive. 
         [0038]    The first timing segment is passed in step  68  to the music segment generator  70  (MSG) ( FIG. 4 ). The MSG  70  will generate and rank a plurality of untrimmed music segment candidates that are tailored to conform to the requested timing segment duration. Step  72  involves choosing the top ranked music segment candidate. If the chosen music segment is longer than the timing segment request  74 , it will be passed to the segment trimmer  76  (FIGS.  9 / 10 ) to reduce the duration in a musically aesthetic manner. The timing segment table  62  is amended to reflect the actual duration, begin and target data for the trimmed segment. The process continues to step  78  by looping back to step  62  until untrimmed music segments have been generated for all of the timing segments in table  62 . Finally, the generated music segments are appended in step  80  into a single sequence of segments as an audio track  86 , suitable for audible playback through the system or capable of being saved to a storage device as an audio file. Optionally, the audio track  86  may be displayed to the user  82  and the user may be given a means  84  to evaluate the result and determine if he/she would like to make further modifications to the timing segment table by returning to step  64  to cause the generating process to restart. 
         [0039]      FIG. 4  depicts a preferred music segment generator  70  (MSG) called by the timing controller  22  ( FIGS. 1A ,  1 B). The MSG  70  is configured to construct music segments from music portions derived from a music source  14  ( FIG. 1A ,  1 B). The MSG  70  is controlled by specifying the duration along with beginning and/or ending data block requests for a desired music segment. Utilizing a block sequence compiler  130 , the music segment generator  70  will iterate through all possible sequence derivations of the music data blocks and return a plurality of music segments that are the closest to the specified request. 
         [0040]    Construction of a new music segment having a duration matching a timing segment request  100  received from step  68  in  FIG. 3  commences at step  102 . Step  104  determines if the timing segment specifies a data block to begin the segment. If so, that data block will be added  108  to the music segment under construction. If the timing segment does not specify a data block, the final data block in the previous timing segment will be used to locate a suitable data block to begin this new music segment. If there is no previous timing segment, then a data block that is suitable to begin a musical composition is chosen at  106  and added to the music segment  108 . 
         [0041]    The duration of the music segment under construction is evaluated at  110  by summing the duration of all data blocks in the segment. As long as the music segment is shorter in duration than the requested timing segment duration, additional data blocks  112  will be tried and evaluated for their compatibility with the previous data block in the segment  116 . The process continues, effectively trying and testing all combinations of data blocks until a combination is discovered that has a suitable duration  110  and is compatible with a timing segment request. If all blocks are tried and the music segment fails the compatibility or duration test  114 , the final data block in the music segment is removed  120  to make room for trying other data blocks in that position. If all data blocks are removed from the music segment  122 , it indicates that all combinations of data blocks have been tried and that the iterative process of the block sequence compiler  130  is complete. 
         [0042]    A music segment that is evaluated in step  118  to successfully fulfill the timing segment request, is retained in memory in a table of segment candidates  124 . The entire process is continued by creating new segments  102  until all possible combinations of data blocks have been tried  126 . 
         [0043]    The collected music segment candidates  124  will vary from one another as each music segment represents a different combination and utilization of the available music data blocks. The music segments can therefore be ranked  128  based on criteria, such as duration or data block usage. The ranked music segment candidate table is returned to the timing controller ( FIG. 3 , step  72 ). 
         [0044]    Attention is now directed to  FIGS. 5A and 5B  which schematically represent an exemplary music source  160  having multiple music portions respectively represented by data blocks (A, B, C, D, E, F, G, H)  162 .  FIG. 5A  is a table showing for each data block its start time and its end time and also its compatibility and suitability characteristics. For example, exemplary block A is shown as having a duration of 18.6 seconds (although for simplicity herein durations are represented to a precision of only one tenth of a second it should be understood that in an actual implementation of the invention, it is preferable to use much higher precisions, e.g., 0.0001 seconds) and a compatibility characteristic indicating that it should, for reasons of music aesthetics, be followed only by data blocks B and F when constructing a music segment. The block A suitability characteristic indicates that it would be appropriate for use in a music segment to begin the segment and/or to create a music event. 
         [0045]    Attention is now directed to  FIGS. 6A and 6B  which schematically represent exemplary beat data for a typical music source.  FIG. 6A  shows a beatmap table indicating the timing points of discrete beats and indicating particularly significant beats, e.g., downbeats. Note that the intreval between adjacent beats is not necessarily uniform.  FIG. 6B  represents the beatmap data relative to a time scale  180  and shows for exemplary block B  182  the beatmap data  184 . 
         [0046]    Attention is now directed to  FIG. 7A  which comprises a table showing a simplified example of exemplary video timing specification data. Note that the table identifies four distinct video events T 1 , T 2 , T 3 , T 4  and indicates the timing occurrence for each. Additionally, the table ( FIG. 7A ) optionally identifies the type of each video event.  FIG. 7B  comprises a timing segment request table listing successive timing segments S 1 , S 2 , S 3  derived from the video timing specification data ( FIG. 7A ). It will be recalled from the description of  FIGS. 1A ,  1 B that the music segment generator  24  operates to populate each timing segment S 1 , S 2 , S 3  with a music segment represented by a sequence of data blocks.  FIG. 7C  comprises a table similar to  FIG. 7B  but showing the beginning and ending, i.e., target, data blocks for each timing segment. 
         [0047]      FIG. 8  depicts successive stages ( 1  . . .  5 ) performed by the timing controller of  FIG. 3 , to show how a video timing specification is processed starting in stage  1 , to ultimately assemble multiple music sequence in stage  5 . 
         [0048]    Stage  1 , depicts the exemplary data for a video timing specification ( FIG. 7A ) in a time based representation. The video events, T 1 , T 2 , T 3 , T 4 , are plotted along a timeline  200  with their respective event times. The objective for the timing controller is to generate a viable music soundtrack where music begins at T 1 , a music event occurs at T 2 , a second music events occurs at T 3 , and the music ends at T 4 . Stage  2  depicts three timing segments, S 1 , S 2 , S 3 , ( FIG. 7B ) derived from the video events in stage  1 . Each timing segment has a start time and end time that are plotted on the timeline  202 . 
         [0049]    Stage  3  begins when the music sequence generator (MSG)  70  ( FIG. 3 ) is called with the parameters for timing segment S 1 . A music segment candidate  204  comprised of data blocks A, B, E is generated by the MSG  70  and selected by the timing controller at FIG.  3 /step  72  as the best fit for segment S 1 . 
         [0050]    Stage  4  shows the music segment  210  after the segment trimming step  77  ( FIG. 3 ) to conform to timing segment S 1 . The process continues with the generation of music segment  206  for timing segment S 2 . The music segment  206  is comprised of blocks G, D, chosen in part because of compatibility with ending block E of S 1 . The trimmed result of S 2  is shown at  212 . The final music segment  208  is constructed to correspond to timing segment S 3  by choosing blocks B, H, block B because of its start compatibility with block D in S 2 , and block H because of its suitability as an end block. In this example, untrimmed music segment  208  has a duration matching timing segment S 3  so trimming is not necessary to produce final music segment  214 . 
         [0051]    In stage  5 , the three exemplary music segments  210 ,  212 ,  214  are connected to make a complete music sequence  216 , for constructing the final audio track. In a preferred embodiment of the invention, construction of the final audio track can be enhanced by the selective application of an audio cross-fade between adjacent music segments that are non-contiguous in the source music. One skilled in the art can see how the exemplary scenario can be extended to build additional music segments to correspond with additional video events. 
         [0052]    Attention is now directed to  FIG. 9  showing how segment trimming can be performed on the exemplary untrimmed music segment  204  in  FIG. 8 . The untrimmed music segment  254 , composed of data blocks A, B, E in sequence, is depicted in  FIG. 9  as a time based representation. As demonstrated in  FIG. 6B , the block data is cross-referenced with the beatmap to compile a beatmap  256  for the untrimmed music segment  254 . In this example, data block A spans 9 beats, data block B spans 9 beats, and data block E spans 7 beats. A ‘|’ in the diagram indicates the location of a basic beat while an ‘X’ additionally identifies a particularly significant beat, e.g., a downbeat. 
         [0053]    The line segment  252  displays the desired duration for the music segment as defined by timing segment S 1 . The segment trimmer will utilize various strategies to shorten the music segment to more closely adhere to the duration of S 1 . A user of the system will preferably be allowed to specify which strategy he/she prefers, or the timing controller may specify a strategy.  FIG. 9  depicts three alternative trimming strategies although it should be obvious that additional trimming algorithms could also be employed. 
         [0054]    Alternative 1: Using the target duration  252 , the nearest occurrence of any beat  257  (depicted as an ‘|’ in the figure) is located in the beatmap  256 . The end of the music segment is shortened by trimming block E  258  to the beat occurring most closely to the desired timing segment end time. 
         [0055]    Alternative 2: Using the target duration  252 , the nearest occurrence of a downbeat  259  (depicted as an ‘X’ in the figure) is located in the beatmap. The end of the music segment will be shortened to the location of a downbeat  260 . 
         [0056]    Alternative 3: An algorithm is employed to systematically remove beats just prior to downbeats until the segment has been sufficiently shortened. In this example a total of 5 beats have been removed. From block A  262 , a single beat is removed from the end, falling immediately prior to the initial downbeat of block B. In block B a single beat is removed prior to the downbeat that occurs in the middle of the block, and an additional beat is removed from the end of the block. Block E  266  similarly has two beats removed, one form the middle and one from the end. 
         [0057]      FIG. 10  is flow chart describing the operational sequence performed by the segment trimmer  76  of  FIG. 3 . More particularly, the system sequentially performs steps  280  through  288  to take an untrimmed music segment  254  and produce a trimmed music segment  258  in the manner represented in  FIG. 9 . 
         [0058]    The foregoing describes a system operable by a user to produce an audio track synchronized to a video timing specification specifying successive timing segments. Although only a limited number of exemplary embodiments have been expressly described, it is recognized that many variations and modifications will readily occur to those skilled in the art which are consistent with the invention and which are intended to fall within the scope of the appended claims. One specific embodiment of the invention is included in the commercially available SmartSound Sonicfire Pro 5 product which contains a HELP file further explaining the operation and features of the system.