Patent Publication Number: US-9905208-B1

Title: System and method for automatically forming a master digital audio track

Description:
TECHNICAL FIELD 
     Examples of the present disclosure relate to digital sound recording, and more particularly, to a system and a method for automatically forming a master digital audio track. 
     BACKGROUND 
     A digital audio workstation or DAW is an electronic device or computer software application for recording, editing, and producing audio files such as songs, musical pieces, human speech or sound effects. DAWs come in a wide variety of configurations from a single software program on a laptop, to an integrated stand-alone unit, all the way to a highly complex configuration of numerous components controlled by a central computer. DAWs have a central interface that allows the user to alter and mix multiple recordings and tracks into a final produced piece. 
     A DAW may refer to the audio editing software itself, but traditionally, a computer-based DAW has four basic components: a computer, either a sound card or audio interface, digital audio editor software, and at least one input device for adding or modifying data. This may be as simple as a mouse (if no external instruments are used) or as sophisticated as a piano-style MIDI controller keyboard or automated fader board for mixing track volumes. 
     The computer acts as a host for the sound card/audio interface, while the software provides the interface and functionality for audio editing. The sound card/external audio interface typically converts analog audio signals into digital form, and digital back to analog audio when playing it back; it may also assist in further processing of the audio. The software controls all related hardware components and provides a user interface to allow for recording, editing, and playback. 
     As software systems, DAWs are designed with many user interfaces, but generally they are based on a multitrack tape recorder metaphor, making it easier for recording engineers and musicians already familiar with using tape recorders to become familiar with the new systems. Therefore, computer-based DAWs tend to have a standard layout that includes transport controls (play, rewind, record, etc.), track controls and a mixer, and a waveform display. Single-track DAWs display only one (mono or stereo form) track at a time. The term “track” is still used with DAWs, even though there is no physical track as there was in the era of tape-based recording. 
     Multitrack DAWs support operations on multiple tracks at once. Like a mixing console, each track typically has controls that allow the user to adjust the overall volume, equalization and stereo balance (pan) of the sound on each track. In a traditional recording studio additional rackmount processing gear is physically plugged into the audio signal path to add reverb, compression, etc. However, a DAW can also route in software or use software plugins (or VSTs) to process the sound on a track. 
     There are countless software plugins for DAW software, each one coming with its own unique functionality, thus expanding the overall variety of sounds and manipulations that are possible. Some of the functions of these plugins include digital effects units which can modify a signal with distortion, resonators, equalizers, synthesizers, compressors, chorus, virtual amp, limiter, phaser, and flangers. Each have their own form of manipulating the soundwaves, tone, pitch, and speed of a simple sound and transform it into something different. To achieve an even more distinctive sound, multiple plugins can be used in layers, and further automated to manipulate the original sounds and mold it into a completely new sample. 
     Plugins, however, are limited in terms of flexibility and choices for changeable parameters. DAWs and DAW plugins currently do not permit the selection of a best audio performance from a set of audio performance take. Optimization of the selection of a best performance track is typically performed manually by a recording engineer. Unfortunately, a very skilled recording engineer spends about one hour for every minute of a song&#39;s length to try to get the perfect vocal take. The reason why it takes so long is that the recording engineer or the producer may have singers sing the same line of the song five, six, seven, eight, nine, ten different times. It is time consuming to perform multiple takes to obtain the bits and pieces that the recording engineer likes or are the most in-tune. 
     SUMMARY 
     The above-described problems are remedied and a technical solution is achieved in the art by providing a method and system for automatically forming a master digital audio track. A processing device of a digital audio workstation (DAW) may receive a plurality of audio tracks. The processing device may receive from a user an indication of an operation of a scan button in an editing window of a display of the DAW to cause the processing device to set one or more split points at one or more identified locations in each audio track of the plurality of audio tracks. For each audio track of a plurality of audio tracks, the processing device may place one or more split points at one or more locations on the audio track to produce a plurality of segments that are free of sudden changes in one or more properties of a waveform corresponding to the track. For each audio track of a plurality of audio tracks, the processing device may score each segment according to at least one of how closely a pitch of the corresponding waveform is in tune and a degree to which the waveform in the segment surpasses a pre-determined threshold of volume. The processing device may align the plurality of segments of each track of the plurality of audio tracks according to corresponding split points across the plurality of audio tracks. The processing device may select one or more best scoring segments from the plurality of aligned segments to produce a suggested master digital audio track. The processing device may present the suggested master digital audio track in an editing window of a monitor associated with the DAW. 
     Responsive to the processing device receiving an indication to compile a master digital audio track from the user, the processing device may visually stitch together the segments of the suggested master digital audio track into a final master digital audio track and display the final master digital audio track on the monitor. The processing device may receive from the user an indication to print the final master digital audio track to store the final master digital audio track in a memory. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention may be more readily understood from the detailed description of an exemplary embodiment presented below considered in conjunction with the attached drawings and in which like reference numerals refer to similar elements and in which: 
         FIG. 1  is a block diagram of an exemplary system in which examples of the present disclosure may operate. 
         FIG. 2  shows a plurality of waveforms corresponding to a plurality of audio tracks divided into corresponding pluralities of segments with selections indicated for highest scoring segments that are to comprise a suggested complete master digital audio track. 
         FIG. 3A  is a graph of a sample audio waveform indicating a number of rest split points. 
         FIG. 3B  is a graph of a sample audio waveform indicating a number of sibilance split points. 
         FIG. 3C  is a graph of a sample audio waveform indicating a combination of the rest split points of  FIG. 3A  and the sibilance split points of  FIG. 3B . 
         FIG. 4  is a screen shot of an example user interface edit window. 
         FIG. 5  is a screen shot of an example segmentation sub-window of a user interface edit window. 
         FIG. 6A  is a graph of a sample audio waveform indicating a single segmentation based on a long rest value. 
         FIG. 6B  is a graph of a sample audio waveform indicating a multiple segmentation based on a short rest value. 
         FIG. 7A  is a graph of a sample audio waveform indicating a single segmentation based on a low noise floor. 
         FIG. 7B  is a graph of a sample audio waveform indicating a multiple segmentation based on a high noise floor. 
         FIG. 8A  is a graph of a sample audio waveform indicating segmentation based on a high frequency sibilance value. 
         FIG. 8B  is a graph of a sample audio waveform indicating a multiple segmentation based on a low frequency sibilance value. 
         FIG. 9  is a screen shot of an example detection sub-window of a user interface edit window. 
         FIG. 10  is a graph of a sample audio waveform indicating multiple instances of segmentation based on range and release parameter levels. 
         FIG. 11  is a screen shot of an example edit sub-window and one or more waveform sub-windows of a user interface edit window. 
         FIG. 12  is a screen shot of an example a crossfade sub-window of a user interface edit window. 
         FIG. 13  is a flow diagram illustrating an example of a method for a processing device to automatically form a master digital audio track. 
         FIG. 14  illustrates a diagrammatic representation of a machine in the exemplary form of a computer system within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. 
     
    
    
     It is to be understood that the attached drawings are for purposes of illustrating the concepts of the invention and may not be to scale. 
     DETAILED DESCRIPTION 
     Examples of the present disclosure provide a method and system for automatically forming a master digital audio track. In an exemplary embodiment, the method can be a plug-in software component to a DAW called a segmentation optimizer. The segmentation optimizer is a software plug-in that permits music producers and sound engineers (hereinafter “user” or “users”) to create professional and strikingly accurate vocal performances. By setting segmentation and detection parameters within the plugin, the user has complete control over the style and accuracy of the compilation, and the built-in editing window makes it easy for the user to fine tune, create crossfades, or override the chosen segments to create the vocal performance. 
       FIG. 1  is a block diagram of an exemplary system  100  in which examples of the present disclosure may operate. A DAW  105  residing on a computer may include a processing device  115 . The DAW  105  may further include processing logic  120  which may include a digital audio editor software module  125  working in conjunction with an operating system  130 . The processing logic  120  may further include the segmentation optimizer plug-in  135  configured to access and manipulate the digital editor audio software  125  through an application programming interface (API)  140 . The DAW  105  may further include a memory  145 , either a sound card  150  or an audio interface  150 , and at least one input device  155  for adding or modifying data. The at least one input device  155  may be a mouse (if no external instruments are used) or a piano-style MIDI controller keyboard or automated fader board for mixing track volumes. A user  160  may interact with the DAW  105  using a monitor/keyboard  165  and the input device  155 . 
     The DAW  105  acts as a host for the sound card/audio interface  150 , while the segmentation optimizer plug-in  135  provides the interface and functionality for audio editing. The sound card/external audio interface  150  typically converts analog audio signals into digital form, converts digital back to analog audio when playing it back, and may also assist in further processing of the audio. The digital audio editor software module  125  and the segmentation optimizer plug-in  135  control all related hardware components and provides a user interface to allow for recording, editing, and playback. 
       FIG. 2  shows a plurality of waveforms  200  corresponding to a plurality of audio tracks  205   a - 205   n , divided into corresponding pluralities of segments  210   a - 210   n , with selections  215   a - 215   n  indicated for highest scoring segments that are to comprise a suggested complete master digital audio track. In one example, the segmentation optimizer plug-in  135  may receive a plurality of audio tracks  205   a - 205   n  representing multiple takes of a vocal portion of the same song produced by a singer. The segmentation optimizer plug-in  135  may receive from the user  160  an indication of an operation of a scan button in an editing window of the display  165  of the DAW  105  to cause the segmentation optimizer plug-in  135  to set one or more split points at one or more identified locations in each audio track of the plurality of audio tracks. 
     Each of these audio tracks  205   a - 205   n  of the same song is then segmented into a corresponding plurality of partial tracks or segments  210   a - 210   n  by the segmentation optimizer plug-in  135 . The criteria used by the segmentation optimizer plug-in  135  for deciding where to place split points  220   a - 220   n  in each waveform corresponding to an individual audio track is to find locations that are free of sudden changes in one or more properties of the waveforms. The split points  220   a - 220   n  are optimally placed to avoid editing pops and unnatural transitions. The split points  220   a - 220   n  may include, but are not limited to, a rest (e.g., a moment of silence or a noise floor) or a point of sibilance (e.g., a point of high frequency in the waveform). A moment of sibilance corresponds to the utterance of certain high frequency consonants of sound by the singer. Rests (moments of silence) corresponding to the noise floor and moments of sibilance are points in the waveforms whose split points would be least noticeable to a listener, e.g., the listener would not hear a transition from one segment to the next segment. This process of segmentation is repeated for each of the plurality of audio tracks  205   a - 205   n.    
     For each segment of each audio track  205   a - 205   n , the segmentation optimizer plug-in  135  may grade or score each segment based on one or both of two criteria. One criteria is how closely the segment is in tune. Being in tune refers to how close that segment matches a selected key and corresponding scale of the key. A second criteria is a degree to which the amplitude of the peak values of corresponding waveform of the segment surpass a pre-defined threshold of volume. 
     The segmentation optimizer plug-in  135  may align the plurality of segments  210   a - 210   n  of each track of the plurality of audio tracks  205   a - 205   n  according to corresponding split points  220   a - 220   n  across the plurality of audio tracks  205   a - 205   n . The segmentation optimizer plug-in  135  may select one or more best scoring segments from the plurality of aligned segments  225   a - 225   n  to produce a suggested master digital audio track. The processing device-may-present the suggested master digital audio track in an editing window of the monitor  165  associated with the DAW  105 . 
     The user  160  may be permitted to edit and modify/override the automatically scored segments. The edited/overridden segments  210   a - 210   n  may be automatically and visually stitched together by the segmentation optimizer plug-in  135  into a proposed master digital audio track that is ready to be printed (stored in the memory  145 ) as a final master digital audio track in the memory  145 . 
     Since the split points  220   a - 220   n  have already been selected on the monitor  165 , the user  160  may apply crossfade to help smooth out the edited segments  210   a - 210   n  by fading out the end of a segment while simultaneously fading in the start of the next segment. Crossfades may be automatically applied within an edit window non-destructively (e.g., no new files are written; fade lengths can be toggled fade lengths). The auto-crossfade feature may be used in conjunction with cross-fading “by hand” within the edit window. Additionally, the user  160  may edit and fine tune the crossfade regions that the auto-cross fade feature applies to the edited segments  210   a - 210   n.    
     The user  160  may further permitted to modify parameters within a graphical user interface (GUI) located on the monitor  165  associated with the DAW  105  to, for example, change the key and change the scale of a segment depending on the key and scale of the song associated with the segment, or change the root mean square (RMS) threshold value corresponding to volume/loudness. Responsive to the segmentation optimizer plug-in  135  receiving an indication to compile a master digital audio track from the user  160 , the segmentation optimizer plug-in  135  may visually stitch together the segments of the suggested master digital audio track into a final master digital audio track and display the final master digital audio track on the monitor  165 . The segmentation optimizer plug-in  135  may receive from the user  160  an indication to print the final master digital audio track to store the final master digital audio track in the memory  145 . 
     In order for the segmentation optimizer plug-in  135  to create natural sounding vocal performances without editing hiccups, as noted above, the segmentation optimizer plug-in  135  may scan a track for split points of two types: rest (a moment of silence) and sibilance (high frequency). A rest is the space between phrases, words, or syllables in a vocal performance. A moment of rest in an audio region is also known as the noise floor. If a crossfade is applied during a moment of rest near the noise floor, the split point may be completely undetectable by the listener.  FIG. 3A  is a graph of a sample audio waveform indicating a number of rest split points  305 . 
     Sibilance is a set of consonants such as “Ss”, “Sh” and “Ch” that commonly occur while singing. A moment of sibilance in a region of the digital audio waveform contains high-frequency information, often above 8 kHz, at or above which in frequency the waveform is moving that a sibilance split point will go by unnoticed by the listener.  FIG. 3B  is a graph of a sample audio waveform indicating a number of sibilance split points  310 . A typical waveform of a trach may be marked with both parameters simultaneously.  FIG. 3C  shows the waveform of  FIGS. 3A and 3B  exhibiting the combination of rest split points  305  and sibilance split points  310 . 
     Now that the track has been split into independent segments, the segmentation optimizer plug-in  135  may scan each segment based on two parameters: pitch accuracy and dynamic content. In one example, grading for pitch accuracy may be based on how in-tune a selected segment may be. Vocals convey the message of the song and are usually the most prominent part of any track, which means any mistakes are immediately obvious. Using built-in pitch recognition, the segmentation optimizer plug-in  135  may scan each segment corresponding to vocal performance for the best fitting segment based on parameters set by the user, such as key and scale. It should be noted that the segmentation optimizer plug-in  135  does not process or alter the original waveform in any way, thus leaving the natural shape of a vocal performance completely intact with no tuning artifacts. 
     The segmentation optimizer plug-in  135  may use a built in RMS detector to scan and grade for consistency in dynamic content, which can help create a vocal performance that is strong and deliberate, and may decrease the dependency on additional dynamic processors which can affect the natural vocal shape of the track. As noted above, grading dynamic content refers to the degree to which the amplitude of the peaks of the waveform in a segment surpass a user selectable threshold of volume. The user selectable threshold of volume may be based on a root mean square (RMS) value of the waveform compared against a preset threshold (e.g., low, medium, high; or soft, medium, loud). When the average level of the RMS value of the waveform surpasses the threshold, the segmentation optimizer plug in  135  may grade the segment as being higher than a segment that does not exceed the threshold. If many segments surpass the threshold, the segment having an average RMS value that exceeds the threshold most often or for the longest duration is assigned a higher score. 
       FIG. 4  is a screen shot of an example user interface edit window  400 . The user interface edit window  400  may include a segmentation sub-window  405 , a detection sub-window  410 , and edit sub-window  415 , one or more waveform sub-windows  420 , a crossfade sub-window  425 , and a print button  430  for committing a final master digital audio track to the memory  145 . Once each track has been segmented and each segment has been detected, the segmentation optimizer plug-in  135  may build a master playlist of segmented tracks of the suggested master audio track in the user interface edit window  400  that displays chronological segments based on the in-tune and best dynamic content. The user interface edit window  400  operates in sync with a timeline of the associated digital audio editor software module  125  of the DAW  105 , and contains a suite of advance playback functions that makes it easy to playback, mute, solo, nudge, drag, and zoom-in to carefully fine-tune vocals. Each segment displayed in the segmentation sub-window  405  has a dropdown menu that contains the next-best segments from top to bottom of aligned segments for a column of audio tracks. Selecting another segment from the dropdown menu places the segment into the suggested master digital audio track in the one or more waveform sub-windows  420 . Suggested master digital audio tracks can be saved and renamed so the user  160  can easily switch between suggested tracks. 
     Once the vocal segments are selected and compiled into the suggested master digital audio track, the segmentation optimizer plug-in  135  may apply crossfades to split points based on parameters set by the user  160  in the crossfade sub-window  425 , such as shape and length. Since split points have already been selected in the segmentation sub-window  405 , the crossfade helps smooth out the edited segments by fading out the end of a segment while simultaneously fading in the start of the next segment. Once the crossfades have been applied, the edit sub-window  415  may be used for additional playback or editing of the placed crossfades. 
     Once the user  160  is happy with the vocal performance as a whole, selecting the print button  430  may save the entire suggested master digital audio track onto a final master digital audio track within the memory  145 . 
     In the rendering of the user interface edit window  400 , the user  160  may work from left to right, top to bottom. First, segmentation parameters are applied and scanned and displayed in the segmentation sub-window  405 . The detection sub-window  410  is grayed out until segmentation has been scanned. Then, the detection sub-window  410  becomes live, permitting the user  160  to set detection parameters and scan each segment based on the parameters. As soon as detection has finished scanning, waveforms appear in the edit sub-window  415 . When the user  160  is finished editing, crossfades are applied at the bottom of the interface  400  in the crossfade sub-window  425 . 
       FIG. 5  is a screen shot of an example segmentation sub-window  405  of a user interface edit window  400 . The user  160  may select in the segmentation sub-window  405  a rest value  505 . The rest value  505  is the amount of time after the audio waveform of the track falls below the noise floor value before the track qualifies for segmentation. If the rest value  505  is selected by the user  160  to be of relatively short duration, the segmentation optimizer plug-in  135  may split regions between words and syllables in the waveform. If the rest value  505  is selected by the user  160  to be of relatively long duration, the segmentation optimizer plug-in  135  may split regions between phrases or sections in the waveform. The rest value  505  parameter of the segmentation window  405  can be bypassed or used in conjunction with the sibilance parameter  520 . 
       FIG. 6A  is a graph of a sample audio waveform indicating a single segmentation based on a long rest value of 1 second.  FIG. 6B  is a graph of a sample audio waveform indicating a multiple segmentation based on a short rest value of 10 msec. The length of time used for rest detection may be based on how aggressive or relaxed the user wants the segmentation optimizer plug-in  135  to be. The length of time chosen may vary by, but is not limited to, singer, genre, or personal preference. 
     The parameter noise floor value  510 , measured in dB, detects spaces in between vocal phrases. When the amplitude of the audio waveform of the track falls below the noise floor threshold value  510 , a rest is detected. If the audio amplitude of the audio waveform stays below the noise floor threshold value  510  for longer than the rest value  505 , the corresponding region of the waveform/track qualifies for segmentation.  FIG. 7A  is a graph of a sample audio waveform indicating a single segmentation based on a low noise floor. In  FIG. 7A , since the noise floor threshold value  510  is set to a low value, the corresponding region of the waveform/track may be split once.  FIG. 7B  is a graph of a sample audio waveform indicating a multiple segmentation based on a high noise floor. In  FIG. 7B , since the noise floor threshold value  510  is set to a high value, the corresponding region of the waveform/track may be split more frequently into multiple segments. 
     The parameter release value  515 , typically measured in milliseconds, determines where the split point will be placed. The split point may be placed after the audio signal falls below the noise floor value  510  based on the release value  515 . The release value  515  is used so that segmentation optimizer plug-in  135  does not inadvertently chop off the ends of a phrase that tapers off naturally. 
     The parameter sibilance  520 , typically measured in kHz, refers to the sounds uttered when a person sings the high frequency consonants. The parameter sibilance  520  in the segmentation window  405  can be bypassed or used in conjunction with the parameter rest value  505 . The parameter frequency  525 , measured in Hertz, determines when sibilance occurs in the audio waveform of a track. The higher the frequency value, the fewer types of consonants may be detected as sibilance. For instance, with a high frequency value, such as 10 kHz, the segmentation optimizer plug-in  135  may detect “Ss” sounds, but may not detect less sibilant sound such as “F” and “J”. With a lower frequency value, the segmentation optimizer plug-in  135  may begin to detect these less sibilant sounds. 
       FIG. 8A  is a graph of a sample audio waveform indicating segmentation based on a high frequency sibilance value. In  FIG. 8A , the frequency is set high at 10 kHz, therefore the “S” consonants are segmented.  FIG. 8B  is a graph of a sample audio waveform indicating a multiple segmentation based on a low frequency sibilance value. In  FIG. 8B , the frequency is set lower at 2 kHz, so breathy and sharp consonants such as “H” and “T” are segmented as well as “S” consonants. 
     The parameter threshold  530 , typically measured in dB, determines a level that the sibilance may surpass in order to be segmented. A split point is placed at the moment in the waveform that the parameter threshold  530  is surpassed. The parameter release  535 , typically measured in seconds, is the time release before the segmentation optimizer plug-in  135  scans for more moments of sibilance. The parameter release  535  is needed to prevent multiple split points from being placed on the same instance of sibilance. 
     The scan button  540  causes the segmentation optimizer plug-in  135  to split each region of one or more audio waveforms corresponding to one or more tracks viewable in the edit sub-window  415  into multiple regions based on the user-selectable parameters within the segmentation sub-window  405 . 
       FIG. 9  is a screen shot of an example detection sub-window  410  of a user interface edit window  400 . The detection sub-window  410  contains the categories pitch  905  and dynamics  925 . Under the category pitch  905  are a parameter key value  910 , a parameter scale value  915 , and a parameter tracking value  920 . Under the category dynamics  925  are the parameters range  930  and release  935 . Pitch accuracy is one of the two criteria that the segmentation optimizer plug-in  135  relies on to build suggested master digital audio tracks of vocal performances. The goal of pitch accuracy is to find the most in-tune vocal segments. The category pitch  905  can be bypassed or used in conjunction with the dynamics category  925 . The parameter key  910  selects among 12 semi-tone musical notes ranging from A to G#, which dictates the first note of the scale. The parameter scale  915  selecting between the chromatic, major, or minor scales, dictating the scale of the song or melody. The parameter tracking  920  selectable between high, medium, and low, is how strict or lenient the pitch detection may be when scanning a vocal. 
       FIG. 10  is a graph of a sample audio waveform indicating multiple instances of segmentation based on range and release parameter levels. Dynamic consistency is the other criteria that the segmentation optimizer plug-in  135  relies on to build suggested master digital audio tracks of vocal performances. The goal of this criteria is to find the most dynamically consistent vocal segments. This criteria can be bypassed or used in conjunction with the pitch accuracy criteria. The parameter range  930 , selectable between high, medium, or low, is the RMS threshold that the audio volume may surpass in order to be detected as an acceptable volume. The parameter release, selectable between long, medium, and short, is the predefined length of time after the audio signal surpasses the range threshold that the segmentation optimizer plug-in  135  allows signals below the threshold to pass. 
     In  FIG. 10 , the dotted line  1005  represents the threshold level, the line  1010  represents the release length, and the lines  1015  represent the segments created during the segmentation process. In Segment A, the audio volume level surpasses the threshold level, but the release length runs out before the end of the segment. In Segment B and C, the audio volume level surpasses the threshold level and the release length last for the duration of the segment. Segment D does not surpass the threshold level and therefore it not detected. Of the four segments, only B and C meet the criteria set by the category dynamics  925  parameters. 
     Operating the scan button  940  causes the segmentation optimizer plug-in  135  to scan segments of one or more tracks and arrange them into a suggested master digital audio track based on the criteria set in the detection sub-window  410 . 
       FIG. 11  is a screen shot of an example edit sub-window  415  and one or more waveform sub-windows  420  of a user interface edit window  400 . The edit sub-window  415  and one or more waveform sub-windows  420  makes it possible for the user  160  to playback and edit compiled vocal segments within the segmentation optimizer plug-in  135  interface. The scrolling options dialogue box  1105  includes options page, continuous, and none views of the waveforms. The expand/collapse edit window button  1110  expands the edit sub-window  415  to the full size of the display  165  of the WAV  105 . 
     When the segmentation optimizer plug-in  135  finishes its scan, the segments that best match the detection criteria may appear in a suggested master digital audio track  1115  on the display  165  of the WAV  105 . The segmentation optimizer plug-in  135  scans and ranks identified segments from best match to worst match based on the detection criteria. There is a drop down menu below each segment that permits swapping one segment with another in the suggested master digital audio track  1115 . The segments in the drop down menu are ordered best match to worst match, from top to bottom. By clicking the drop down menu next to the track name within the edit sub-window  415 , playlists may be duplicated in order to save changes. This makes it easy for the user  160  to compare multiple playlists. By creating a suggested master digital audio track  1115 , the segmentation optimizer plug-in  135  permits the user  160  to revert to the segmentation sub-window  405  and the detection sub-window  410  to adjust parameters, resulting in the creation of a new suggested master digital audio track with different criteria. The segmentation optimizer plug-in  135  permits the user  160  to playback and compare between these playlists, and even mix and match the suggested master digital audio tracks to create the best suggested master digital audio track for a song. 
     The mute/solo input  1120  permits muting or soloing the vocal track to hear what the song sounds like without the vocal, or what the vocal sounds like by itself, respectively. 
       FIG. 12  is a screen shot of an example a crossfade sub-window  425  of a user interface edit window  400 . Crossfades can be applied to split points on the suggested master digital audio track in order to smooth out edit points and prevent any unwanted clicks or pops. A crossfade fades out the end of one segment while simultaneously fading in the start of the next segment. The crossfade sub-window  425  includes two parameters: shape  1205  and length  1210 . The shape parameter  1205  is the shape of the waveform of the crossfade and is selectable between equal power, equal gain, and two types of parabolic curves. The length parameter  1210 , typically indicated milliseconds, is the length of the crossfade. The length parameter  1210  by default is equal on each side of a split point. For instance, if the length  1210  is set to 10 ms, the crossfade may begin 5 ms before the end of a segment and end 5 ms after the start of the next segment. When crossfades are applied to the suggested master digital audio track, the segmentation optimizer plug-in  135  permits nudging, dragging, or stretching the crossfades to sound smoother. 
     The apply button  1215  applies crossfades to the plurality of split points on the suggested master digital audio track based on the shape parameter  1205  and the length parameter  1210 . Alternatively, crossfades may be applied manually within the user interface edit window  400 . 
     Pressing print  430  on the lower right corner of the user interface edit window  400  may consolidate the master playlist onto a new track within the memory  145  associated with the DAW  105 . If it is not desirable to commit the vocal performance, segmentation optimizer plug-in  135  can run in the background on the new track without the need to print. 
       FIG. 13  is a flow diagram illustrating an example of a method  1300  for automatically forming a master digital audio track. The method  1300  may be performed by a processing device  115  of the DAW  105  of  FIG. 1  and may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions run on a processing device), or a combination thereof. In one example, the method  1300  may be performed by the segmentation optimizer plug-in  135  associated with a processing device  115  of the DAW  105  of  FIG. 1 . 
     As shown in  FIG. 13 , at block  1305 , the segmentation optimizer plug-in  135  of a digital audio workstation (DAW)  105  may receive a plurality of audio tracks  205   a - 205   n . At block  1310 , the segmentation optimizer plug-in  135  may receive from a user  160  an indication of an operation of a scan button in an editing window of a display  165  of the DAW  105  to cause the segmentation optimizer plug-in  135  to set one or more split points  220   a - 220   n  at one or more identified locations in each audio track of the plurality of audio tracks  205   a - 205   n . At block  1315 , for each audio track of a plurality of audio tracks  205   a - 205   n , the segmentation optimizer plug-in  135  may place one or more split points  220   a - 220   n  at one or more locations on the audio track to produce a plurality of segments  210   a - 210   n  that are free of sudden changes in one or more properties of a waveform corresponding to the track. 
     The one or more properties of the waveform may be a moment of rest in the waveform. The moment of rest corresponds to a noise floor of the waveform. The noise floor may contain one or more zero-point crossings of the waveform. The noise floor may be selectable based on a rest value corresponding to the amount of time after the waveform of the track falls below the noise floor before a track qualifies for segmentation. A split point may be selectable based on a release value of the noise floor corresponding to a point in time after the amplitude of the waveform falls below the noise floor. 
     The one or more properties of the waveform may be a point of sibilance in the waveform. The point of sibilance may correspond to a human utterance of a high frequency consonantal sound in the waveform. A location of a split point may be selectable based on a frequency threshold of the sibilance. A location of a split point may be selectable based on a release parameter corresponding to a time before the processing device scans for more moments of sibilance. At block  1320 , for each audio track of a plurality of audio tracks  205   a - 205   n , the segmentation optimizer plug-in  135  may score each segment of the plurality of segments  210   a - 210   n  according to at least one of how closely a pitch of the corresponding waveform is in tune and a degree to which the waveform in the segment surpasses a pre-determined threshold of volume. In an example, the segmentation optimizer plug-in  135  scoring each segment may include the segmentation optimizer plug-in  135  summing a score of a segment based on how in tune the segment is to the selected musical key and the degree to which the one or more amplitudes of the peaks of the waveform in the segment surpass the pre-determined threshold of volume. 
     A degree to which the waveform in the segment surpasses a pre-determined threshold of volume is based on a degree to which the one or more amplitudes of the peaks of the waveform in the segment surpass the pre-determined threshold of volume. The threshold of volume may be based on a root mean square (RMS) value of the waveform compared against a preset threshold. Responsive to the average level of the RMS value of the waveform exceeding the threshold, the segmentation optimizer plug-in  135  may score a first segment of the plurality of segments  210   a - 210   n  as being higher than a second segment of the plurality of segments  210   a - 210   n  that does not exceed the threshold. Responsive to two segments of the plurality of segments surpassing the threshold, the segmentation optimizer plug-in  135  may score each of the two segments in an order based on how often or how long a segment has an average RMS value that exceeds the threshold. The RMS threshold may be selectable according to a range parameter, wherein the range parameter corresponds to the RMS threshold that the audio volume is to surpass in order to be detected as an acceptable volume. The RMS threshold may be selectable according to a release parameter, wherein the ratio of the release parameter to the length of time after the waveform of a track surpasses the range threshold that the processing device allows signals below the threshold to pass. 
     In an example, how closely a pitch of a corresponding waveform of a segment is in tune is based on how closely the pitch matches a selected musical key and corresponding scale. Scoring based how closely a pitch of the corresponding waveform is in tune may be selectable according to one or more of a selected key, a selected scale, or a tracking parameter corresponding to how strict or lenient a pitch may deviate from the selected key and the selected scale. 
     At block  1325 , the segmentation optimizer plug-in  135  may align the plurality of segments  210   a - 210   n  of each track of the plurality of audio tracks  205   a - 205   n  according to corresponding split points across the plurality of audio tracks  205   a - 205   n . At block  1330 , the segmentation optimizer plug-in  135  may select one or more best scoring segments from the plurality of aligned segments  225   a - 225   n  to produce a suggested master digital audio track. At block  1335 , the segmentation optimizer plug-in  135  may present the suggested master digital audio track in an editing window of a monitor associated with the DAW. 
     At block  1340 , responsive to the segmentation optimizer plug-in  135  receiving an indication to compile a master digital audio track from the user  160 , the segmentation optimizer plug-in  135  may visually stitch together the segments of the suggested master digital audio track into a final master digital audio track and display the final master digital audio track on the monitor  165 . At block  1345 , the segmentation optimizer plug-in  135  may receive from the user  160  an indication to print the final master digital audio track to store the final master digital audio track in the memory  145 . 
     The segmentation optimizer plug-in  135  may permit the user  160  to swap one best scoring segment of one audio track with lower scoring segment of another audio track from a drop-down menu of a column of the plurality of columns of segments  225   a - 225   n  displayed on the monitor  165 . The segmentation optimizer plug-in  135  may permit the user  160  to duplicate a suggested master audio track to adjust parameters, resulting in the creation of a new master digital audio track with different criteria. 
     When there is a tie in a score of two corresponding segments of two different audio tracks, the segmentation optimizer plug-in  135  may select a segment from an earlier recorded audio track to be included in the suggested master digital audio track. 
       FIG. 14  is a diagrammatic representation of a machine in the exemplary form of a computer system  1400  within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In alternative embodiments, the machine may be connected (e.g., networked) to other machines in a local area network (LAN), an intranet, an extranet, or the Internet. The machine may operate in the capacity of a server or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. 
     The exemplary computer system  1400  includes a processing device  1402 , a main memory  1404  (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) (such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory  1406  (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device  1418 , which communicate with each other via a bus  1430 . 
     Processing device  1402  represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device may be complex instruction set computing (CISC) microprocessor, reduced instruction set computer (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device  1402  may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. Processing device  1402  is configured to execute the segmentation optimizer plug-in  135  for performing the operations and steps discussed herein. 
     Computer system  1400  may further include a network interface device  1408 . Computer system  1400  also may include a video display unit  1410  (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device  1412  (e.g., a keyboard), a cursor control device  1414  (e.g., a mouse), and a signal generation device  1416  (e.g., a speaker). 
     Data storage device  1418  may include a machine-readable storage medium (or more specifically a computer-readable storage medium)  1420  having one or more sets of instructions embodying any one or more of the methodologies of functions described herein. The segmentation optimizer plug-in  135  may also reside, completely or at least partially, within main memory  1404  and/or within processing device  1402  during execution thereof by computer system  1400 ; main memory  1404  and processing device  1402  also constituting machine-readable storage media. The segmentation optimizer plug-in  135  may further be transmitted or received over a network  1426  via network interface device  1408 . 
     Machine-readable storage medium  1420  may also be used to store the processing logic  145  persistently. While machine-readable storage medium  1420  is shown in an exemplary embodiment to be a single medium, the term “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable storage medium” shall also be taken to include any medium that is capable of storing or encoding a set of instruction for execution by the machine and that causes the machine to perform any one or more of the methodologies of the present invention. The term “machine-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. 
     The components and other features described herein can be implemented as discrete hardware components or integrated in the functionality of hardware components such as ASICs, FPGAs, DSPs or similar devices. In addition, these components can be implemented as firmware or functional circuitry within hardware devices. Further, these components can be implemented in any combination of hardware devices and software components. 
     Some portions of the detailed descriptions are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. 
     It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “enabling”, “transmitting”, “requesting”, “identifying”, “querying”, “retrieving”, “forwarding”, “determining”, “passing”, “processing”, “disabling”, or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system&#39;s registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices. 
     Embodiments of the present invention also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memory devices including universal serial bus (USB) storage devices (e.g., USB key devices) or any type of media suitable for storing electronic instructions, each of which may be coupled to a computer system bus. 
     The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will be apparent from the description above. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein. 
     It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other examples will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the disclosure should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.