Can I make 3D spheres to deform/pulse in sync with audio?
I had so much fun re-creating this effect that I ended up doing it twice. You can see the final results (with sound) here.

Unfortunately a step-by-step guide to creating exactly what I made would be a bit long for an answer, so instead I'll summarize the process, with lots of links to other more specific answers.
The basic idea is this:

Create an empty (⇧ ShiftA&gt; Empty) and keyframe an arbitrary transform channel (I) (using an empty's transform makes setting up drivers a little quicker later on)

Use Graph editor &gt; Bake Sound to Fcurve.
If you want to get fancy you can bake several empties (or several transform channels) with different frequency ranges (for example, if you want to change the scale with the amplitude of bass sounds while changing the color with higher pitched sounds)

Use drivers to control whatever settings you want (object scale, subdivision levels, or even cycles materials) based on the empty's baked transform channel.
The reason for baking to an intermediate empty rather than directly to the property you want to animate is solely for ease of tweaking. With a driver you can e.g. use an expression to adjust the amplitude later on, or use multiple drivers to drive multiple properties off of a single empty.


With that in mind, I used a cube with some modifiers to create the sphere:


Subsurf To add more geometry to the cube
Cast To make the subsurfed cube spherical (note the Factor is set to 1)
Displace To produce the actual distortions. The texture used for this modifier is on the top right. The empty used for the texture's coordinate space has a random rotation animation generated with a noise fcurve modifier.
Cast (again) To flatten the displacements back towards a sphere a bit, but not all the way. Note the Factor on this one is &lt; 1
Smooth Just to smooth out annoying wrinkles

Other points of interest in this screenshot:

The material used for the main sphere
The material used for the duplispheres (small dots)
The driver expression used to drive the displacement modifier strength (the referenced empty's Y location is driven by a sound-baked fcurve). To add a little &quot;pep&quot;, the raw value is multiplied by 5 (totally arbitrary choice on my part) then taken to the second power. min() provides a quick way to limit the maximum value the driver will produce; e.g. min(somenumber, 1) can only ever return numbers &lt; 1.

To create the dots I duplicated this cube and used dupliverts to render the second cube's vertices as icospheres, and added a driver to the subdivision level on the subsurf modifier.