One of the things about the ev3 is that it can run more than one program at the same time. For example, a program that drives forward a number of rotations, waits, turns and drives forward again is a simple sequence to program. By placing that into a loop, you can drive your robot continuously in a square. But, what if you wanted to play a song at the same time that this was going on? You cant really do that in a single line of programing. This is where parallel tasks (sometimes called multitasking or threading) need to be used.
Watch the following video tutorial by www.stemcentric.com and then try to replicate it on your robot.