PC speaker

Template:Infobox Computer Hardware Generic

A PC speaker is a loudspeaker built into some IBM PC compatible computers. The first IBM Personal Computer, model 5150, employed a standard 2.25 inch magnetic driven (dynamic) speaker.[1] More recent computers use a tiny moving-iron or piezo speaker instead.[2] 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, an Intel 8253 or 8254 chip.[3]

## Contents

* 1 Use cases
* 1.1 BIOS/UEFI error codes
* 1.2 Software
* 1.2.1 Games
* 1.2.2 Other programs
* 2 Pinouts
* 3 Pulse-width modulation
* 4 See also
* 5 Notes
* 6 External links

## Use cases

### BIOS/UEFI error codes

The PC speaker is used during the power-on self-test (POST) sequence to indicate errors during the boot process. Since it is active before the graphics card, it can be used to communicate "beep 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 possible with just ROM and the CPU registers. Usually, different error codes will be signalled by specific beeping patterns, such as e.g. "one beep; pause; three beeps; pause; repeat". These patterns are specific to the BIOS/UEFI manufacturer and are usually documented in the technical manual of the motherboard.

### Software

Several programs, including music software, operating systems or games, could play pulse-code modulation (PCM) sound through the PC speaker using special Pulse-width Modulation techniques explained later in this article.

#### Games

"Paratrooper intro"

File:Paratrooper (video game intro music).ogg

A fragment of J.S. Bach's BWV 565 played through PC speaker as intro to the video game Paratrooper (1982)

|

* * *

Problems playing this file? See media help.

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-1980s, 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.

However, because the method used to reproduce PCM was very sensitive to timing issues, these effects either caused noticeable sluggishness on slower PCs or sometimes failed on faster PCs (that is, significantly faster than the program was originally developed for). Also, it was difficult for programs to do much else, even update the display, during the playing of such sounds. Thus, when sound cards (which can output complex sounds independent from the CPU once initiated) became mainstream in the PC market after 1990, they quickly replaced the PC speaker as the preferred output device for sound effects. Most newly-released PC games stopped supporting the speaker during the second half of the 1990s.

#### Other programs

Several programs, including MP (Module Player, 1989), Scream Tracker, Fast Tracker, Impulse Tracker, and even device drivers for Linux[4] and Microsoft Windows, could play PCM sound through the PC speaker, though with marginal sound quality.

Linux kernel includes the "snd-pcsp.ko" driver module since 2008.[5] Once the module is loaded, the PC speaker can be used as a normal sound card, allowing all programs (applications, graphical desktops, utilities, etc.) to play sounds and music through the PC speaker. By default, Linux kernel loads the "pcspkr.ko" module, that only emits beeps. To get full sounds and music through the PC speaker (and also beeps), you have to unload "pcspkr.ko" and load "snd-pcsp.ko":  `modprobe -r pcspkr && modprobe snd-pcsp`

In the 1990s, a computer virus for Microsoft DOS named "Techno" appeared, playing a melody through the PC speaker while printing the word "TECHNO" on the screen until filled.[6]

## Pinouts

4-pin speaker connector (marked SPK) on motherboard Tiny moving-iron PC speaker uses 4-pin 2-wire connection.

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. Some PC cases come with a PC speaker preinstalled. 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 typically labeled SPEAKER, SPKR or SPK.

4-pin, 3-wire PC speaker pinout[7][8] Pin Number  | Pin Name  | Pin Function

|
|

1  | -SP  | Speaker negative
2  | GND or KEY  | Ground, or unwired key
3  | GND  | Ground
4  | +SP5V  | Speaker positive +5V DC

## Pulse-width modulation

The PC speaker is normally meant to reproduce a square wave via only 2 levels of output (two voltage levels, typically 0 V and 5 V), driven by channel 2 of the Intel 8253 (PC, XT) or 8254 (AT and later) Programmable Interval Timer operating in mode three (square wave signal). The speaker hardware itself is directly accessible via PC I/O port 61H (61 hexadecimal) via bit 1 and can be physically manipulated for 2 levels of output (i.e. 1-bit sound). However, by carefully timing a short pulse (i.e. going from one output level to the other and then back to the first), and by relying on the speaker's physical filtering properties (limited frequency response, self-inductance, etc.), it is possible to drive the speaker to various intermediate output levels, functioning as a crude digital-to-analog converter. This technique is called pulse-width modulation (PWM) and allows approximate playback of PCM audio. (A more refined version of this technique is used in class D audio amplifiers.)

With the PC speaker this method achieves limited quality playback. Nevertheless, a commercial solution named RealSound used it to provide impressive-for-its-time sound on several games.

Obtaining a high fidelity sound output using this technique requires a switching frequency much higher than the audio frequencies meant to be reproduced (typically with a ratio of 10:1 or more), and the output voltage to be bipolar, in order to make better use of the output devices' dynamic range and power. On the PC speaker, however, the output voltage is either zero or at a Transistor-Transistor Logic (TTL) level (unipolar).

