Nikhil Kumar bio photo

Nikhil Kumar

A stylish blog on my code

Gmail LinkedIn Github Résumé



I decided to spend my winter break programming something I was interested in. I really enjoy listening to mashups, which are two or more songs that are combined into one. I often enjoy listening to mashups in r/mashups on Reddit. I thought it would be really cool to make a program that dynamically mashups any two songs that you provide. I have spent most of my winter break working on this. It is by far the largest program I have ever written.

Check it out





Takes any two songs that you supply and creates a mashup between them.

How it works

The program was inspired by the infinite jukebox. Music Analysis is done on the Echonest servers. SwitchBeat uses this analysis to compare the beats of both songs. Using this analysis it creates a normally distributed beat distance dataset. Then using the parameters you specify it generates connections between both songs.

How to use it

1. Select the parameters

% for music connections: Increasing this will increase the number of connections created. I have set the default to 5%.
% for connection jump: Increasing this will increase the chance that SwitchBeat will jump on this connection. I have set the default to 30%.
# for maximum connections per beat: Increasing this will increase max number of connections a beat can have. I have set the default to 4.
on/off for Infinite Mode: If it is on, when the program reaches the end of one song it will jump to the start of another. I have set the default to on.

2. Upload songs

You will be asked to upload your songs one by one. Please upload a .mp3, .flacs, .m4a, or .opus will not be accepted. Try to upload in good quality 320 kbps or V0 is fine

3. Wait for the analysis to finish

I have created a neat loading animation using chart.js

4. Play the Mashup!

Have fun mashing up your favorite songs.