Claims
- 1. A digital sampling instrument for the multichannel interpolative playback of digital audio data samples stored in a waveform memory operating in waveform memory cycles comprising:
- an interpolator circuit sharing said waveform memory with one or more other circuits;
- said interpolator circuit producing a bus request signal and responsive to a bus acknowledge signal; and
- memory interface logic responsive to said bus request signal and producing said bus acknowledge signal for determining if said interpolator circuit has control of the waveform memory during any given one of said waveform memory cycles.
- 2. The digital sampling instrument of claim 1 wherein said interpolator circuit has memory address and control signals capable of being output disabled in response to said bus acknowledge signal.
- 3. A digital sampling instrument for the multichannel interpolative playback of digital audio data samples stored in a waveform memory operating in waveform memory cycles comprising:
- a plurality of interpolators utilizing said waveform memory;
- each of said interpolators producing a respective unique request signal;
- logic responsive to said request signals and producing a bus acknowledge signal; and
- each of said interpolators being responsive to said acknowledge signal for determining which one of said interpolators has control of the waveform memory during any given one of said waveform memory cycles.
- 4. An apparatus for the multichannel interpolative access of digital audio data samples stored in a waveform memory, comprising:
- a cache memory having a size sufficient to store two or more waveform samples for a plurality of said channels;
- a cache controller configured to write said waveform samples into said cache memory so that said samples are available for real time audio interpolative playback; and
- an interpolator configured to interpolate, responsive to a variable input, between two adjacent ones of said waveform memory samples to form an interpolation result.
- 5. The apparatus of claim 4 wherein said cache controller addresses said cache memory for read and write operations such that a write operation overwrites data for a channel that has already been read for a given sample point.
- 6. The apparatus of claim 5 wherein a write operation overwrites a waveform sample for the same channel.
- 7. The apparatus of claim 4 wherein said cache controller addresses said cache memory with an address having most significant bits corresponding to a channel, and least significant bits corresponding to a least significant portion of an address for a waveform sample for said channel.
- 8. The apparatus of claim 4 wherein said cache memory comprises a plurality of memory chips, and wherein said cache controller is configured to read a waveform sample for a first channel while concurrently writing a waveform sample for a second channel.
- 9. The apparatus of claim 4 wherein said interpolator comprises a hardware circuit.
- 10. The apparatus of claim 4 further comprising:
- a shared bus coupling said interpolator to said waveform memory; and
- wherein said cache controller accesses said waveform memory over said shared bus.
- 11. The apparatus of claim 4 wherein said cache controller addresses said cache memory with an address having first bits corresponding to a channel, and second bits corresponding to an address for a waveform sample for said channel.
- 12. A method for the multichannel interpolative access of digital audio data samples stored in a waveform memory, comprising:
- accessing a cache memory having a size sufficient to store two or more waveform samples for a plurality of said channels so that said samples are available for real time audio interpolative playback; and
- interpolating, responsive to a variable input, between two adjacent ones of said waveform memory samples to form an interpolation result.
- 13. The method of claim 12 further comprising the step of addressing said cache memory for read and write operations such that a write operation overwrites data for a channel that has already been read for a given sample point.
- 14. The method of claim 13 wherein a write operation overwrites a waveform sample for the same channel.
- 15. The method of claim 12 further comprising the step of addressing said cache memory with an address having most significant bits corresponding to a channel, and least significant bits corresponding to a least significant portion of an address for a waveform sample for said channel.
- 16. The method of claim 12 further comprising the step of reading a waveform sample for a first channel while concurrently writing a waveform sample for a second channel.
- 17. The method of claim 12 further comprising the step of accessing said waveform memory over said shared bus.
- 18. A method for the multichannel Nth order interpolative playback as output samples of digital audio data samples stored in a waveform memory comprising the steps of:
- generating N coefficients for each channel for each of said output samples,
- storing at least N waveform memory data samples for each channel in a cache memory,
- computing a sum of N products of the contents of said cache memory times said coefficients for each of several ones of said channels, and
- outputting said sum of products for each of said channels.
- 19. The method of claim 18 further comprising the step of determining which channel's current address is used to load said cache memory.
- 20. A digital sampling instrument for the multichannel Nth order interpolative playback as output samples of digital audio data samples stored in a waveform memory comprising:
- coefficient logic configured to generate N coefficients for each channel for each of said output samples,
- a cache memory storing at least N waveform memory data samples for each channel in a cache memory,
- a convolution unit configured to compute a sum of N products of the contents of said cache memory times said coefficients for each of several ones of said channels, and
- an output configured to provide said sum of products for each of said channels.
- 21. An instrument as in claim 20 wherein said cache memory is a dual port memory.
- 22. An instrument as in claim 20 wherein said cache memory comprises two single port memories.
- 23. An instrument as in claim 20 wherein said cache memory is of size N samples per channel.
- 24. An instrument as in claim 20 wherein said cache memory is of size N+1 samples per channel.
- 25. An instrument as in claim 20 also including a priority circuit for determining which channel's current address is used to load said cache memory.
- 26. An instrument as in claim 25 wherein said priority circuit includes two levels of priority for each channel.
- 27. An instrument as in claim 20 also including an address register file containing the integer part of a current address for each channel, and the required cache update size for each channel.
- 28. An instrument as in claim 27 wherein said address register file is responsive to an address update unit which increments said current address, and also responsive to a memory access unit which addresses the waveform memory at said integer part current address.
- 29. An instrument as in claim 27 including a cache base address stored in said address register file.
- 30. An instrument as in claim 20 wherein said waveform memory includes a plurality of different memory types.
- 31. A system for the multichannel Nth order interpolative playback as output samples of digital audio data samples comprising:
- a waveform memory for storing said audio samples;
- a bus coupled to said waveform memory;
- a digital sampling instrument coupled to said bus, said instrument including:
- coefficient logic configured to generate N coefficients for each channel for each of said output samples,
- a cache memory storing at least N waveform memory data samples for each channel,
- a convolution unit configured to compute a sum of N products of the contents of said cache memory times said coefficients for each of several ones of said channels, and
- an output configured to provide said sum of products for each of said channels.
CROSS-REFERENCE TO RELATED APPLICATIONS
The present application is a division of Ser. No. 636,827, Apr. 23, 1996, U.S. Pat. No. 5,698,803, which is a continuation of Ser. No. 202,922, Feb. 28, 1994, abandoned, which is a division of Ser. No. 882,178, May 11, 1992, U.S. Pat. No. 5,342,990, which is a continuation-in-part of Ser. No. 462,392, Jan. 5, 1990, U.S. Pat. No. 5,111,727.
US Referenced Citations (12)
Non-Patent Literature Citations (8)
Entry |
Introduction to Numerical Analysis, F.B. Hildebrand, McGraw-Hill Book Company, Inc., 1956. |
Table Lookup Noise for Sinusoidal Digital Oscillators, F. Richard Moore, Computer Music Journal, Menlo Park, CA, Apr. 1977. |
Digidesign's Sound Accelerator: Lessons Lived and Learned, Bill Lowe et al., Computer Music Journal, vol. 13, No. 1, Spring 1989. |
The Digital Audio Processing Station: A New Concept in Audio Postproduction, James A. Moorer et al., J. Audio Eng. Soc., vol. 34, No. 6, Jun. 1986. |
The Technology of Computer Music, Max V. Mathews et al., The M.I.T. Press. |
Multirate Digital Signal Processing, Ronald E. Crochiere et al., Prentice-Hall, Inc., Englewood Cliffs, NJ. 07632. |
Kurzweil 1000 Series, Service Manual (1000 Racks, K1000, EGP and Mark III Models), Kurzweil Music Systems, Inc., Waltham, MA, Jan. 1989. |
Musician's Guide, K1000 SE, Kurzweil Music Systems, Inc., Waltham , MA, 1988. |
Divisions (2)
|
Number |
Date |
Country |
Parent |
636827 |
Apr 1996 |
|
Parent |
882178 |
May 1992 |
|
Continuations (1)
|
Number |
Date |
Country |
Parent |
202922 |
Feb 1994 |
|
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
462392 |
Jan 1990 |
|