The PWM frequency is ~490Hz, which is just not fast-enough to generate nice musical audio tones.
So, you are going to need some kind of oscillator(s) or synthesizer chip(s).
1)play pre-programmed tunes where the light turns on hits a sensor and plays a note.
It would be easier if you "fake" this function. Rather than having your computer (Arduino) control the lasers, and then having the lasers control the sound. It's eaiser if the computer just controls the sound & lasers togther.
I am wondering if this might be the hard way round, are the cheap speakers that are preset at different frequences for different tones. Or will i need to use the arduino to generate the different tones.
That could work. But, you don't need a speaker for each tone. You just need a separate oscillator for each tone, then run all of the outupts into a mixing circuit (summing amplifier).
The downside to this appoach is that if you want to change the tembre or character of the tones, you'd have to change all of the oscillators. An advantage is that you can play multiple notes at the same time (or chords) without any extra circuitry or programming. (It might be easy to get this feature in a music/synth chip, but I don't know what's available.)
Once you get this thing going, if you want to see the laser beams, you might try an [u]ultrasonic mist generator[/u]. These things don't generate as much fog as a fog-generator or smoke machine, but they are cheaper and they run on plain water. (But, it might generate too must moisture and leave everything too-wet if you run it for a long time.)