SYSTEM AND METHOD OF CREATING AND RECREATING A MUSIC MIX, COMPUTER PROGRAM PRODUCT AND COMPUTER SYSTEM
20200402544 ยท 2020-12-24
Inventors
Cpc classification
G10H2240/305
PHYSICS
G10H2240/131
PHYSICS
G10H2210/061
PHYSICS
G11B27/28
PHYSICS
G10H1/0025
PHYSICS
G11B27/10
PHYSICS
G10H2240/325
PHYSICS
International classification
Abstract
Methods of creating and recreating a mix instructions file for mixing two or more music tracks are disclosed including the comparison of the music tracks used in creation and recreation, respectively. If possible and necessary, the recreation music tracks may be adjusted to correspond better to the creation music tracks.
Claims
1. A computer-based 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 used when creating the mix instructions file, 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 a. Providing a consumption audio music track to be controlled by the control information b. Obtaining waveform data related to the consumption music track c. Comparing waveform data related to the consumption music track to the waveform data related to the creation music track d. Depending on the result of the comparison, deciding whether to use the consumption music track when reconstructing the music mix, e. If the decision in step d is positive, reconstructing the music mix by applying the control information to the consumption music track.
2. A method according to claim 1, further comprising a. Determining an adjustment of timing and/or gain to be applied to the consumption music track to compensate for a difference between the creation music track and the consumption music track b. Applying the adjustment to the consumption music track when reconstruction the music mix
3. A method according to claim 1, wherein the mix instructions file 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.
4. A method according to claim 1, wherein the comparison of the waveform data further includes 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.
5. A method according to claim 1, wherein the comparison of the waveform data further includes 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.
6. A method according to claim 1, wherein the waveform data 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.
7. A method according to claim 1, comprising the step of, if the decision in step d is negative, changing the mix to exclude the consumption music track.
8. 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.
9. A method according to claim 8, wherein 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.
10. A method according to claim 8, wherein the information from the beat/waveform analysis comprises information about one or more synchronization points identified in the creation music track.
11. A method according to claim 8, further comprising identifying the position of at least one transient in the creation music track, and including information about the position in the integrity data.
12. A method according to claim 8, further comprising 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.
13. A computer program product comprising computer readable code means which, when run in a computer will cause the computer to perform the method according to any one of the preceding claims.
14. A computer system comprising a computer program product according to claim 13.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0034] The invention will be described in more detail in the following, by way of example and with reference to the appended drawings, in which
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
DETAILED DESCRIPTION
[0041] 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.
[0042]
[0043]
[0044] 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.
[0045] In step S23 the music track is analyzed, for example according to the method illustrated in box a) of any of the
[0046] 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.
[0047] 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.
[0048] 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
[0049]
[0050] In a first step S31 a mix instructions file is obtained, typically downloaded from a server for example through the Internet.
[0051] 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.
[0052] 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.
[0053] 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.
[0054] 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.
[0055]
[0056] In
[0057] The beat/waveform metadata 43 typically comprises [0058] a beat grid, i.e. an array of timings marking the beats of the track [0059] waveform data, i.e. an array of signal amplitudes for each interval of the track. A suitable time interval may be, for example 100 ms
[0060] In step S42, one or more portions of the track are identified. The portions should preferably have the following properties: [0061] They should have a unique waveform shape, that is, one that is only found once in the track [0062] They should have a strong and temporally isolated transient [0063] They should be located near to where the mixing is likely to occur, typically near the beginning or the end of the track. Preferably one portion near the beginning and one portion near the end are identified.
[0064] 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.
[0065] In subprocess b) of
[0066] 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.
[0067]
[0068] Because of the additional step of performing a beat/waveform analysis in the consumption subprocess, the method according to
[0069]
[0070] 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.
[0071] 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.
[0072] In subprocedure b) of
[0073] Because of the additional data provided in subprocedure a) as mix integrity analysis data, the embodiment of