Tuesday, February 20, 2007

More than everything you ever wanted to know about sound

If you never experienced sound on the early home computers, you may not appreciate how sound technology has improved.

The Apple II computer was a big hit when it was released because it was an affordable personal computer that actually had color output (supported a color monitor). Sound generation basically consisted of writing a software command that caused a tiny built-in speaker to click. Yep, that's it. Clever programmers found that if they clicked the speaker fast enough they could produce a tone. By varying the frequency of the clicks, they could make the tone go higher or lower. You can probably imagine that the sound quality was not high. Considering that the 8-bit CPU only ran at 1 MHz, and lots of software was still written in BASIC (not a fast language), sound generation was quite a burden for the CPU.

Another family of home comuters came onto the scene courtesy Atari. Having some prior experience with video game systems, Atari built these machines with a built-in 4 voice sound generator. This was pretty special for 1979. A programmer could tell one of the sound generators to generate a tone, and then go on to the next task. The sound generator would continue to create the noise, without typing up the CPU, until it was given new instructions. These machines also had a speedy 1.8 MHz CPU, plus they actually had a sort of 2d graphics accelerator built-in (another story). Unfortunately, these machines were saddled with a very slow version of BASIC that was lacking important instructions, and subsequent computer models weren't nearly as revolutionary.

Around 1981, the IBM PC came out and quickly stole the scene. How could you not love a machine with a 8/16-bit CPU running at 4.77 MHz? And if you were willing to pony up the $ for a RGB monitor, you could display 80-column text, IN COLOR! Not nearly as game-friendly as the Atari, the IBM PC had the dreaded built-in speaker for sound.

A company called AdLib created a soundcard for the IBM PC that added 11-voice FM sound synthesis. This became a success, and AdLib support became a standard feature for PC software.

The AdLib board was great at generating music (for its time), but not so great for sound effects. A company called Creative Labs created a board called the SoundBlaster. It had the same FM sound chip (Yamaha) as the AdLib, giving it compatibility with current AdLib software, AND it added a single, 8-bit digital sound channel. This allowed for playback of digitzed sound effects, including speech, and this card became a standard addition to PCs for many years. Many competitors tried to come out with similar cards. Unfortunately, if the cards were too similar, Creative Labs would sue the company. If they were not similar enough, they wouldn't be 100% compatible with the many software titles written for the SoundBlaster. That's basically how we ended up with one company producing the vast majority of sound cards.

The one company to overthrow this dynasty was actually a software company. A company called Microsoft brought out a product called Windows. Programs written for Windows don't talk to the sound hardware directly. They make calls to standardized libraries which talk to the sound hardware via device drivers. As Windows programs replaced DOS programs, there was no longer a need for sound hardware to be 100% compatible with the old SoundBlaster. As long as the sound hardware was compatible with Windows, that's all you needed.

Another development came along. Motherboards started including better quality sound. Intel created a standard called AC'97 which allowed for high-quality 16- or 20-bit sound playback. CPUs became faster and faster. Intel replaced AC'97 in 2004 with a new 32-bit standard called HD Audio. CPUs became faster and split into dual/quad cores. Most motherboards today have at least 5.1 capability onboard. If multimedia speed is of great importance, you will still do best with a hardware-accelerated sound solution, like a card from Creative Labs. Otherwise, most built-in solutions sound great. I prefer chips from Analog Devices to those from Realtek. More on this here: http://www.dailytech.com/article.aspx?newsid=3948. Make sure you have a digital output (SPDIF) connector on your PC for the highest quality sound, especially for DVD playback.

A final wrinkle in the saga of computer sound comes with Windows Vista. Vista's Direct X 10 has dropped support for hardware acceleration of audio. More info on this development here: http://news.softpedia.com/news/Creative-Enables-3D-Audio-Acceleration-in-Vista-45154.shtml. Will software developers support Creative Labs directly? Or is our built-in sound good enough?

Surfpup

2 comments:

bondjamesbond said...

the new world record for longest blog

Fang said...

Well Done. But it is not a competition, at least not a length competition.