The original IBM PC and later variants used an Intel 8253 or 8254 as a sound chip. Why did users add sound cards such as the Adlib or Sound Blaster. I remember voice output with programs like telephone answering programs. The sound was wimpy but I attributed most of the quality to speaker size. What was lacking with the original PC sound chip?
The PC speaker connected to the i8253 PIT (programmable interval timer) was only for beeping. For better sound you need to bypass the PIT and use the Speaker as an I/O port with a single on/off bit controlled by the CPU.
That way you can generate any sound (even PCM using a nasty PWM technique). The problem was that at that time the CPU was too slow, and consider that I/O operations are usually the slowest, the PWM frequency would not be too high meaning you got only a few levels of "volume" and nasty background high pitch noise. Also this technique consumes a lot of the CPU's time.
For better sound in games and apps you need:
- A DAC
- Low CPU consumption
Neither of which the PC Speaker is capable of (if not using only the PIT and simple square waves). There were 3 alternatives at the time:
LPT DAC like COVOX
A simple R2R bridge with diodes for blocking branching loops (which many DACs ignored at that time) connected to the 8-bit LPT port. This still needed CPU time but just a single out instruction per sample which was much much faster than maintaining PWM as a DAC for the Speaker.
The output of the DAC was connected either to headphones or to speakers if an amplifier was used.
Some of the newer "more advanced" LPT ports also had DMA capability so in such cases this was really cheap (anyone could bust it at home from just a few parts directly onto a Cannon 25-pin connector - not even a PCB was needed) and almost the same as using a SoundBlaster except for the MIDI polyphony... But only an 8 bit DAC was safe as the newer LPT was not fully connected.
(Btw the "more advanced" is a joke as the older LPTs were usually much faster than the new ones, not to mention they had more bits for both input and output. Just for comparison my 386 LPT was capable of ~190KHz transfer and K6 had problems with 80KHz - so much for "advanced"...)
Many music apps, games and demos were capable of using these DACs for sound output.
The game port was also compatible with the MIDI interface and could be used as a as polyphonic synthesizer if one were connected to it externally. This was not used commonly for games, as not everyone has an external MIDI device for this purpose. This was also not capable of PCM reproduction (unless workarounds were used which boils down to high CPU usage like the Speaker PWM).
There were only a few music apps which could use this and usually only musicians used it.
The Creative SoundBlaster is comprised of:
- An ISA interface for interconnecting with the computer.
- A MIDI polyphony generator (latter versions had also WAVETABLE)
So the CPU just configures the DMA to transfer PCM samples from memory to the DAC from time to time and the sound card did the rest. So the CPU usage was very low and the CPU had time for other things like graphics, game logic and user input.
MIDI works similar to the PIT but with much much more options and higher sound quality. SoundBlaster created their own polyphony generator. If you want to know more about it try to Google the AY-8912 chip datasheet which was used for the ZX 128k sound: it is a basic start to polyphony... and would give you an insight into how that works.
This Sound card became the standard...
The original IBM PC and later variants used an Intel 8253 or 8254 as a sound chip.
The 8253 is a timer circuit, containing three timers able to generate timed interrupts or square-wave output with programmed frequencies. On the PC the third timer's output is, via an amplifier, connected to a simple speaker.
As said before, calling a 'simple' timer a sound chip is quite a stretch.
Since it's a digital output, no level control is available. Only on or off is possible. At best this results in rather nasty sounding square waves. There is no provision to smooth the signal (beside the inertia of the speaker membrane).
Also, the only frequencies that can be selected are those that result from dividing the base frequency (1,193,181.8 Hz) by an integer in the range of 1–65535. So even when accepting the meager signal quality, only very few notes can be played at correct frequency. Already the basic 440 Hz concert pitch will be off by .5Hz. So whatever is played using the timer will sound off pitch. Music can still sound good if a little off pitch, but only when all notes are off in the same way (*1) - which is not the case with this 'sound chip'.
Of course, there are also ways to manipulate the sound even a bit better by manually handling the output - which results in 100% CPU time usage.
Why did users add sound cards such as the Adlib or Sound Blaster.
Simply because they wanted sound - or at least music. Not just a beeper.
What was lacking with the original PC sound chip?
As said before, it's no sound chip at all. A sound chip will need programmable oscillators for different wave forms and at least some analogue ciruitry to make a smooth, more natural sound. Ofcourse, from an enginering point, the PC's use of a timer was a great improvement over the Apple II, its model and competition, as it allowed the beeping in parallel - not that this feature was used by BIOS or DOS.
Last but not least, the PC is an open system. It is made to add new/better hardware. So why shoudn't there be a real sound card? Improving the machine is a core feature of the design.
Addendum: agtoever added a comment with a great example of what was possible with the direct fiddling with the speaker. Awesome, but less than apealing when compared to even the cheapest form of soundcard, the AdLib of the same time, as used by Monkey Island. Next to zero CPU usage and crisp clear sound. Not to mention easy programming. I'd call that a huge advantage.
*1 - The average human decodes frequencies relative to each other. As a result sound is still perceived as good, even if the whole scale is shifted, as long as it's in the same direction and same percentage. Output needs to be way off to be noticed by an average listener. In contrast, if notes are off by a different margin and in different directions, even less trained listeners will notice.
Fundamentally, the lack of a specialized Programmable Sound Generator (PSG) or Synthesizer led to game sound effects and music on the IBM PC that were far inferior to competitors' microcomputers and game consoles.
The comparatively inexpensive Commodore 64 had a PSG known as the SID that was capable of synthesized multi-track music, game sound effects, and even crude digitized speech. Such sophisticated sound accompaniment for games wasn't possible with the PC's simple programmable interval timer. Here you can listen to SID music in your Browser.
As the popularity of PC's for gaming grew in the 1980's, the need for better sound to go with the increasingly sophisticated graphics became an impediment to the PC competing with 8-bit systems like the C64 and NES, or newer 16-bit systems from Commodore, Sega, and others. To solve this, first Ad Lib, and then Creative Labs (SoundBlaster), developed ISA cards for the PC with FM Synthesizer chips from Yamaha. Because of the vast superiority these cards offered over the simple interval timer and internal speaker of the PC, game developers quickly added support for them. Hear some sample AdLib Gold music from YouTube.
Here's typical audio from a PC speaker: https://youtu.be/ZLwri0J1S4E
As you can hear, it's really only designed to make beeps of various frequencies, all the same volume level. But by quickly turning the speaker on and off, you can play 1-bit PCM audio. Here's what it sounds like: https://youtu.be/HstgfH9FWV4
And because it's unbuffered, it's very CPU-intensive just to do that PCM audio, so forget about using it in a game without pausing the image.
A simple resistor ladder DAC on the parallel port produces 8-bit PCM audio, a dramatic improvement but unbuffered so still too CPU-intensive for fast action games: https://youtu.be/spOenlrSSOE#t=19m9s
When you add a buffer, it can be used in fast action games: https://youtu.be/EoGCf69QLJc
An alternative is FM synthesis to produce music and simple sound effects without using the CPU: https://youtu.be/nSXlTJLqyL0
The first SoundBlaster had both 8-bit buffered PCM audio and FM synthesis, and could also record in 8 bits.
There is another angle complementing all these answers and even the question:
The original PC was mainly designed and marketed as a boring but "reliable" business machine, building on top of 20-year-old technology on the line of CP/M hardware for lowering the production costs and being able to build machines with off-the-shelf, discrete TTL technology.
So sound and video hardware were not exactly a priority. This also had the side effect that a de facto standard with continuity in time was never established in that department. That further complicated developing software and improving those technologies.
In effect, the meager capabilities of the XT/AT in sound, video, and multitasking were more obvious when comparing it to several contemporary machines, of which notably the Commodore Amiga deserves a special mention.
As other answers correctly point out, the native technology for producing sound was not that much better than a ZX Spectrum (a largely domestic British 8-bit machine contemporary to the XT model), except for the (clever) hack of being possible to drive it with an 825x timer chip.
The IBM PC was designed to be modular. You could put in a cheap sound card or an expensive sound card or no sound card at all. You could put in a cheap video card or an expensive video card. You could add a modem card or ethernet card. Repairing the unit was often done by pulling out cards and trying different cards until the offending card was discovered and replaced. If the mother board was bad, all the cards could be moved to a different motherboard. Upgrading was as easy as adding or replacing a card and installing new drivers. The only reason modern cell phones and tables are not designed this way is issues relating to space. The original "sound chip" could only make a beep. It was used for diagnostic purposes where the number of beeps at start-up gave out diagnostic information or maybe getting the user's attention. Use of the beep sound chip in games was a cheap hack and it sounded cheap.
The built-in PC speaker, although a very "basic" and inexpensive part, could render sound/music/voice about as well as any portable audio device (pocket radio, mini cassette recorder/player, etc.), clock-radio, or speakerphone of the time. That is to say that mid-range such as speech could be clearly understood.
What made built-in PC sound so poor/limited was the fact that the driving signal was a simple on/off (1-bit digital), not analog (variable voltage) fed through a low pass filter (to "round off" the "square" edges of the input waveform). The upper limit of how fast things could happen was determined by the system clock, which in the original system was 4.77MHz (divided down to the 1.19 MHz clock driving the timer chip which controlled the speaker). As a result, sounds could only be crudely approximated. See page 2-22 of the reference manual (with schematics) I found here: http://www.minuszerodegrees.net/manuals/IBM_5150_Technical_Reference_6025005_AUG81.pdf
Doing a little math... the 1.19MHz clock rate limits the 1-bit audio to about 27 possible amplitude levels at 44,000 samples/sec (for about 28dB SNR and an audio frequency range up to 20kHz, assuming the CPU could keep up), or an equivalent of 6-bit audio at about 18,000 samples/sec (for about 36dB SNR and an audio frequency range up to about 8.5kHz), and so forth. A decent sound card should have equalled CD fidelity - 16bit sampling at 44k samples/sec (for about 96dB SNR and an audio frequency range up to 20kHz, on each of two channels).
Bear in mind that the only function the operating system ever offered in relation to the speaker was to make a pre-defined beep sound. It was offered via an O/S call as a simple beep, and used by the BIOS to signal to the user (via sequences of long and short beeps, sort of like Morse code) if the start-up diagnostics encountered any issues like missing keyboard, stuck keys, missing boot device, memory test failure, etc.. Essentially, the role of the speaker was simply a means to alert the user to something, and a beep does the job.
The IBM PC was designed to be a relatively inexpensive tool to run business applications - word processing, spreadsheets, databases, and such (even though a usable system cost as much as a car). Rendering speech was probably seen as a capability unattainable for the target price point, and playing music was not within the scope of the business market it was targeted to.
What IBM probably failed to anticipate is the interest the PC would attract in the home/hobby market due to the "openness" of the system (they published everything, which is what ignited the clone market). It was this spin-off clone market that revealed shortcomings in the original design, but also the extensibility to address them. However, third-party developers of hardware and software had to maintain compatibility with the base design, so true audio solutions (as well as better video, networking, extended/expanded memory etc.) had to be offered as add-on cards.
One major thing the builtin sound hardware lacked was any facility to input/record (but so did the very first IBM soundcard, which was more or less a Yamaha FB-01 on an ISA card).
One further point is that the sound card was an easy way to add a joystick port. This was shared with the midi connector. That was one of the main reasons I bought a second hand SoundBlaster 1.5 for X-Wing.