A "music mixer", as described herein, provides a capability for
automatically mixing arbitrary pieces of music, regardless of whether the
music being mixed is of the same music genre, and regardless of whether
that music has strong beat structures. In automatically determining
potential mixes of two or more songs, the music mixer first computes a
frame-based energy for each song. Using the computed frame-based
energies, the music mixer then computes one or more potentially optimal
alignments of the digital signals representing each song based on
correlating peaks of the computed energies across a range of time
scalings and time shifts without the need to ever compute or evaluate a
beats-per-minute (BPM) for any of the songs. Then, once one of the
potentially optimal time-scalings and time-shifts has been selected, the
songs are then simply blended together using those parameters.