Abstract:
A system for enabling collaboration between musicians includes a server configured to be connected to remote clients via a wide area network. The server is configured to receive session tracks associated with a session, each of the session tracks containing data representative of music created by a music source during the session, and to store those session tracks in a session database that includes a plurality of session data units. Each of the session data units includes session tracks for a session and session metadata associated with the session tracks. The server is further configured to receive instructions from a user to modify the session metadata, and to also provide data representative of the session tracks as modified by the session metadata.

Description:
CROSS REFERENCE TO RELATED APPLICATION 
       [0001]    This application claims priority to U.S. Provisional Application No. 61/678,401 filed on Aug. 1, 2012, the contents of which are hereby incorporated by reference in their entirety. 
     
    
     FIELD OF DISCLOSURE 
       [0002]    This disclosure relates to music processing software, and in particular to software for collaboration among musicians. 
       BACKGROUND 
       [0003]    Data representative of music has long been editable on a computer. Music editors for this function are capable of starting with raw files and processing them to create various mixes. However, contemporary systems for carrying out this function do not facilitate collaboration among musicians. 
       SUMMARY 
       [0004]    In one aspect, the invention features a system for enabling collaboration between musicians. Such a system includes a server configured to be connected to remote clients via a wide area network. The server is configured to receive session tracks associated with a session, each of the session tracks containing data representative of music created by a music source during the session, and to store those session tracks in a session database that includes a plurality of session data units. Each of the session data units includes session tracks for a session and session metadata associated with the session tracks. The server is further configured to receive instructions from a user to modify the session metadata, and to also provide data representative of the session tracks as modified by the session metadata. 
         [0005]    Various kinds of metadata are contemplated to be within the scope of the invention. In some embodiments, the session metadata comprises a session transform, whereas in others, the session metadata comprises annotation data. 
         [0006]    Some embodiments include features for permitting collaboration. For example, in some embodiments, the server is further configured to enable a first user to provide access to selected session tracks and the session metadata to a second user. In others, the server is further configured to enable a first user to permit a second user to annotate session tracks. And in yet others, the server is further configured to enable a first user to permit a second user to listen to selected session tracks as modified by a selected session transform. 
         [0007]    Components of the invention may span multiple political jurisdictions. In some embodiments, the server is outside United States territory and is controlled by a user within United States territory for the benefit of the user. 
         [0008]    In another aspect the invention features an apparatus for enabling a user to mix tracks representative of music. Such an apparatus includes a data processing system configured to receive session tracks associated with a session, each of the session tracks containing data representative of music created by a music source during the session, to store the session tracks in a session database, the session database including a plurality of session data units, each of the session data units including session tracks for a session and session metadata associated with the session tracks, wherein the server is further configured to receive instructions from a user to modify the session metadata, and wherein the server is configured to provide data representative of the session tracks as modified by the session metadata. 
         [0009]    In some embodiments, the session metadata includes a session transform. 
         [0010]    In othe embodiments, the session metadata includes annotation data. 
         [0011]    These and other features of the invention will be apparent from the following detailed description and the accompanying figures, in which: 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0012]      FIG. 1  shows a session hub with its output session vector; 
           [0013]      FIG. 2  shows a collaboration system to which the session hub of  FIG. 1  is connected; 
           [0014]      FIG. 3  shows a time-line view of a user-interface for the collaboration system of  FIG. 2 ; 
           [0015]      FIG. 4  shows an annotation view of a user-interface for the collaboration system of  FIG. 2 ; 
           [0016]      FIG. 5  shows a mixing view of a user-interface for the collaboration system of  FIG. 2 ; 
           [0017]      FIG. 6  shows an editing view of a user-interface for the collaboration system of  FIG. 2 ; and 
           [0018]      FIG. 7  shows a music view of a user-interface for the collaboration system of  FIG. 2 . 
       
    
    
     DETAILED DESCRIPTION 
       [0019]    Groups of musicians often come together to rehearse at a “session.” A session hub  10 , shown in  FIG. 1  and described in U.S. Patent Publ. 2009/0282967, the contents of which are herein incorporated by reference, accepts input from a musician  12  and generates one or more tracks  14  corresponding to what that musician played during a session. Each of these tracks  14  is referred to herein as a “session track.” In a typical session, there will be multiple session tracks  14 . 
         [0020]    The set of session tracks  14  concurrently obtained during a particular session defines a “session vector  16 .” The number of elements in the session vector  16  is greater than or equal to the number of musicians. Each session vector  16  contains data representative of music played by one or more of of the musicians. 
         [0021]    Referring now to  FIG. 2 , a distributed music collaboration system  18  features a server  20  remotely connected to the session hub  10  via a wide area network  22 . The server  20  receives session vectors  16  from the session hub  10  and creates session data  24  that includes, in addition to the session vectors  16 , session metadata  26 . The session metadata  26  includes server-generated metadata  28  and user-generated metadata  30 . 
         [0022]    Server-generated metadata  28  includes the date and time of the session, and if available, the identities of the musicians participating in the session. User-generated metadata  30  is provided by one or more users  32  accessing the collaboration system  18  using one of a corresponding plurality of clients  34 . Such a user  32  generally maintains an account with the collaboration system  18 . Through such an account, the user  32  can access session data  24  and create, alter, inspect or otherwise manipulate user-generated metadata  30 . 
         [0023]    One way for a user  32  to create user-generated metadata  30  is to perform custom editing or mixing of the session vectors  16 . For example, a user  32  may want to alter relative volumes of session tracks  14 , either in their entirety or within selected sections. Or the user  32  may want to alter the underlying time base either entirely or in sections, thus manipulating the tempo of the music. Or a user  32  may wish to cut and paste selected portions of session tracks  14 . 
         [0024]    Rather than alter the underlying session vector  16 , the user&#39;s various editing and mixing commands are saved as a session transform  38 . A filtering streamer  40  accepts a session transform  38  and a session vector  16  as inputs and outputs audio that can be listened to at a user&#39;s client  34 . 
         [0025]    A user  32  who wishes to hear the music as it was recorded during the session causes the filtering streamer  40  to accept that session vector  16  as a first input, and uses an identity session transform  38  as a second input. This results in the original music being streamed to the client  34 . On the other hand, a user  32  who wishes to hear the result of his own editing and mixing or that carried out by another, specifies the session vector  16  as a first input and a particular session transform  38  as the second input. This causes the filtering streamer  40  to stream, to the client  34 , the music from that session as modified by the selected session transform  38 . 
         [0026]    A user  32  can create several different session transforms  38  corresponding to different mixes. In doing so, the session vector  16  serves as a common foundation for all the different mixes. In addition, a user  32  can authorize other users to listen to the session vector  16  as modified by any session transform  38  by, for example, sending a link either to the session transform  38  or to a filtering streamer  40  having the appropriate session vector  16  and session transform  38  as inputs. 
         [0027]    In addition to session transforms  38 , session metadata  26  can also include annotations  42  linked to specified time points or time intervals in one or more session tracks  14  of a session vector  16 . A user  32  on one client  34  can thus make comments pertaining to a particular session track  14  or portion thereof. These comments are saved as user-generated metadata  30  available to a user&#39;s collaborator. The collaborator may then add his own comments either in response to the user&#39;s comments or pertaining to another session track  14  or portion thereof. 
         [0028]    The collaboration system  18  described herein thus permits a musician to collaborate with other musicians in connection with a session and to do so without creating multiple edited copies of the session data  24 . 
         [0029]    A representative user-interface encountered by a user  32  who accesses a server hosting the collaborative music system  18  is shown in  FIG. 3 . The user-interface includes a view button  40  that allows the user  32  to switch between different views. These views include a time-line view  42 , shown in  FIG. 3 , an annotation view  44 , shown in  FIG. 4 , a mixing view  46 , shown in  FIG. 5 , an editing view  48 , shown in  FIG. 6 , and a human-readable music view  50 , shown in  FIG. 7 . 
         [0030]    The time-line view  42 , shown in  FIG. 3 , features a scrollable time-line  52  having nodes  54 A- 54 B corresponding to each session that the user  32  is authorized to access. These nodes  54 A,  54 B are ordered by the time at which the session occurred. Each node  54 A- 54 B is associated with a metadata field  56 A,  56 B showing the metadata  24  associated with that session. A metadata field  56 A in some embodiments appears when a user  32  clicks on or hovers over its corresponding node  54 A. The user&#39;s identity is identified in a user-ID field  58  at the top of the time-line view  42 . A top row  60  of the time-line view  42 , as well as the other views, features three buttons that reveal corresponding metadata for a currently selected session. These buttons include a first button  64  for accessing a list of musicians associated with the session, a second button  62  for accessing user-generated metadata, and a third button  66  for accessing server-generated metadata. 
         [0031]    Clicking the first button  64  causes display of a window that shows musicians associated with the session and invites the user  32  to modify the information. Information concerning musicians can be tied to an account associated with the musician. However, this need not be the case. 
         [0032]    Clicking the second button  62  causes display of a window that shows tags associated with the selected session and invites the user  32  to edit or add searchable information about the session. For example, the user  32  may enter information identifying the genre, or the key, or the names and/or composers of songs rehearsed during the session. 
         [0033]    Clicking the third button  66  causes display of a window that shows date and time stamps, file size, and similar server-generated data that is also user searchable. 
         [0034]    The annotation view  44 , shown in  FIG. 4 , provides features to facilitate collaboration with other users. In the annotation view  44 , a portion of the window shows session tracks  14 , or combinations thereof, in graphical form. The user  32  can introduce marker points  68  to mark selected points in one or more session tracks  14 . In the illustrated interface, these marker points  68  are triangles having a vertex resting on the graphical representation of the session track  14 . The location of the marker point  68  indicates the time relative to some fixed point in the session track  14 , which is usually the beginning of the session track  14 . 
         [0035]    Associated with each marker point  68  is an annotation window  70  in which the user  32  can enter his observations about the session track  14 , both for himself and to share with other users. Upon clicking on a marker point  68 , the annotation window  70  opens and reveals any comments either by the user or by his collaborators. In some embodiments, the annotation window  70  has different colors corresponding to different collaborating users. 
         [0036]    A useful feature in certain embodiments is a play-loop that enables a relevant portion of the session track  14  to be played so that a comment concerning that portion can be readily understood in its musical context. 
         [0037]    The mixing view  46 , shown in  FIG. 5 , provides a way to see, for each of several sessions  72 A- 72 E the various session transforms  74 A- 74 C that have been saved by the user  32  or by his collaborators. In the particular example shown, three session transforms  74 A- 74 C have been saved for the first session  72 A. When the user  32  selects a session transform  74 A, the server  20  passes the session tracks  14  and the selected session transform  74 A to the filtering streamer  40  to be streamed to the user  32 . 
         [0038]    The editing view  48 , shown in  FIG. 6 , provides an interface to enable users to cut, copy, and paste selections  76  within and between session tracks  14 , play, pause, fast forward, rewind, or otherwise position a play head  78 , and change levels within a specified interval  80 , either overall or for selected frequencies. 
         [0039]    The music view  50 , shown in  FIG. 7 , includes a scrollable-time-line  82  similar to that shown in the time-line view  42  in which each node  84  corresponds to a session track  14 . In this view, clicking on a node  84  causes display of a window  86  showing a title, lyrics, notes, or chords associated with the session track  14 . 
         [0040]    The principles described herein, and the advantages thereof, are also applicable to the case in which no network is contemplated. For example, when implemented on a stand-alone system, such as a personal computer, a user can experiment with different mixes on the fly in the same manner described above by applying user-generated metadata to existing session data.