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
1 2 Raphaël.js Chart.js
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
% for connection jump: Increasing this will increase the chance that
SwitchBeat will jump on this connection. I have set the default to
# for maximum connections per beat: Increasing this will increase max
number of connections a beat can have. I have set the default to
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
2. Upload songs
You will be asked to upload your songs one by one.
Please upload a
.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
4. Play the Mashup!
Have fun mashing up your favorite songs.