It’s not true, at least not literally.
MP3 compression does throw away some of the audio information, but it uses a more sophisticated method of doing so.
Using “30 buzzers” and “change the frequency of each buzzer every fraction of a second” is basically a method of synthesis called “additive synthesis” - you can create lots of cool sounds this way, but it can’t do everything.
“Additive synthesis” usually refers to using sine waves (pure tones), which sound more like a hum or a whistle than a buzz. So that would be like using 3 or 30 whistles, rather than buzzers.
The reason that you will not be able to reproduce “real world sounds” this way, is mostly due to not being able to control and vary the frequencies and amplitudes precisely enough. Also, if you look at some audio using a “spectrum” view, you will see that real world sounds are made of thousands of frequencies that are all varying from moment to moment. Recreating a sound with just a handful of “most significant” frequencies will be a crude representation at best. This is how many early “analogue synthesizers” worked, and they produce a very “synthetic” kind of sound - though interesting, and potentially musical.
If you look on Google you should be able to find quite a few free synthesizers to play with. Here’s some links to start with http://www.synthzone.com/softsyn.htm
You can also use “Nyquist programming” in Audacity to synthesize sounds (see the Audacity wiki for more information - link to the wiki at top of this page).
In Audacity 1.3.5, if you create a (mono) audio track, select some of it, then select “Nyquist prompt” from the effects menu, you will get a pop up window where you can type Nyquist commands.
Enter the following code into the Nyquist prompt box:
Then click OK.
This will generate a sine wave at frequency C4 (middle C). See here for information about note names: http://en.wikipedia.org/wiki/Note#Note_name
The generated wave will be full scale (amplitude 0dB), but we can adjust this volume useing the “scale” command like this:
(scale 0.5 (osc c4))
Now lets try generating a different note - say A above middle C
(scale 0.5 (osc A4))
And the C an octave above would be:
(scale 0.5 (osc C5))
But you want to play the sounds altogether. We can do that using the “sim” command (simultaneous).
We will need to reduce the amplitude of each sound to avoid clipping when we add them togeter, so we will reduce the scale factor to 0.3 like this:
(sim (scale 0.3 (osc C4))(scale 0.3 (osc A4))(scale 0.3 (osc C5)))
The “osc” command that we have been using stands for “oscillator” (a simple tone generator, or in your previous terminology, a “buzzer”). There is a very similar command to “osc” which is “sine” - for our purposes it does the same thing, so we could rewrite out Nyquist commands as:
(sim (scale 0.3 (sine C4))(scale 0.3 (sine A4))(scale 0.3 (sine C5)))
This then opens the possibility of using different kinds of oscillators such as “osc-saw” and “osc-tri”.
Try substituting these oscillators in our command like this:
(sim (scale 0.3 (osc C4)) (scale 0.3 (osc-tri A4)) (scale 0.3 (sine C5)))
By changing the notes, oscillators and the volume levels, we can create many different tones.
If you want to try a more advanced synthesis example, here’s a horn-like sound that I created:
(mult (lowpass4 (highpass4 (scale 0.3 (comb (noise) 256 140)) 30) 400) (env 0.1 0.1 1.0 3.0 1.0 0.3 1.0))