摘要 |
<p>A computer system and method for performing wavetable music synthesis uses system memory (202) to store wavetable data (222) and minimizes audio infidelity introduced by wavetable data access latency. The system comprises a system memory (202) which stores wavetable data (222) an I/O bus (206) coupled to the system memory (202), and a system audio device (220). The system audio device (220) comprises an I/O bus interface (330) coupled to the I/O bus (206), a synthesizer (340, 350) which generates sounds in response to the wavetable data (222) a plurality of buffers (360) coupled to the I/O bus interface (330) and to the synthesizer (350) for buffering the wavetable data from the system memory (202), and a buffer manager (370) coupled to the I/O bus interface (330), the synthesizer (340, 350), and the plurality of buffers (360). The buffer manager (370) manages transfers of the wavetable data (222) from the system memory (202) to the buffers (360) and from the buffers (360) to the synthesizer (350). The synthesizer (340, 350) generates a request to the buffer manager (370) for wavetable samples. If the samples do not reside in the buffers (360) and the buffer manager (370) is unable to retrieve the samples from the system memory (202) within a desired frame time, the synthesizer (340, 350) outputs surrogate values until the samples become available. The synthesizer (340, 350) calculates the surrogate values so as to avoid producing audible artifacts in the sound generated by the synthesizer. The synthesizer (340, 350) calculates the surrogate values according to one of two methods. The first method is to simply output the last valid value calculated by the synthesizer (340, 350). The second method is to ramp the value toward zero at a rate defined as the fastest rate which does not produce audible artifacts.</p> |