Trying to figure out if speaker is safe to use for Arduino synth...

Hello. I have been doing a small project for my school which will incorporate the Arduino Uno. My electronics background is still pretty iffy, but I still try my best to take the right precautions. For the project, I decided to do the Arduino synthesizer shown here:

Now, I finished building it and everything sounds great. BUT as I was lurking around these forums, I ran into a few threads and post about how the speaker should not be directly connected to the Arduino (as shown in the instructable). I'm not sure if I have already permanently damaged my Arduino or not since it SEEMS fine, but I feel like I screwed myself over by following someone on Instructables. So is there actually a proper way in which this synth should be set up or what? I heard the word "amplifiers" being thrown around, but I don't want to purchase them if I don't absolutely need to. I would gladly appreciate any feedback, comments, etc.

btw, the speaker I'm using is 8ohms and 0.5 W

Check out pages 3/4 of the Arduino Basic Connections, on this thread:

http://arduino.cc/forum/index.php/topic,154549.0.html

I just made up the speaker circuit on page 4 of the ABC. For the sake of a few resistors and a transistor worth a few cents, it did a pretty impressive job! I immediately got complaints from the next room about "what the hell was that?".

Ewww. Good stuff. I see that the speaker requires a BC337 transistor. I have a 2N3904 transistor(s). Would I be able to use those or does it even matter?

Thanks for the help Nick.

Looks like the 2N3904 handles a little less current but that probably doesn't matter in your case. I'm not the biggest expert in transistor selection. I didn't actually use a BC337 myself, I found a BC546 in my parts box.