The present invention relates to a system and a method for creation and playback, or recreation, of a music mix, computer program products and computer systems for performing the methods.
Disc jockeys have been able to mix recorded music tracks together for many years, to manipulate the sound and to make transitions between music tracks to create a unique mix of sounds. Originally, a disc jockey would work with gramophone records. It has been possible for many years to create digital DJ mixes by means of computers and to store them electronically. The first digital mixes contained both the music tracks and the effects applied to them. Sharing such tracks was problematic both technically and legally. Such a mix track could be very large and take a long time to transmit. Also, the sharing of music tracks caused copyright problems as the creator of the mix often was not allowed to share the music tracks used in the mix.
These two problems are solved by the method proposed in EP 2036089 to create a DJ mix by creating a mix instructions track which does not contain the music tracks themselves but only information related to which music tracks to play when and how to manipulate them.
Anyone can play back the mix, as long as the correct music tracks are available. Today, these music tracks can be retrieved, for example, from streaming services such as Spotify or Apple Music, or from private databases.
It is a problem that the same music track can be found in different tracks with different properties, in particular different offsets in time (that is, the music starts at different times within the track but is otherwise identical) and/or gain. EP 2304726 proposes a method of comparing two music tracks having the same audio content but starting at different points in time within the tracks to handle any difference in timing so that the resulting mix will be independent of which music track is used.
In addition to the same version being stored in slightly different files, there may also be several different versions of the same song, even by the same performer, recorded at different times, live or in the studio, etc. In some cases, for example, a provider of music tracks or streaming service will provide different versions of the same song as the default version in different parts of the world. The tracks may differ not only in the timing but in the actual audio content, for example, tempo, instrumentation, gain and balance.
There is a desire to enable the use of a track comprising a first version of a music piece in a mix that was created using a second version of the music piece.
At the same time music mixes are often played on small units such as smartphones or tablets. Such units typically have limited CPU capacity and often connect to the Internet using connections of limited bandwidth or limitations on the amount of data that may be downloaded. Also, they are often battery driven and there is a desire to keep the current consumption as low as possible.
It is an object of the present invention to recreate a music mix using potentially different versions of the tracks' audio data, in particular in a way that is feasible for use with a mobile phone or tablet.
The invention relates to a method of recreating a music mix based on a mix instructions file, wherein the mix instructions file comprises information identifying at least one creation music track, waveform data related to the creation music track, and control information controlling the playback of the at least one creation music track, said method comprising
Hence, the method of recreating a music mix enables a comparison of the consumption music track with the creation music track used to create the mix, to determine if the consumption music track is similar enough to the creation music track that it can be used in the music mix and generate the same or acceptably similar output result as the creation music track.
According to one embodiment, the method further comprises the steps of
This will enable the use, when recreating the mix, of consumption music tracks that are similar but not identical to the creation music tracks, by adjusting the consumption music track for correctable differences. Such correctable differences may typically be offsets in timing or gain.
The mix instructions file preferably comprises information about at least one synchronization point defined for the creation music track and the method comprises the step of searching for at least one point in the consumption music track that is similar to the at least one synchronization point in the creation music track. This simplifies the comparison. Especially, the synchronization points should be selected at portions of the creation music tracks where the waveform is easily distinguishable from other portions of the same track. Even in highly repetitive music, there are at least two distinctive portions: the beginning and the end. Choosing distinguishable portions will minimize the risk of false matches.
Waveform data encompasses any representation of the distribution of acoustic energy over time and/or frequency.
The comparison of the waveform data may further include the steps of providing mix integrity data related to the position of at least one transient in the creation music track, identifying a corresponding transient in the consumption music track and comparing the positions of the transient in the two music tracks.
Additionally, or alternatively, the comparison of the waveform data may further include the steps of providing mix integrity data related to the spectrotemporal energy distribution of a portion of the creation music track and comparing it to the spectrotemporal energy distribution of a corresponding portion of the creation music track.
The waveform data may be selected so that they are related to a particular portion of the music track, preferably near the beginning of the music track and/or near the end of the music track.
If the decision in step e is negative, the mix may be changed to exclude the consumption music track. This will normally be done if it is not possible to adjust the consumption music track to be similar to the creation music track.
The invention further relates to a method of creating a music mix instructions file comprising providing at least one creation music track and including in the mix instructions file control information controlling the playback of the at least one creation music track, further comprising identifying integrity data related to the creation music track and storing said integrity data in association with the mix instructions file. In this way, the waveform data related to the creation music track, to be used in the method of recreating the music mix, can be obtained.
In a preferred embodiment, the step of identifying integrity data comprises performing a beat/waveform analysis of the creation music track and including information from the beat/waveform analysis in the integrity data. The mix instructions file typically already contains musical beat analysis data and waveform data of the creation music track, which can be leveraged to optimize the integrity analysis, in both required data size and computational cost.
The information from the beat/waveform analysis contains information about the entire track, and thus specifically also about the temporal regions around the synchronization points identified in the creation music track. This will facilitate the comparison of a consumption music track with the creation music track, since the comparison may be made for the synchronization points.
The creation method may further comprise identifying the position of at least one transient in the creation music track, and including information about the position in the integrity data. This will make the method faster and more reliable.
The creation method may further comprise providing mix integrity data related to the spectrotemporal energy distribution of a portion of the creation music track including information about the spectrotemporal energy distribution in the integrity data. This will also serve to make the method faster and more reliable.
The invention also relates to computer program products comprising computer readable code means which when run in a computer will cause the computer to perform one of the methods above. The code means may be stored on any type of suitable storage medium, for example a non-transitory storage medium.
The invention also relates to a computer comprising a processor and a program memory comprising a computer program product according to the above.
The invention will be described in more detail in the following, by way of example and with reference to the appended drawings, in which
For clarity, in this document the music tracks used when creating the mix will be referred to as creation tracks or creation music tracks. The music tracks used when playing the mix will be referred to as consumption tracks or consumption music tracks. Similarly, the data used to identify the files will be referred to as creation data/creation metadata and consumption data/consumption metadata, respectively. As will be understood, the creation tracks and the consumption tracks are essentially the same type of track and the same music track may be used both as a creation music track and as a consumption music track.
In step S22 a music track is selected among the tracks identified in step S21. The music track may be identified as a music track referenced in a mix instructions track or may be selected for some other reason, that is, step S21 is not compulsory.
In step S23 the music track is analyzed, for example according to the method illustrated in box a) of any of the
In step S24 the data obtained in step S23 are stored. The data may be stored or in, or in connection with the mix instructions track, or in a database holding mix integrity data for a number of music tracks, or in connection with the music track to which it relates.
Of course, the music tracks for analysis may be selected in any suitable way. For example, one or more tracks provided by a particular provider may be analyzed even if they are note currently used in a mix, to provide a database of mix integrity data for a number of tracks for future use.
Mix integrity estimation can be made more efficient in computation, storage and bandwidth by utilizing distributed waveform data that have already been obtained for other purposes. According to the invention the waveform data may be kept very small, preferably about 3 kb per track
In a first step S31 a mix instructions file is obtained, typically downloaded from a server for example through the Internet.
In step S32, one or more music tracks used in the mix are identified and creation data for each of the music tracks, as obtained in steps S23 and S24, are obtained. The music tracks may be identified by searching the mix instruction track obtained in step S31 and identifying the creation music tracks used in the mix. There may also be a separate list of the tracks included in the mix. The mix integrity data for each music track may be included in the mix instructions track. Alternatively, it may be provided in some other way, for example from a database holding mix integrity data for a number of music tracks.
In step S33 consumption data are obtained for each consumption music track. The consumption data may be obtained by retrieving each consumption music track and analyzing it or may be fetched from a database holding the data. Alternatively, the consumption data may be provided together with each consumption music track. The synchronization points defined in the creation music track, and the characteristics, such as waveform in these synchronization points, are identified and used to search for similar points in the consumption music track.
In step S34 the consumption data obtained in step S33 and the creation data obtained in step S32 are compared. In step S35 it is determined if the result is a perfect match between the two music tracks or not. If yes, the consumption music track obtained in step S33 is used in the mix, in step S38. If no, the procedure continues with step S36, in which the nature or severity of the differences is determined. If it is determined that the music track may be used in the mix after some adjustments, the procedure continues with step S37, in which the adjustments are determined and applied to the music track. The adjustments typically involve applying the necessary offset in gain and/or time. In step S38 the mix is played back using the consumption music tracks identified and adjusted as needed. If it is determined that the creation music track and the consumption music track are too different, the consumption music track is discarded. In that case, it may be possible to search for another music track offered by the same provider or a different provider. If no sufficiently similar music track can be found, it may be necessary to adapt the mix so that it can be played without the music track, as indicated by step S39.
The new consumption data obtained in step S33 may also be stored for future use, either locally or in a database associated with the music provider. It may also be used together with the creation data to build a database mapping different versions of a music track to each other.
In
The beat/waveform metadata 43 typically comprises
In step S42, one or more portions of the track are identified. The portions should preferably have the following properties:
A suitable duration of each portion is 5-10 seconds. It is advantageous to find portions that are not too repetitive and/or smooth, to ensure precise and unambiguous estimation of timing.
In subprocess b) of
The consumption music track 46 is used, together with waveform data 48, which are the same as the waveform data 43, obtained from the mix file 45, as input to a mix integrity estimation step S49. Mix integrity estimation includes estimating the difference in timing and volume between the tracks as well as the similarity in general. Preferably a number of synchronization points have been defined in the creation music track 41, in step S23, to facilitate the comparison. In this step, assuming that the music contents of the two tracks are essentially similar, for example, an offset in timing may be determined so that it can be corrected. Offset in timing and amplitude is estimated by searching for offsets in timing and amplitude that maximize the similarity of the waveforms. The result will be a correction estimate 410, which will determine any adaptations necessary so that the consumption music track 46 will generate the same result as using the creation music track 41. The correction estimate is obtained as outlined by steps S34-S38.
Because of the additional step of performing a beat/waveform analysis in the consumption subprocess, the method according to
The mix integrity data 64′ comprise a high-precision timing of the strongest transient in the portion (e.g. sub-millisecond resolution). Optionally the mix integrity data may also comprise a spectrogram or some other type of spectrotemporal description of the portion. The spectrogram will enable a coarse but robust estimate of timing, while the transient will give exact but ambiguous estimate. because there can be several transients. These two can be combined, into a single estimate that is both robust and exact.
The transient detection may be implemented in any suitable way, as long as the same method is used by the MI creator as the consumer. A straight-forward approach would be to trace amplitude envelopes in audio sub-bands, sum those, and apply a high-pass filters to that sum. The peak with the maximum amplitude in that resulting signal is registered as the strongest transient, and the timing of that peak is registered as the temporal position of the transient.
In subprocedure b) of
Because of the additional data provided in subprocedure a) as mix integrity analysis data, the embodiment of
Number | Date | Country | Kind |
---|---|---|---|
1730340-5 | Dec 2017 | SE | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2018/083751 | 12/6/2018 | WO | 00 |