It was interesting to see this video by Daniel Kim about how he makes the music mashups. As a computer teacher in elementary school I was once tasked with trying to make one myself for an assembly. I was given about a week to do it with no formal training in music and none of the proper software. Given these factors, I failed miserably and it sounded awful.
After seeing how Daniel Kim does it and what programs he uses makes me want to try again.
Daniel mentions and uses the following programs to create his masterpieces:
Check out his explanation of using the software, and the theory and time behind his work here: