Are you familiar with the ECHONEST Remix API? Can you extend the [url removed, login to view] script to do some extra cool things? If so then you are the person I am looking for!
I need the script to read an xml file that describes how songs will be mixed together. Each song can specify the following:
order - the order the song will be placed in
path - the path to the mp3
tempo - the tempo to play the mp3 in (if empty then play as is)
startpos - where to start the song from (if empty then play from start)
endpos - where to end the song (if empty then play to end)
transition - numeric value representing how to transition to the next song (default=1). See Transition Types below.
fade_length - the number of seconds to fade in/out (default=8)
hardswitch_beats - the number of beats the hard switch sample has (if empty then calculate number of beats)
hardswitch_tempo - the tempo of the hard switch sample (if empty the calculate tempo)
Transition Types (how to transition from one song to the next)
1 - this is a fade in fade out transition. Use fade_length to control the length of the fade (already handled by [url removed, login to view])
2 - hard switch. Stop the current song and play the next song. Beat matching must occur (i.e. current song stops on beat 1 and next song starts on beat 1)
3 - hard switch but play sample before switch. The sample could be N beats in length. Match the sample to the tempo and play it N beats before the next song starts. Use hardswitch_beats and hardswitch_tempo values.
1. Output is one mp3 file that contains all songs mixed together. ([url removed, login to view] does this already)
2. Must be scalable to mix at least 50 songs.
3. Optimized for performance so that it doesn't take more than 5-7 seconds to mix two songs.