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
Examples
kumarcode.com/switchbeatexamples.html
Uses
1
2
Raphaël.js
Chart.js
Description
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.