It has long been known how to electronically reproduce complex sounds such as speech or music. The methods employed to reproduce such sounds have typically been analog in nature. Although the sound quality of these methods is high, the analog signals used cannot be made or processed by digital personal computers.
To allow computers to process complex sounds, the analog sounds are converted to digital representations using an analog to digital converter. The converter periodically samples the analog waveform and provides a series of sample values to the computer. This is called pulse code modulation (PCM) and is a common way to represent analog waveforms digitally. The computer can then process the samples in any desired manner to accomplish the objectives of the user. Conventionally, the processed samples are applied to a digital to analog converter (DAC), which produces an analog waveform that can be heard via the computer's speaker.
The problem with this method is that the standard IBM-compatible personal computer does not have a DAC to create analog signals. Although one could purchase a DAC and connect it to the computer, this may be too expensive, too complicated, and/or simply too much trouble for the ordinary user. Therefore, it is desirable to produce sound using a standard personal computer without employing any additional hardware.
The hardware used to produce sound on a standard IBM PC or compatible computer 10 is shown in FIG. 1. For more technical detail on the computer speaker hardware, one should refer to the IBM XT or AT Reference Manual. Timer 14 is contained on an Intel 8253 timer chip. This chip, or its equivalent, is contained in almost every personal computer. The Parallel Port Interface (PPI) 16 is an Intel 8255A parallel port interface chip, or its equivalent, which again is contained in almost every personal computer.
There are two "orthodox" ways to make a computer speaker 22 produce sound. In the first method (the "timer" method), a CPU 12 programs the timer 14 to pulse at a desired frequency. The PPI 16 controls the transmission of the timer pulses through an AND gate 18 to the speaker 22. The speaker will then emit a harsh tone of the desired frequency, because a pure square wave is being sent to the speaker.
The second method (the "direct" method) manipulates the speaker 22 directly by turning the PPI 16 on and off in an infinite loop, thus manufacturing a square wave. In the direct method, the timer 14 is not used to create a square wave so there is no need for the AND gate 18. The frequency of the sound is controlled simply by controlling the speed of the CPU program which controls the amount of time between ON pulses to the PPI 16.
More detailed explanations and programming information for these two basic methods can be found in Peter Norton's book, "The New Peter Norton Programmer's Guide to the IBM PC & PS/2." Even though the book was first written in 1985, at page 152, he hints that it may be possible to generate more than simple tones from the speaker:
"As far as we know, there is only one advantage to making sounds using the direct method: With the proper control over the program delays, the direct method lets you make a low-fidelity polyphonic sound. Be forewarned, though, that this requires some very clever and tedious programming and, all in all may not be worth the trouble."
With the present invention, making low-fidelity sounds requires very little tedious programming.