User Tools

Site Tools


deconstructing_sample-based_electronic_dance_music

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
deconstructing_sample-based_electronic_dance_music [2015/10/25 10:35]
hendrik
deconstructing_sample-based_electronic_dance_music [2015/10/25 11:15] (current)
jonathan
Line 2: Line 2:
  
 | **Authors **| Patricio López-Serrano,​ Hendrik Schreiber, Jonathan Driedger, Richard Vogl, Sebastian Böck| | **Authors **| Patricio López-Serrano,​ Hendrik Schreiber, Jonathan Driedger, Richard Vogl, Sebastian Böck|
-| **eMail** | [[patricio.lopez.serrano@audiolabs-erlangen.de]],​[[jonathan.driedger@audiolabs-erlangen.de]],​[[hs@tagtraum.com]]|+| **eMail** | [[patricio.lopez.serrano@audiolabs-erlangen.de]],​[[jonathan.driedger@audiolabs-erlangen.de]],​[[hs@tagtraum.com]],​[[richard.vogl@jku.at]],​[[sebastian.boeck@jku.at]]|
  
-EDM (Electronic Dance Music) is often constructed from //samples// or //loops//, stacked on top of each other. A common ​pattern ​of EDM artists ​is to start a song with a single loop. While the song builds up, more and more loops are added.+EDM (Electronic Dance Music) is often constructed from //samples// or //loops//, stacked on top of each other. A common ​workflow ​of EDM producers ​is to start a song with a single loop. While the song builds up, more and more loops are added.
  
 {{ :​step1.jpg?​nolink&​400 |}} {{ :​step1.jpg?​nolink&​400 |}}
Line 12: Line 12:
 {{ :​Moby_Porcelain_FullSong.mp3 |}} {{ :​Moby_Porcelain_FullSong.mp3 |}}
  
-The goal of our hack was the following: Given an EDM song that was built up in the way described above, we want to **break it into all the separate loops that were used to create it**. To this end, we came up with an iterative strategy.+The goal of our hack was the following: Given an EDM song that was built in the way described above, we want to **break it into all the separate loops that were used to create it**. To this end, we came up with an iterative strategy.
  
 ===== Step 1: Identifying Isolated Loops ===== ===== Step 1: Identifying Isolated Loops =====
Line 24: Line 24:
 {{ :​Moby_Porcelain_Iteration1_Loop.mp3 |}} {{ :​Moby_Porcelain_Iteration1_Loop.mp3 |}}
  
-We achieve this by first computing a //​self-similarity matrix// (SSM) of a feature representation of the song and identifying a segment in the recording that is frequently repeated. To account for the fact that the repetitions of the sample are most probably superimposed with other loops, we experimented with feature representations and distance measures ​which take this circumstance into account.+We achieve this by first computing a //​self-similarity matrix// (SSM) of a feature representation of the song and identifying a segment in the recording that is frequently repeated. To account for the fact that the repetitions of the sample are most probably superimposed with other loops, we experimented with different ​feature representations and distance measures.
  
  
Line 37: Line 37:
 ===== Step 3: Remove the Loop from the Song ===== ===== Step 3: Remove the Loop from the Song =====
  
-Now, we remove the loop from the song at the identified time positions. This is done in the time-frequency domain where we subtract the spectrogram of the loop point-wise from the spectrogram of the full song (we subtract the magnitudes, capping at 0, and use the phase information of the original song).+Now, we remove the loop from the song at the identified time positions. This is done in the time-frequency domainwhere we subtract the spectrogram of the loop point-wise from the spectrogram of the full song (we subtract the magnitudes, capping at 0, and use the phase information of the original song).
  
 {{ :​step4.jpg?​nolink&​400 |}} {{ :​step4.jpg?​nolink&​400 |}}
  
-The //​remainder//​ of the song in our example sounds like this+The //​remainder//​ of the song — meaning the song without the loops — in our example sounds like this
  
 {{ :​Moby_Porcelain_Iteration1_Remainder.mp3 |}} {{ :​Moby_Porcelain_Iteration1_Remainder.mp3 |}}
Line 48: Line 48:
 ===== Step 4: Iterate ===== ===== Step 4: Iterate =====
  
-To remove ​the next loop, we start from the beginning again.+In the remainder of the song, we now hopefully have another loop that is occurring isolated. ​To remove ​this loop, we start from the beginning again.
  
 {{ :​step5.jpg?​nolink&​400 |}} {{ :​step5.jpg?​nolink&​400 |}}
Line 77: Line 77:
  
  
- 
-I.e. the task is: 
- 
-  - Find a sample that's as //pure// as possible. 
-  - Removethe sample wherever it occurs in the song. 
-  - Repeat. 
- 
-//Pure// in this context is shall mean //​standalone//,​ i.e. a sample that is not polluted by another sample yet. 
- 
-===== Finding pure Samples ===== 
- 
-  - SSM (diagonal median filtered) 
-  - Identify paths that have a certain length and length/​distance relationship 
-  - Pick a path according to the super-secret rules 
-  - Find similar locations in the song 
- 
-To find similar locations in the song, we weren'​t able to use a regular cosine distance function, because we are not looking for absolute similarity, but rather a "​Sample A contains Sample B" relationship. 
- 
-===== Removing samples from the Song ===== 
- 
-In order to remove samples (loops) from the song, we simply subtract the magnitude spectrogram from the original spectrogram and re-synthesize both signal—the remains of the song and the sample we subtracted. 
- 
-===== Repeat ===== 
- 
-We can continue this process for a number of iterations. Results get stranger and stranger... 
deconstructing_sample-based_electronic_dance_music.1445783714.txt.gz · Last modified: 2015/10/25 10:35 by hendrik