Mixxx is an excellent music mixer that includes many useful features but, basically, it offers two audio channels where you can load any audio file.
Once you have loaded the music, you can play both channels at the same time, and alternate music between them. The Crossfader slider allows you to alternate the music, producing a fade effect. Mixx has a BPM feature that counts the beats of the songs loaded in each channel. In this way, you can syncronize the actual song being played with the next song using the SYNC feature that increases or reduces the speed of the song. Also you can manually change the playback speed rate with the RATE slider and the PERM/TEMP buttons. Mixxx supports different audio formats: wav, mp3, m4a, ogg, aiff, aif, and flac. You can create your own library and have all your favorite music at hand. In the preferences window you can find many parameters that can be adjusted: sound hardware, midi controllers, library, interface, equalizers, crossfader, recording, BPM detection, and Vynil control. If you have enabled two sound cards, you can use one for headphones and the other for the master sound. You have the option to use two deck inputs and you can record your mixes in WAV or AIFF formats. One disadvantage I found is that you can delete files from the library only one by one.
Mixxx is really cool. I can actually feel like a real DJ.