Rubato is a musical term used to describe slight variations in the timings of notes, where certain notes or phrases are played slightly faster or slower than the established score to create a sense of expressiveness and emotion in the music. While rubato is primarily a subjective and artistic concept, it is possible to describe its effect mathematically.
One way to do this is to use the concept of tempo deviation, which measures the difference between the actual onset of a note or phrase and its expected onset based on the established tempo. Tempo deviation can be expressed as a percentage, where positive values below 100% indicate that the note or phrase is played slower than expected, and values above 100% indicate that it is played faster than expected. However, the tempo deviation model of rubato can fail to intuitively capture nuance when a performer either draws out long notes or adds long periods of silence between notes.
The present disclosure addresses the aforementioned drawbacks by providing a method for generating an adjusted musical composition. Musical composition data are accessed with a computer system, where the musical composition data includes notes arranged in a temporal sequence. At least one user-selected note in the musical composition data is received by the computer system, and modified notes are generated using the computer system to apply at least one of a symbolic onset modification or a symbolic offset modification for each user-selected note. A rubato profile is generated by performing a curve fitting on the modified notes using the computer system. The adjusted musical composition data are then generated using the computer system by applying at least one of symbolic onset modifications or symbolic offset modifications to other notes in the musical composition data using the rubato profile. The adjusted musical composition data are then stored with the computer system.
It is another aspect of the present disclosure to provide a method for determining a rubato profile for a musical recording. Musical composition data are accessed with a computer system, where the musical composition data include notes arranged in a temporal sequence that define a musical score. Musical recording data are also accessed with the computer system, where the musical recording data include an audio recording of a performance of the musical score represented by the musical composition data. A rubato profile for the musical recording data is determined by the computer system based on a comparison of the musical recording data and the musical composition data. The rubato profile is then stored with the computer system.
The foregoing and other aspects and advantages of the present disclosure will appear from the following description. In the description, reference is made to the accompanying drawings that form a part hereof, and in which there is shown by way of illustration one or more embodiments. These embodiments do not necessarily represent the full scope of the invention, however, and reference is therefore made to the claims and herein for interpreting the scope of the invention.
Described here are systems and methods for varying a musical composition using a computational model of rubato. In general, the systems and methods described in the present disclosure implement a process in which rubato can be modeled from a mathematical standpoint. For instance, rubato can be modeled as modifications to the symbolic onset and/or symbolic offset of each note. This latter approach has the advantage of being able to capture nuance when dealing with silence between notes, allowing for a more expressive musical composition that is generated and/or modified by a computer-implemented process.
In some examples, the systems and methods can receive musical composition data as an input for processing by a computer system. The musical composition data can include the components of a musical composition or score, such as notes, key signatures, time signatures, tempo, dynamics, articulations, and other components of the musical notations that make up the musical composition or score. A user may then select, via a graphical user interface (“GUI”), one or more notes in the musical composition that should be altered. The alterations may include adding a symbolic onset to a selected note (e.g., so the note is played later in the composition), subtracting a symbolic onset from a selected note (e.g., so the note is played earlier in the composition), adding a symbolic offset to a selected note (e.g., so the note is ended later in the composition), subtracting a symbolic offset from a selected note (e.g., so the note is ended earlier in the score), or combinations thereof. Based on the selected note(s), the computational model can also be applied to convert symbolic onsets and/or symbolic offsets to physical onset and/or physical offset modifications for performing or generating the musical composition. The symbolic onsets and/or symbolic offsets can be implemented using a normal adjustment, in which the duration of the note is reduced based on the symbolic onset and/or symbolic offset modifications; using a legato adjustment, in which the offset of the ith note is set to the onset of the (i+1)th note, which can provide a longer note duration than the normal adjustment; or using a staccato adjustment, in which the offset of each note is set to a constant, user-specified amount of time after the onset of each note. In this way, the computational model of rubato described in the present disclosure is capable of capturing rubato as a set of modifications to individual note timings (i.e., onsets and offsets) in addition to as a series of tempo changes.
As a non-limiting example, the computational model can be fit to the user-selected note(s) to generate a function (e.g., a cubic spline) that represents a rubato profile for the musical composition. In some examples, the rubato profile can be converted into a tempo modification profile for the musical composition (e.g., by altering the onset, duration, and/or offset of notes in the composition).
These techniques can be advantageous for processing a musical composition to provide a more expressive performance of the musical composition; by contrast, if a musical composition is generated using an electronic process it may sound mechanical when performed. Using the systems and methods described in the present disclosure, the musical composition can be quickly adjusted by a user to provide varying degrees of rubato to the composition, so as to provide a more expressive performance of the musical composition. For example, when scoring a film, the user may adjust the rubato profile of the musical composition in real-time while viewing the film, such that the musical composition (and later performed musical piece) will optimally synchronize with the content of the film. In this way, the systems and methods described in the present disclosure can provide an efficient tool for recomposing, or otherwise adjusting, a musical composition to match the content of a film being scored with the musical composition. As an example, the recomposed musical composition can better match the emotional impact of the film, or can better synchronize with the action depicted in the film or the speakers in the film.
In some other examples, a musical recording and its corresponding musical composition are received by the computer system and processed to extract a rubato profile, which may then be altered to adjust the underlying musical composition, or may be stored for use in auxiliary applications. By way of example, the rubato profile can include a mathematical function or curve that indicates a tempo modification in the musical recording relative to the original musical composition. As one non-limiting example, for initial note onsets, Et, and post-modification onsets, Ef, in a musical composition, the modified tempo of the nth note, T f, in the score equivalent to the original onset modification can be determined through the following equation:
Similarly, for initial tempos, Ti, and post-modification tempos, Tƒ, the onset modification ΔEn, of the nth note in the score equivalent to the original tempo change can be determined through the following equation:
Using the computational models of rubato described in the present disclosure, the rubato profile can be converted into symbolic onsets and/or symbolic offsets, which can then be modified by the user as described above.
For example, a musical recording can be processed using a computational model of rubato to extract a rubato profile for the musical recording, from which the symbolic onsets and/or symbolic offsets that have been applied when performing the musical composition to generate the musical recording can be determined. The user may then select and adjust the symbolic onsets and/or symbolic offsets of notes in the musical composition. The altered musical composition can then be performed and recorded to generate an adjusted musical recording that has a different musical expression than the original musical recording. These techniques can advantageously be used to adjust a musical composition that, when performed, may yet lack a desired amount of expression.
Additionally or alternatively, the rubato profile extracted from the musical recording can be stored for later use in auxiliary applications. As one non-limiting example, the rubato profile can be used as an input to a machine learning model or other artificial intelligence (“Al”) model. For instance, a recommender system can be trained to recommend music to a user based on various types of input data (e.g., musical artist, composer, genre, beats per minute, emotion, or other characteristics about the musical recordings). In this way, the rubato profile can be used as an additional feature for training a recommender system to recommend music to users (e.g., via a music streaming service, or the like), and thus as an additional input for a trained recommender system.
As yet another example, an extracted rubato profile can be used in other machine learning or Al models, such as those that may be trained to identify musical recordings for use in a music therapy application. For example, the rubato profiles for a collection of musical recordings can be used to train a machine learning or other Al model together with user feedback data on the preference of the musical recordings, or data on how the musical recordings affected the user's mood, emotional state, psychological state, or other condition. In this way, machine learning or other Al models can be constructed to identify whether a new musical recording would be effective for positively affecting the user's mood, emotional state, psychological state, or other condition based on the rubato profile extracted for that new musical recording. In some examples, the rubato profile can therefore be used to determine or otherwise identify timing nuances in music that might affect the human psyche and overall well-being. Additionally or alternatively, the rubato profile can be used to determine or otherwise identify music that may be effective for treatment of patients affected by post-traumatic stress disorder. In yet other examples, the rubato profile may be used to determine or otherwise identify music that may have positive or otherwise therapeutic effects with autism, memory loss, Alzheimer's disease, and/or the effects of aging.
As noted above, the systems and methods described in the present disclosure implement a computational model of rubato that, in some embodiments, takes at least two inputs: a musical score and either a set of symbolic onset modification points, a set of symbolic offset modification points, or both. The two sets of points, E and O, can be defined by the user, where one set is for the onset changes (E) to notes in the score and the other set is for the offset changes (O). In E, the ith row represents the note ni associated with onset change ej, and the jth row of O represents the note nj associated with offset change oj with 1≤i≤E and 1≤j≤0:
As an example, the first row of the matrix E, [n1 e1], indicates the amount of onset modification, e1, applied to note n1, which is the first modified note of the score (n1, e1) plotted by the user. Likewise, the last row of the matrix O, [no oo], indicates the amount of offset modification, oo, applied to note no, which is the last modified noted of the score with point (no, oo) plotted by the user.
There does not need to be an onset and offset modification for each note in the score. Rather, the onset and offset modifications can be specified for notes over a user-defined range. This also means that n1 is not necessarily the first note of the score. It could be the third or fifth note in the score. Instead, n1 indicates the first note of the score whose onset is being modified by a user-defined point. Additionally, the computational model does not require the user to plot the exact same number of onset modification points as offset modification points.
To find the proper amount of onset and offset modification for every note in the score, cubic spline interpolation (or another suitable interpolation technique) can be used on the user-defined sets of points E and O, respectively.
Since there is no guarantee that the user will define the first symbolic onset or offset modification on the first note of the score, a check can be performed to determine if a modification for the first note of the score already exists within E or O. If not, the default onset or offset modification of zero (i.e. the row [ne 0]) is appended to the beginning of E or O for every note before the first note modified by the user. A similar process is performed for the last note in the score, appending the row [nE 0] or [no 0] to the end of the matrix if needed.
By defining these rows, the cubic spline interpolation algorithm will generate modification values for all notes within the musical composition, thereby making it easier to assign onset or offset modifications to the score later on.
Based on the user-selected onset and/or offset modification values, each of them can be processed separately using the cubic spline interpolation outlined below, or using another suitable curve fitting or interpolation technique.
First, the following assumptions can be made. The values of the polynomials at the beginning and endpoints should be ei and eE, respectively. Also, the values of internal points ei, i≠1, E are the same regardless of coming from the left cubic polynomial or the right cubic polynomial. Further, the first derivative at any internal point should remain the same regardless of coming from the left or right.
These can be mathematically summarized as:
This is a system of linear equations that can be solved. For example, the linear system of equations can be solved using the following equation composed of a (3E - 4)-by-(4E -4) matrix, a (4E - 4)-long vector of coefficients, and a (3E - 4)-long vector of known data values and relationships (dashes have been added to help add borders between each set of equations):
Letting A represent the large matrix, x represent the vector of coefficients a through d, and b represent the vector of known onset modification values gives Ax=b, leading to the vector of desired coefficients x=(ATA)−1ATb.
For convenience, the coefficients a through d can be formatted into groups of four. Additionally, there may be no guarantee that the intervals between user-defined notes are constant, which could complicate using the coefficients in the correct range of notes. Therefore, the vector x can be formatted into the array shown below:
Once the cubic spline algorithm is used on the user-defined onset and offset modification matrices E and O, the outputted sets of cubic polynomial coefficients can be used to find the amount of onset or offset modification for each note in the score (rather than only having the modifications for the notes in the score that the user plotted points for). These can be referred to as the “each-note” modifications.
Using the cubic spline coefficients and interval bounds, the value of onset or offset modification for each note in the score can be found. These each-note modification values e* and o* can be stored in a vector, where 1≤c≤C and C is the number of notes in the score (not the number of notes modified by the user).
A hypothetical 8-note phrase (i.e., C=8) can be used as a non-limiting, illustrative example to more clearly illustrate the processes described in the present disclosure. The example E* and O* matrices compared to the original user-defined matrices E and O for this specific 8-note phrase are shown below:
In this example, the first user-defined onset modification was actually for the third note in the score. After cubic spline interpolation, this first modification e1 is now the third each-note modification e3*. Additionally, using the processes described in the present disclosure, the unmodified beginning notes of the score can be given each-note modifications e1*, e2*, and o1* of 0. The same is done for the last note of the score (e8* =o8* =0).
However, a shift in a note's onset and offset should also shift the onset and offset of all notes after that note, so the onset and offset modifications of all preceding notes should also be summed. This means that one more set of new matrices En and O can be defined to account for cumulative modifications.
The final matrix of cumulative offset modifications O also accounts for the onset modifications e* of the preceding notes since these will also shift the chronological locations of the notes. An additional benefit of this cumulative method is that the user will not have to change the offsets of the notes in a score if they only wish to change the score's onsets; the onset modifications will be automatically implemented into the changes for the offset.
The values of e‘ and o’ can now be added to the score's original values of onset and offset, respectively. While onset modifications can be plugged into the score's notes directly, changes to the offset are implemented in a more indirect fashion. Notes have duration as a parameter rather than offset, so the offset modifications oΩ can be added to the onset modifications eΩ before overwriting the original duration values of the score. Once this is done, the score will have a user-defined rubato for every cth note in the score defined by:
The definitions of eΩ and oΩ can be explained/validated with a graphical analogy.
By way of example, for a simple two-note phrase the four following types of rubato can be considered: ritardando on both notes, accelerando on both notes, accelerando on the first note followed by ritardando on the second note, and ritardando on the first note followed by accelerando on the second note.
In this example, to describe the relationship between the variables e* and o* and the final shifts e‘ and o’, the user plotted points of onset and offset modification for both notes are assumed as e1=e1*, o1=01*, e2=e2*, and O2=o2* (i.e., this example does not need to implement cubic spline interpolation, which allows for temporarily skipping the process of developing the “each-note” modifications to focus instead on the formulas for eQ and ol).
The first instance of rubato to examine is that of ritardando on both notes. In other words, where the user wishes to increase the onset and offset of each note. This can be graphically represented in
To implement ritardando on both notes, an onset shift of magnitude |e1*| is added to the onset of the first note, and an offset shift of magnitude |o1*| is added to the offset of the first note. This now gives the first note an onset at the “end” of |e1*| and an offset at the “end” of |o1*|. Since the first note ends at the end of |o1*|, this is now where the period of silence begins before ending at the end of the second note's onset shift|e2*|.
It is important to note here that the new length of silence is increased by the magnitude of the onset shift |o2*|, and that if there is no onset modification on the second note that the length of silence would remain the same as in the original two-note phrase.
A set of onset and offset modifications |e2*| and |o2*| similar to those of the first note are also made to the second note. The second note now begins at the end of |e2*| and ends at the end of |o2*|. Now, the total change in onset and offset for the first and second notes e1Ω, o1Ω, e2Ω, and o2Ωcan be determined.
Intuitively, one can directly go from onsets and offsets of notes in the original phrase to their ritardando counterparts by accounting for all the changes to the onsets and offsets of the original notes. Taking e2Ω as an example, it can be observed that a shift of magnitude |e2*| would be insufficient to take the onset of the second note from its original value to its chronologically delayed ritardando counterpart. Instead, magnitudes of the shifts to the onset and offset of the previous note |e1*| and |o1*| must also be added. The same holds true for the total change to the offset of the second note o2Ω.
From this graphical interpretation, the following equations can be determined:
Using ritardando on both notes implies that all of the onset and offset shifts are to the right, so it can be determined that that e1*, o1*, e2*, and o2* are all positive, meaning that the above equations can be simplified to:
which then gives Equations (1) and (2).
The next instance of rubato examined is that of accelerando on both notes in the same example two-note phrase. Here, the onset and offset of each note are both decreased. This can be graphically illustrated as shown in
Similar to ritardando on both notes described above, accelerando can be implemented on both notes by applying an onset shift of magnitude |e1*| to the onset of the first note and an offset shift of magnitude |o1*| to the offset of the first note. However, because this example is now dealing with accelerando rather than ritardando, these onset and offset shifts are moving the notes in the opposite direction (i.e., left) instead of right. This means that the first note now has an onset at the “start” of e1* (not the end of e1* as in ritardando) and an offset at the end of o1*. Since the first note ends at the end of o1*, this is now where the period of silence begins before ending at the end of the second note's onset modification e2*.
It is important to note here that the length of silence includes the magnitude |o1*|, and that if there is no onset shift on the second note that the length of silence would remain the same as in the original two-note phrase. A set of onset and offset shifts with magnitudes |e2*| and |o2*| similar to those of the first note are lastly made to the second note. The second note now begins at the “start” of e* and ends at the “start” of o2*.
Now, the total change in onset and offset for the first and second notes can be determined. One can again graphically appreciate that in order to move between the onset or offset of a note in the original phrase to its accelerando counterpart, all prior changes to the onsets and offsets of the previous notes must be considered.
Taking e2Ω as an example, it can be seen that a change of e2* would be insufficient to take the onset of the second note from its original value to its accelerando counterpart. Instead, the changes to the onset and offset of the previous note e1* and o1* must also be added. The same holds true for the total change to the offset of the second note o2Ω.
From this graphical interpretation, the following equations can be determined:
Using accelerando on both notes implies that all of the onset and offset shifts are to the left, so it can be determined that e1*, o1*, e2*, and o2* are all negative, meaning that the above equations can be simplified to:
and then
which then gives Equations (1) and (2).
An example combination of both accelerando and ritardando is now described;
specifically, when the onset and offset of the first note are decreased but the onset and offset of the second note are increased. This can be graphically displayed in
To implement accelerando on the first note, an onset shift of magnitude |e1*| is subtracted from the onset of the first note, and an offset shift of magnitude |o1*| is subtracted from the offset of the first note. This now gives the first note an onset at the “start” of |e1*| and an offset at the “start” of |o1*|.
Since the first note ends at the start of |o1*|, this is now where the period of silence begins. However, because ritardando is being implemented on the second note the silence will not end until the end of the second note's onset shift |e2*|. In other words, the total length of silence will be increased by the magnitude |e2*|. The length of silence is not affected by the accelerando of the first note because it is shifted back to the start of |o1*|, thereby recovering the lost time with |o1*|.
To implement ritardando on the second note, an onset shift of magnitude |e2*| is added to the onset of the second note, and an offset shift of magnitude |o2*| is added to the offset of the second note. The second note now begins at the end of |e2*| and finishes at the end of |o2*|.
Now, the total change in onset and offset for the first and second notes can be determined. Intuitively, one can directly go from onsets and offsets of notes in the original phrase to their rubato counterparts by accounting for all the changes to the onsets and offsets of the original notes.
In contrast to the first two examples, ecΩ and ocΩ are now composed of shifts going both left and right. From this graphical interpretation, the following equations can be determined:
Using accelerando on the first note and ritardando on the second note implies that the onset and offset shifts of the first note are to the left, while the onset and offset shifts of the second note are to the right. The onset and offset shifts to the left are defined to be negative, while onset and offset shifts to the right are defined to be positive. In this case, that means e* and o* are negative, while e2*, and o2* are positive, resulting in simplification of the above equations to the following:
which then gives Equations (1) and (2).
An example combination of both accelerando and ritardando is now described; specifically, increasing the onset and offset of the first note while decreasing the onset and offset of the second note. This can be graphically displayed in
To implement ritardando on the first note, an onset shift of magnitude |e1*| is added to the onset of the first note, and an offset shift of magnitude |o1*| is added to the offset of the first note. This now gives the first note an onset at the “end” of |e1*| and an offset at the “end” of |o1*|.
Since the offset of the first note is now at the end of |o1*|, this is where the period of silence begins. However, because accelerando is being implemented on the second note, the silence will end at the beginning of the second note's onset shift |e2*|. In other words, the total length of silence will be decreased by the magnitude |e2*|. The length of silence is not affected by the ritardando of the first note because it is simply shifted to the end of |o1*|, thereby avoiding any lost time from shifts in the first note.
To implement accelerando on the second note, an onset shift of magnitude |e2*| is subtracted from the onset of the second note, and an offset shift of magnitude |o2*| is subtracted from the offset of the second note. The second note now begins at the start of |e2*| and finishes at the start of |o2*|.
The total change in onset and offset for the first and second notes can now be determined. Intuitively, one can directly go from onsets and offsets of notes in the original phrase to their rubato counterparts by accounting for all the changes to the onsets and offsets of the original notes. Now, ecΩ and ocΩ are composed of shifts going both left and right. From this graphical interpretation, the following equations can be determined:
Using ritardando on the first note and accelerando on the second note implies that the onset and offset shifts of the first note are to the right, while the onset and offset shifts of the second note are to the left. The onset and offset shifts to the left are defined to be negative, while onset and offset shifts to the right are defined to be positive. In this case, that means e1* and o1* are positive, while e2*, and o2* are negative, resulting in simplification of the above equations to
which then gives Equations (1) and (2).
One of the consequences of defining rubato as a symbolic operator is that asymptotic tempo becomes a playable, localized form of retrograde. Not only does this provide a definition of retrograde in terms of tempo, but a whole array of localized retrogrades can now be concretely defined using the symbolic rubato model. These localized retrogrades equivalent to asymptotic tempo modification can be referred to as Honeradian retrograde, described in more detail below.
Having the user be able to directly define changes to the symbolic onset and offset of each note in the score allows the user to more easily leverage more nuanced aspects of rubato, such as silence between notes and note-to-note transitions. However, because of the long-standing nature of the tempo-modification model of rubato, it is advantageous to know how changes made in the new symbolic operator model of rubato translate to the tempo-modification model. These formulas connecting the symbolic and tempo-modification models of rubato result in the concept of Honeradian retrograde as asymptotic tempo modification.
For initial note onsets Ei and final, post-modification onsets Ef, the modified tempo of the nth note Tf,n in the score equivalent to the original onset-modification can be determined through the following equation:
Conversely, for initial tempos Tj and final, post-modification tempos Tf, the onset modification ΔEn of the nth note in the score equivalent to the original tempo change can be determined through the following equation:
It should be noted that, in practice, this tempo modification equivalent to the user-defined changes to the symbolic onset and offset of notes (and vice versa) is an approximation rather than a conversion. The accuracy of the approximation can be increased or decreased (e.g., via conversion coarseness sliders described below with respect to
With equations (3) and (4), the changes in tempo caused by a change in symbolic onset/offset can be approximated, which leads to an important edge case: modifications to symbolic onset and offset that change the ordering of notes.
A straightforward example of this edge case is accelerando of increasingly large magnitude on the symbolic onset of a single note. In the tempo-modification model of rubato, this accelerando would make the note's physical onset approach that of the previous note, eventually creating a chord. However, the symbolic operator model would move the onset of this note increasingly closer to the onset of the previous note before then going past it, thereby changing the ordering of notes.
Looking at equation (4), changing the ordering of notes in the way described can be separated into two halves: the first where the onset of the modified note approaches that of the previous note, and the second where the modified onset passes that of the previous note. Mathematically, since the initial onsets remain unchanged, this causes the equivalent tempo modification for the two halves of this edge case to become
This is an asymptotic function with its origin at the symbolic onset of the formerly previous note, meaning that the tempo change required to change the ordering of notes is asymptotic.
Not only does this mean that asymptotic tempo now has defined playable behavior via the symbolic operator model of rubato, but one can also now concretely define a localized retrograde using symbolic rubato.
The symbolic operator model of rubato is able to define retrograde as a form of rubato. More specifically, modeling rubato as a symbolic operator allows for the possibility of accelerando of such a high magnitude that the onset of one note is shifted to before the onset of the previous note, effectively reversing the order of notes.
While the traditional tempo model does not have the flexibility to define retrograde as a form of tempo modification, the symbolic operator model's reliance on symbolic onset allows changes such as asymptotic tempo to become playable forms of retrograde. This is also why the symbolic operator model of rubato deals in symbolic onset rather than duration. Although it may initially seem more intuitive, modeling rubato by extending a note's duration does not allow for changes in note order; this then means that a symbolic duration model of rubato would fail to reveal the conceptual links between retrograde and tempo seen by modifying symbolic onset.
Referring now to
The method includes accessing, with a computer system, musical composition data, as indicated at step 502. The musical composition data generally include a sequence of symbolic notes that define a musical composition or score.
A user then selects one or more points in the musical composition data that should receive a symbolic onset and/or symbolic offset modification, as indicated at step 504. The points can be selected by the user via a GUI generated by the computer system. In some examples, the GUI allows for user inputs, scalability, and adjustments, with quick feedback of the adjustments in the modified musical composition. An example of such a GUI for adjusting onset modifications is illustrated in
Another example GUI is shown in
As shown in
The symbolic onset and/or offset modifications can be applied to individual notes, as described above, or in some implementations to chords. Since the onsets and offsets of the notes in a chord are typically the same, the cumulative approach described above would currently shift the chords too much, since it would consider the onset and offset of each note separately. To circumvent this, each chord can be grouped into a set of notes that receives onset and offset values to avoid the cumulative effects of the individual onsets and offsets of the notes inside the chord.
Referring again to
As one example, the adjusted musical composition data can be processed by a computer system to generate an electronic musical recording from the adjusted composition data. As another example, the adjusted musical composition data can be sent, via the computer, to a musician for performance. The adjusted musical composition data can be sent in an electronic format, or in some other instances can be converted onto a printed media, such as by printing the adjusted musical composition data in a written format using standard musical notations.
Referring now to
The method includes accessing, with a computer system, musical composition data, as indicated at step 1002. The musical composition data generally include a sequence of symbolic notes that define a musical composition or score. The method also includes accessing, with the computer system, musical recording data that include an audio recording of a performance of the musical composition represented by the musical composition data, as indicated at step 1004.
Using the methods described in the present disclosure, the musical recording data can be analyzed using a computational model of rubato in order to extract, compute, or otherwise determine a rubato profile for the musical recording relative to the original musical composition represented by the musical composition data, as indicated at step 1006. For example, the musical recording data can be converted into a suitable digital format (e.g., a DAW representation of the recorded musical piece) and based on a comparison of the recording relative to the original composition, onset modifications, offset modifications, and/or tempo modifications can be determined. The computational model of rubato can be applied to these modifications to determine a rubato profile for the recorded musical piece.
The rubato profile is then stored by the computer system for later use or analysis, as indicated at step 1008. Advantageously, the rubato profile can provide a quantification of the rubato applied when performing the musical composition, as recorded in the musical recording data. As described above, this rubato profile can be used as a way to characterize the musical recording. In some instances, the rubato profile can be used as training data for a machine learning or other AI-based recommender system, such as those used for recommending music to a user of a music streaming service, or the like. Similarly, the rubato profile can be stored and used as an input to such a recommender system. For instance, a user may input the rubato profile for a musical recording that is preferred by the user, and the recommender system may generate an output that includes a list of musical performances having a similar rubato profile.
Additionally or alternatively, the rubato profile can be used as an input to a machine learning or other AI-based model that has been trained to select musical recordings that can elicit a therapeutic effect for a user. For example, a machine learning or other AI-based model can be trained on training data that includes a musical recording, a rubato profile for the musical recording, and feedback data indicating whether a user experienced or otherwise reported a therapeutic effect (e.g., reduced stress) when listening to the musical recording.
As described above, the systems and methods described in the present disclosure can be implemented via a graphical user interface (GUI). The GUI allows user-defined points to be placed on a graph of symbolic onset and offset modifications.
The example GUI (e.g., the GUI illustrated in
The first of the three superimposed graphs is the onset-pitch graph. This graph is designed to contain a visual representation of a symbolic score's onset and pitch. As the name suggests, the graph's x-axis is the symbolic onset of a note, and the graph's y-axis is the symbolic pitch of a note. For the sake of user convenience, the y-coordinate of the origin of the graph is shifted to the average pitch of all the notes of the score so that the user's view is centered. This view of the score is similar to the piano-roll notation used in Digital Audio Workstations (DAWs). Additionally, depending on whether one is working with symbolic onset or offset, a darkened line will appear at the beginning or end of each note, respectively.
This graph simply shows a user where they are in the score, and the score does not change in any way from this display process. To actually begin modifying the timings of notes in the score, the user must plot points on the symbolic onset/offset deviation graph.
To shift the symbolic onset/offset of a note, the user must plot a point on the onset/offset deviation graph (e.g., points 806). This graph has the same x-axis as the symbolic onset-pitch graph (symbolic onset), but its y-axis represents how much the onset/offset should change. For example, if a user plots a point with an x-coordinate corresponding to the onset of the fifth note in a score and a y-coordinate of 0.75, then the symbolic onset of the fifth note in the score will be delayed by three quarter notes.
As described above, since the user likely intends for there to be a ripple effect when delaying a single note, all other notes after a shifted note will also be shifted. This means that in the example in the previous paragraph, all notes after the fifth note in the score will also be delayed by three quarter notes.
Since positive onset deviations delay notes and negative onset deviations make notes come earlier, the positive y-axis of this graph is labeled as ritardando, while the negative y-axis of the graph is labeled as accelerando. This references the definition of rubato described above, where accelerando and ritardando are treated as modifications to the onsets and offsets of notes rather than to tempo.
The last of the three graphs in the example GUI is the tempo percentage graph. Like the other two graphs, the x-axis of the tempo percentage graph is symbolic onset, and as the name suggests, the y-axis of the tempo-percentage graph is the percentage of the original tempo that some note has given some modification to its symbolic onset and/or offset.
While the computational model of rubato described in the present disclosure mainly focuses on the definition of rubato as changes to the symbolic onset and offset of notes, it is noted that rubato as tempo modification is a much more well-known model of rubato. In these instances, tempo modifications equivalent to changes to the symbolic onset and/or offset of notes in the score can be approximated.
In addition to the three superimposed graphs, the GUI also contains a line 804 indicating Honeradian retrograde as shown in
A user can interact with the GUI using a number of different inputs and tools. From left to right in
The spline parameters window noted above allows the user to see the actual values of the cubic spline, or other curve fitting, parameters being used to implement rubato over a defined set of points. Referencing to the example illustrated in
Lastly, since the formula to find a tempo change equivalent to a symbolic onset/offset change (and vice versa) is an approximation, the resolution of this conversion can be changed in the Conversion Coarseness section of the spline parameters window. When increasing the resolution, notes of the actual symbolic score are spliced into multiple smaller imaginary notes, allowing for a finer approximation of tempo change as well as the ability for tempo to change between notes as described above.
Once the user has implemented rubato on a symbolic score through some set of points, they can save the data as a separate file for later use and/or additional analysis. In some implementations, the following data can be exported: the values of the cubic spline parameters used to generate the splines from user-defined points; the intervals over which the cubic splines are used, which is determined by the x-coordinates of the user-defined points; the values of the linear spline parameters used to generate the approximate tempo modifications equivalent to the symbolic onset/offset modifications; and the intervals over which the linear splines are used (determined in the same manner as the intervals for the cubic splines).
In addition to simple monophonic melodies, the systems and methods described in the present disclosure can also handle the edge case of symbolic scores with chords as shown in
In some implementations, hierarchical modifications of symbolic onset and/or offset modifications may be used. In these instances, the methodologies used to “split” notes for higher-resolution tempo-approximation described above can be extended to modifications over different voices in the symbolic score. One could then plot spline changes for those specific regions while leaving the overarching score-spanning spline changes untouched, leading to children hierarchies of symbolic rubato.
Additionally or alternatively, in some embodiments, the computing device 1150 can communicate information about data received from the data source 1102 to a server 1152 over a communication network 1154, which can execute at least a portion of the computational rubato system 1104. In such embodiments, the server 1152 can return information to the computing device 1150 (and/or any other suitable computing device) indicative of an output of the computational rubato system 1104.
In some embodiments, computing device 1150 and/or server 1152 can be any suitable computing device or combination of devices, such as a desktop computer, a laptop computer, a smartphone, a tablet computer, a wearable computer, a server computer, a virtual machine being executed by a physical computing device, and so on. The computing device 1150 and/or server 1152 can also reconstruct images from the data.
In some embodiments, data source 1102 can be any suitable source of data (e.g., musical composition data, musical recording data, other audio/video data, previously generated rubato profiles), such as another computing device (e.g., a server storing musical composition data, musical recording data, previously generated rubato profiles), and so on. In some embodiments, data source 1102 can be local to computing device 1150. For example, data source 1102 can be incorporated with computing device 1150 (e.g., computing device 1150 can be configured as part of a device for measuring, recording, estimating, acquiring, or otherwise collecting or storing data). As another example, data source 1102 can be connected to computing device 1150 by a cable, a direct wireless link, and so on. Additionally or alternatively, in some embodiments, data source 1102 can be located locally and/or remotely from computing device 1150, and can communicate data to computing device 1150 (and/or server 1152) via a communication network (e.g., communication network 1154).
In some embodiments, communication network 1154 can be any suitable communication network or combination of communication networks. For example, communication network 1154 can include a Wi-Fi network (which can include one or more wireless routers, one or more switches, etc.), a peer-to-peer network (e.g., a Bluetooth network), a cellular network (e.g., a 3G network, a 4G network, etc., complying with any suitable standard, such as CDMA, GSM, LTE, LTE Advanced, WiMAX, etc.), other types of wireless network, a wired network, and so on. In some embodiments, communication network 1154 can be a local area network, a wide area network, a public network (e.g., the Internet), a private or semi-private network (e.g., a corporate or university intranet), any other suitable type of network, or any suitable combination of networks. Communications links shown in
Referring now to
As shown in
In some embodiments, communications systems 1208 can include any suitable hardware, firmware, and/or software for communicating information over communication network 1154 and/or any other suitable communication networks. For example, communications systems 1208 can include one or more transceivers, one or more communication chips and/or chip sets, and so on. In a more particular example, communications systems 1208 can include hardware, firmware, and/or software that can be used to establish a Wi-Fi connection, a Bluetooth connection, a cellular connection, an Ethernet connection, and so on.
In some embodiments, memory 1210 can include any suitable storage device or devices that can be used to store instructions, values, data, or the like, that can be used, for example, by processor 1202 to present content using display 1204, to communicate with server 1152 via communications system(s) 1208, and so on. Memory 1210 can include any suitable volatile memory, non-volatile memory, storage, or any suitable combination thereof. For example, memory 1210 can include random-access memory (“RAM”), read-only memory (“ROM”), electrically programmable ROM (“EPROM”), electrically erasable ROM (“EEPROM”), other forms of volatile memory, other forms of non-volatile memory, one or more forms of semi-volatile memory, one or more flash drives, one or more hard disks, one or more solid state drives, one or more optical drives, and so on. In some embodiments, memory 1210 can have encoded thereon, or otherwise stored therein, a computer program for controlling operation of computing device 1150. In such embodiments, processor 1202 can execute at least a portion of the computer program to present content (e.g., images, user interfaces, graphics, tables), receive content from server 1152, transmit information to server 1152, and so on. For example, the processor 1202 and the memory 1210 can be configured to perform the methods described herein (e.g., the method of
In some embodiments, server 1152 can include a processor 1212, a display 1214, one or more inputs 1216, one or more communications systems 1218, and/or memory 1220. In some embodiments, processor 1212 can be any suitable hardware processor or combination of processors, such as a CPU, a GPU, and so on. In some embodiments, display 1214 can include any suitable display devices, such as an LCD screen, LED display, OLED display, electrophoretic display, a computer monitor, a touchscreen, a television, and so on. In some embodiments, inputs 1216 can include any suitable input devices and/or sensors that can be used to receive user input, such as a keyboard, a mouse, a touchscreen, a microphone, and so on.
In some embodiments, communications systems 1218 can include any suitable hardware, firmware, and/or software for communicating information over communication network 1154 and/or any other suitable communication networks. For example, communications systems 1218 can include one or more transceivers, one or more communication chips and/or chip sets, and so on. In a more particular example, communications systems 1218 can include hardware, firmware, and/or software that can be used to establish a Wi-Fi connection, a Bluetooth connection, a cellular connection, an Ethernet connection, and so on.
In some embodiments, memory 1220 can include any suitable storage device or devices that can be used to store instructions, values, data, or the like, that can be used, for example, by processor 1212 to present content using display 1214, to communicate with one or more computing devices 1150, and so on. Memory 1220 can include any suitable volatile memory, non-volatile memory, storage, or any suitable combination thereof. For example, memory 1220 can include RAM, ROM, EPROM, EEPROM, other types of volatile memory, other types of non-volatile memory, one or more types of semi-volatile memory, one or more flash drives, one or more hard disks, one or more solid state drives, one or more optical drives, and so on. In some embodiments, memory 1220 can have encoded thereon a server program for controlling operation of server 1152. In such embodiments, processor 1212 can execute at least a portion of the server program to transmit information and/or content (e.g., data, images, a user interface) to one or more computing devices 1150, receive information and/or content from one or more computing devices 1150, receive instructions from one or more devices (e.g., a personal computer, a laptop computer, a tablet computer, a smartphone), and so on.
In some embodiments, the server 1152 is configured to perform the methods described in the present disclosure. For example, the processor 1212 and memory 1220 can be configured to perform the methods described herein (e.g., the method of
In some embodiments, data source 1102 can include a processor 1222, one or more data acquisition systems 1224, one or more communications systems 1226, and/or memory 1228. In some embodiments, processor 1222 can be any suitable hardware processor or combination of processors, such as a CPU, a GPU, and so on. In some embodiments, the one or more data acquisition systems 1224 are generally configured to acquire data, audio data, video data, or combinations thereof. Additionally or alternatively, in some embodiments, the one or more data acquisition systems 1224 can include any suitable hardware, firmware, and/or software for coupling to and/or controlling operations of a musical recording system, a computing device for generating musical composition data, or so on. In some embodiments, one or more portions of the data acquisition system(s) 1224 can be removable and/or replaceable.
Note that, although not shown, data source 1102 can include any suitable inputs and/or outputs. For example, data source 1102 can include input devices and/or sensors that can be used to receive user input, such as a keyboard, a mouse, a touchscreen, a microphone, a trackpad, a trackball, and so on. As another example, data source 1102 can include any suitable display devices, such as an LCD screen, an LED display, an OLED display, an electrophoretic display, a computer monitor, a touchscreen, a television, etc., one or more speakers, and so on.
In some embodiments, communications systems 1226 can include any suitable hardware, firmware, and/or software for communicating information to computing device 1150 (and, in some embodiments, over communication network 1154 and/or any other suitable communication networks). For example, communications systems 1226 can include one or more transceivers, one or more communication chips and/or chip sets, and so on. In a more particular example, communications systems 1226 can include hardware, firmware, and/or software that can be used to establish a wired connection using any suitable port and/or communication standard (e.g., VGA, DVI video, USB, RS-232, etc.), Wi-Fi connection, a Bluetooth connection, a cellular connection, an Ethernet connection, and so on.
In some embodiments, memory 1228 can include any suitable storage device or devices that can be used to store instructions, values, data, or the like, that can be used, for example, by processor 1222 to control the one or more data acquisition systems 1224, and/or receive data from the one or more data acquisition systems 1224; to generate images or other content from data; present content (e.g., data, images, a user interface) using a display; communicate with one or more computing devices 1150; and so on. Memory 1228 can include any suitable volatile memory, non-volatile memory, storage, or any suitable combination thereof. For example, memory 1228 can include RAM, ROM, EPROM, EEPROM, other types of volatile memory, other types of non-volatile memory, one or more types of semi-volatile memory, one or more flash drives, one or more hard disks, one or more solid state drives, one or more optical drives, and so on. In some embodiments, memory 1228 can have encoded thereon, or otherwise stored therein, a program for controlling operation of data source 1102. In such embodiments, processor 1222 can execute at least a portion of the program to generate images, transmit information and/or content (e.g., data, images, a user interface, haptic feedback) to one or more computing devices 1150, receive information and/or content from one or more computing devices 1150, receive instructions from one or more devices (e.g., a personal computer, a laptop computer, a tablet computer, a smartphone, etc.), and so on.
In some embodiments, any suitable computer-readable media can be used for storing instructions for performing the functions and/or processes described herein. For example, in some embodiments, computer-readable media can be transitory or non-transitory. For example, non-transitory computer-readable media can include media such as magnetic media (e.g., hard disks, floppy disks), optical media (e.g., compact discs, digital video discs, Blu-ray discs), semiconductor media (e.g., RAM, flash memory, EPROM, EEPROM), any suitable media that is not fleeting or devoid of any semblance of permanence during transmission, and/or any suitable tangible media. As another example, transitory computer-readable media can include signals on networks, in wires, conductors, optical fibers, circuits, or any suitable media that is fleeting and devoid of any semblance of permanence during transmission, and/or any suitable intangible media.
As used herein in the context of computer implementation, unless otherwise specified or limited, the terms “component,” “system,” “module,” “framework,” and the like are intended to encompass part or all of computer-related systems that include hardware, software, a combination of hardware and software, or software in execution. For example, a component may be, but is not limited to being, a processor device, a process being executed (or executable) by a processor device, an object, an executable, a thread of execution, a computer program, or a computer. By way of illustration, both an application running on a computer and the computer can be a component. One or more components (or system, module, and so on) may reside within a process or thread of execution, may be localized on one computer, may be distributed between two or more computers or other processor devices, or may be included within another component (or system, module, and so on).
In some implementations, devices or systems disclosed herein can be utilized or installed using methods embodying aspects of the disclosure. Correspondingly, description herein of particular features, capabilities, or intended purposes of a device or system is generally intended to inherently include disclosure of a method of using such features for the intended purposes, a method of implementing such capabilities, and a method of installing disclosed (or otherwise known) components to support these purposes or capabilities. Similarly, unless otherwise indicated or limited, discussion herein of any method of manufacturing or using a particular device or system, including installing the device or system, is intended to inherently include disclosure, as embodiments of the disclosure, of the utilized features and implemented capabilities of such device or system.
The present disclosure has described one or more preferred embodiments, and it should be appreciated that many equivalents, alternatives, variations, and modifications, aside from those expressly stated, are possible and within the scope of the invention.
This application claims priority to U.S. Provisional Patent Application No. 63/455,793 filed on Mar. 30, 2023, titled “ADJUSTING MUSICAL COMPOSITION DATA USING A COMPUTATIONAL MODEL OF RUBATO,” the entire contents of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
63455793 | Mar 2023 | US |