The quality depends on a trade-off between the PWM carrier frequency (effective sample rate) and the number of output levels (effective bit depth). The clock rate of the PC's programmable interval timer which drives the speaker is fixed at 1,193,180 Hz,[3] and the product of the audio sample rate times the maximum DAC value must equal this. Typically, a 6-bit DAC[9] with a maximum value of 63 is used at a sample rate of 18,939.4 Hz, producing poor but recognizable audio.[10]

The audio fidelity of this technique is further decreased by the lack of a properly sized dynamic loudspeaker, specially in modern machines and particularly laptops that use a tiny moving-iron speaker (often confused with piezoelectric). The reason for this is that PWM-produced audio requires a low-pass filter before the final output in order to suppress switching noise and high harmonics. A normal dynamic loudspeaker does this naturally, but the tiny metal diaphragm of the moving-iron speaker will let much switching noise pass, as will many direct couplings (though there are exceptions to this, e.g. filtered "speaker in" ports on some motherboards and sound cards).

This use of the PC speaker for complex audio output became less common with the introduction of Sound Blaster and other sound cards.

## See also

* Intel 8253
* RealSound
* Loudspeaker enclosure

## Notes

1. ↑ IBM 5150 Technical Reference. IBM. 1984. pp. 1–25. https://minuszerodegrees.net/manuals/IBM_5150_Technical_Reference_6322507_APR84.pdf.
2. ↑ Rosenthal, Morris (August 2008). Computer Repair with Diagnostic Flowcharts (Revised ed.). Foner Books. p. 9. ISBN 978-0-9723801-7-1. http://www.fonerbooks.com/pcrepair.htm.
3. ↑ 3.0 3.1 "Bran's Kernel Development Tutorial: The Programmable Interval Timer". http://www.osdever.net/bkerndev/Docs/pit.htm.
4. ↑ Sergeev, Stas. "PC-Speaker PCM driver for Linux". http://geocities.com/stssppnn/pcsp.html.
5. ↑ "PC-Speaker support". https://www.kernelconfig.io/config_snd_pcsp.
6. ↑ Nastasi, Alison (2014-07-19). "The World's Worst Computer Viruses Illustrated" (in en). https://www.flavorwire.com/468318/the-worlds-worst-computer-viruses-illustrated.
7. ↑ Ögren, Joakim (1997). The Hardware Book. pp. 290. http://www.accum.se/~stric/tmp/hwb13pdf/hwbook.pdf#page=290.
8. ↑ ASUS P5KPL-AM SE Motherboard manual. ASUSTek Computer Inc.. 2008. pp. 1–13. http://www.lamals.cz/ceniky/datasheety/motherboard/asus/p5kpl_am_se_manual.pdf#page=22. Retrieved 27 February 2017.
9. ↑ Leonard, Jim (2022). "IBM PC Sound Ramblings - The Best Sound You've Never Heard". http://www.oldskool.org/sound/pc/#digitized.
10. ↑ Schlunder, Edward (2006-11-18). "Resistor/Pulse Width Modulation DAC". http://www.k9spud.com/digital-to-analog-converters/resistor-pwm.

## External links

* Smacky Open-source C++ software for playing (monophonic) music on the PC speaker.
* Site for old PC without sound cards.
* Programming the PC Speaker, by Mark Feldman for PC-GPE.
* Programming the PC Speaker, by Phil Inch: part 1, part 2 (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 (superseded by BaWaMI )
* Beep for Linux and Windows, by Frank Buß. APIs for beeping.
* Commandline PC speaker program for Linux FTP
* Practical article on implementing a Linux Kernel Driver
* Timing on the PC family under DOS (Sections 7.5, 7.29, 7.30, and 10.7 – 10.7.4 in particular)

* v
* t
* e

PC sound cards

IBM compatible standards|

* MPU-401 (1984)
* IBM Music Feature Card (1987)
* Roland MT-32 (1987)
* AdLib (1987)
* Covox (1987)
* Roland LAPC-I (1989)
* Sound Blaster (1989)
* General MIDI (1991)
* Pro AudioSpectrum (1991)
* Roland GS (1991)
* Roland Sound Canvas (1991)
* Roland SC-55 (1991)
* Gravis Ultrasound (1992)
* Yamaha XG (1994)
* AC'97 (1997)
* General MIDI Level 2 (1999)
* Environmental Audio Extensions (2001)
* Intel High Definition Audio (2004)

Other standards|

* MML (1978)
* SFG-01 (1983)
* MSX-Audio (1984)
* SFG-02 (1984)
* Tandy (1984)
* MSX-Music (1987)

Related|

* PC speaker
* Comparison of MIDI standards
* MIDI

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/PC speaker. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Engineering:PC_speaker&oldid=4211970"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template