Archive for category remix
Capsule takes a list of tracks and optimizes the song transitions by reordering them and applying automatic beat matching and cross fading to give you a seamless playlist. It is really neat stuff. Here’s an example of a capsule between two Bob Marley songs:
It makes a nice little Bob Marley medley.
Jason writes about Capsule and Earworm and some other new features in remix in his new (and rather awesome) blog: Running With Data – Earworm and Capsule. Check it out.
At SXSW I gave a talk about how computers can help make remixing music easier. For the talk I created a few fun remixes. Here’s one of my favorites. It’s a beat-reversed version of Lady Gaga’s Bad Romance. The code to create it is here: vreverse.py
I’m gearing up for the SXSW panel on remix I’m giving in a couple of weeks. I thought I should veer away from ‘science experiments’ and try to create some remixes that sound musical. Here’s one where I’ve used remix to apply a little bit of a pre-echo to ‘Here Comes the Sun’. It gives it a little bit of a call and answer feel:
The core (choir?) code is thus:
for bar in enumerate(self.bar): cur_data = self.input[bar] if last: last_data = self.input[last] mixed_data = audio.mix(cur_data, last_data, mix=.3) out.append(mixed_data) else: out.append(cur_data) last = bar
An automatic cut-up by Adam Lindsay of this video:
Adam says: No human choices were made in the creation of this video. The video and the audio are always cut in sync with reference to the original: what you see and hear at any given moment are what Rob Sheridan captured in real time with his single camera setup.
Last month I used Echo Nest remix to rearrange a Nickelback song (See From Nickelback to Bickelnack) by replacing each sound segment with another similar sounding segment. Since Nickelback is notorious for their self-similarity, a few commenters suggested that I try the remix with a different artist to see if the musicality stems from the remix algorithm or from Nickelback’s self-similarity. I also had a few tweaks to the algorithm that I wanted to try out, so I gave it go. Instead of remixing Nickelback I remixed the best selling Christmas song of 2009 Rage Against The Machine’s ‘Killing in the Name’.
Here’s the remix using the exact same algorithm that was used to make the Bickelnack remix:
Like the Bickelnack remix – this remix is still rather musical. (Source for this remix is here: vafroma.py)
A true shuffle: One thing that is a bit unsatisfying about this algorithm is that it is not a true reshuffling of the input. Since the remix algorithm is looking for the nearest match, it is possible for single segment to appear many times in the output while some segments may not appear at all. For instance, of the 1140 segments that make up the original RATM Killing in the Name, only 706 are used to create the final output (some segments are used as many as 9 times in the output). I wanted to make a version that was a true reshuffling, one that used every input segment exactly once in the output, so I changed the inner remix loop to only consider unused segments for insertion. The algorithm is a greedy one, so segments that occur early in the song have a bigger pool of replacement segments to draw on. The result is that as the song progresses, the similarity of replacement segments tends to drop off.
I was curious to see how much extra error there was in the later segments, so I plotted the segment fitting error. In this plot, the red line is the fitting error for the original algorithm and the green line is the fitting error for shuffling algorithm. I was happy to see that for most of the song, there is very little extra error in the shuffling algorithm, things only get bad in the last 10% of the song.
You can hear see and hear the song decay as the pool of replacement segments diminish. The last 30 seconds are quite chaotic. (Remix source for this version is here: vafroma2.py)
More coherence: Pulling song segments from any part of a song to build a new version yields fairly coherent audio, however, the remixed video can be rather chaotic as it seems to switch cameras every second or so. I wanted to make a version of the remix that would reduce the shifting of the camera. To do this, I gave slight preference to consecutive segments when picking the next segment. For example, if I’ve replaced segment 5 with segment 50, when it is time to replace segment 6, I’ll give segment 51 a little extra chance. The result is that the output contains longer sequences of contiguous segments. – nevertheless no segment is ever in its original spot in the song. Here’s the resulting version:
I find this version to be easier to watch. (Source is here: vafroma3.py).
Next experiments along these lines will be to draw segments from a large number of different songs by the same artist, to see if we can rebuild a song without using any audio from the source song. I suspect that Nickelback will again prove themselves to be the masters of self-simlarity:
Here’s the original, un-remixed version of RATM- Killing in the name:
There’s a movement this year to take back the Christmas charts from smarmy pop artists churned out by music factories like the X factor and Idol franchises. The kickoff to this movement is this exhortation posted in the ‘Rage Against the machine for Xmas #1‘ Facebook group:
Fed up of Simon Cowell’s latest karaoke act being Christmas No.1?
Me too… So who’s up for a mass-purchase of the track ‘KILLING IN THE NAME’ from December 13th (DON’T BUY IT YET!) as a protest to the X-Factor monotony?
Now ‘Killing in the name’ isn’t exactly your typical Christmas song, so to help get people into the spirit of the projects I thought I would try to make the song be a bit more appealing to those with traditional Christmas music sensibilities. And so, I fired up the Echo Nest Jingler and generated a Christmas version of ‘Killing in the Name’. (The Jingler is a bit of software that will Xmas-ify any song by automatically adding sleigh bells, signal bells and the occasional Santa-ho). Here are the results:
This is just to get you in the Rage against Christmas mood. Remember to buy the track on December 13.
I saw that Nickelback just received a Grammy nomination for Best Hard Rock Performance with their song ‘Burn it to the Ground’ and wanted to celebrate the event. Since Nickelback is known for their consistent sound, I thought I’d try to remix their Grammy-nominated performance to highlight their awesome self-similarity. So I wrote a little code to remix ‘Burning to the Ground’ with itself. The algorithm I used is pretty straightforward:
- Break the song down into smallest nuggets of sound (a.k.a segments)
- For each segment, replace it with a different segment that sounds most similar
I applied the algorithm to the music video. Here are the results:
Considering that none of the audio is in its original order, and 38% of the original segments are never used, the remix sounds quite musical and the corresponding video is quite watchable. Compare to the original (warning, it is Nickelback):
The Berlin Music Hackday is nearly upon us. Ben Lacker (a.k.a. DJ API) will be representing the Echo Nest at this wonderful event. If you want to maximize your hacking time during the hackday there are a few things that you can do in advance to get ready to hack on the Echo Nest APIs:
- Get an Echo Nest API Key – If you are going to be using the API, you need to get a key. You can get one for free from: developer.echonest.com
- Read the API overview – The overview gives you a good idea of the capabilities of the API. If you are thinking of writing a remix application, be sure to read Adam Lindsay’s wonderful remix tutorial.
- Pick a client library – There are a number of client libraries for The Echo Nest – select one for your language of choice and install it.
- Think of a great application - easier said than done. If you are looking for some inspiration, checkout these examples: morecowbell, donkdj, Music Explorer FX, and Where’s the Pow? . You’ll find more examples in the Echo Nest gallery of Showcase Apps. If you are stuck for an idea ask me (firstname.lastname@example.org) or Ben – we have a list of application ideas that we think would be fun to write.
At the end of the hackday, Ben will choose the Most Awesome Echo Nest Hackday Application. The developer of this application will go home a shiny new iPod touch. If you want your application to catch Ben’s eye write an Echo Nest application that makes someone say “woah! how did you do that!”, extra points if its an application with high viral potential. Check out the list of hacks created at the London Music Hackday to get inspiration.