A PC speaker is a loudspeaker built into most IBM PC compatible computers. The first IBM Personal Computer, model 5150, employed a standard 2.25 inch magnetic driven speaker.[not in citation given] More recent computers use a piezoelectric speaker instead. The speaker allows software and firmware to provide auditory feedback to a user, such as to report a hardware fault. A PC speaker generates waveforms using the programmable interval timer.
BIOS error codes
The PC speaker is generally the first output device to be activated during the boot process. Since it is active before the graphics card, it can be used to communicate error codes related to problems that prevent the much more complex initialization of the graphics card to take place. For example the Video BIOS usually cannot activate a graphics card unless working RAM is present in the system, while beeping the speaker is doable with just ROM and the CPU registers. Usually, different error codes will be signaled by specific beeping patterns, such as e.g. "one beep; pause; three beeps; pause; repeat". These patterns are motherboard specific and are usually documented in the technical manual of the motherboard.
The PC speaker was often used in very innovative ways to create the impression of polyphonic music or sound effects within computer games of its era, such as the LucasArts series of adventure games from the mid-1990s, using swift arpeggios. Several games such as Space Hulk and Pinball Fantasies were noted for their elaborate sound effects; Space Hulk in particular even had full speech.
Several programs, including MP (Module Player, 1989), ScreamTracker, Fast Tracker, Impulse Tracker, and even device drivers for Linux and Microsoft Windows, could play pulse-code modulation (PCM) sound through the PC speaker using special techniques explained later in this article.
Modern Microsoft Windows systems have PC speaker support as a separate device with special capabilities - that is, it cannot be configured as a normal audio output device. Some software uses this special sound channel to produce sounds. For example, Skype can use it as a reserve calling signal device for the case where the primary audio output device cannot be heard (for example because the volume is set to the minimum level or the amplifier is turned off).
In some applications, the PC speaker is affixed directly to the computer's motherboard; in others, including the first IBM Personal Computer, the speaker is attached by wire to a connector on the motherboard. A wired PC speaker connector may have a two-, three-, or four-pin configuration, and either two or three wires. The female connector of the speaker connects to pin headers on the motherboard, which are sometimes labeled SPEAKER or SPKR.
|Pin Number||Pin Name||Pin Function|
The PC speaker is normally meant to reproduce a square wave via only 2 levels of output. However, by carefully timing a short pulse (i.e. going from one output level to the other and then back to the first), it is possible to drive the speaker to various output levels in between the two defined levels. This effectively allows the speaker to function as a crude DAC, thereby enabling approximate playback of PCM audio. This technique is called pulse-width modulation (PWM) and is notably used in class D audio amplifiers.
With the PC speaker, this method achieves limited quality playback; the quality depends on a trade-off between the PWM carrier frequency (effective sample rate) and the number of output levels (effective bitrate). The clock rate of the PC's programmable interval timer which drives the speaker is fixed at 1,193.18 kHz. This relatively low modulation frequency limits the resolution and produces poor but recognizable audio.
- "Specifications of the IBM 5150 PC". Retrieved 2011-02-04.
- Rosenthal, Morris (August 2008). Computer Repair with Diagnostic Flowcharts (Revised ed.). Foner Books. p. 9. ISBN 978-0-9723801-7-1.
- Osdever.net "The PIT: A System Clock". Retrieved 2011-02-04.
- Sergeev, Stas. "PC-Speaker PCM driver for Linux". Archived from the original on 2009-10-26. Retrieved 2009-02-15.
- Edward Schlunder (2006-11-18). "Resistor/Pulse Width Modulation DAC". Retrieved 2011-05-15.[dead link]
- Smacky Open-source C++ software for playing songs on the PC speaker.
- Site for old PC without sound cards.
- GameDev.net article on programming the PC Speaker.
- Part 1 of another article about programming the PC speaker.
- Part 2 of the article
(includes a very detailed explanation of how to play back PCM audio on the PC speaker, and why it works)
- Bleeper Music Maker A freeware to use the PC speaker to make music
- Article about programming PC speaker using C++
- Commandline PC speaker program for LinuxFTP
- Practical article on implementing a Linux Kernel Driver