Claims
- 1. An audio buffer, comprising:
a first audio effect configured to receive audio data from an audio data source, the first audio effect further configured to modify the audio data and generate a stream of audio data; and at least a second audio effect configured to receive the stream of audio data from the first audio effect, the second audio effect further configured to modify the audio data and generate a stream of modified audio data.
- 2. An audio buffer as recited in claim 1, wherein the first audio effect is further configured to communicate the stream of audio data to at least a second audio buffer.
- 3. An audio buffer as recited in claim 1, wherein the first audio effect is further configured to communicate the stream of audio data to a second audio buffer, and wherein the second audio effect is further configured to communicate the stream of modified audio data to a third audio buffer.
- 4. An audio buffer as recited in claim 1, wherein the first and second audio effects are further configured to digitally modify the audio data.
- 5. An audio buffer as recited in claim 1, further comprising an audio data input mixer configured to combine the audio data received from the audio data source with audio data received from a second audio data source to generate a stream of combined audio data, the audio data input mixer further configured to route the stream of combined audio data to the first audio effect.
- 6. An audio buffer as recited in claim 1, further comprising an audio data input mixer configured to combine one or more streams of audio data received from multiple audio buffers to generate a stream of combined audio data, the audio data input mixer further configured to route the stream of combined audio data to the first audio effect.
- 7. An audio buffer as recited in claim 1, wherein the first audio effect is instantiated as a programming object having an interface that is callable by a software component, the programming object configured to implement software resources to modify the audio data.
- 8. An audio buffer as recited in claim 1, wherein the first audio effect is instantiated as a programming object having an interface that is callable by a software component, the programming object configured to manage hardware resources to modify the audio data.
- 9. An audio buffer as recited in claim 1, wherein:
the first audio effect is instantiated as a first programming object having an interface that is callable by a software component, the first programming object configured to implement software resources to modify the audio data; and the second audio effect is instantiated as a second programming object having an interface that is callable by the software component, the second programming object configured to manage hardware resources to modify the audio data.
- 10. An audio buffer as recited in claim 1, wherein the first audio effect includes a component identifier that indicates the first audio effect is to be implemented with software resources.
- 11. An audio buffer as recited in claim 1, wherein the first audio effect includes a component identifier that indicates the first audio effect is to be implemented with hardware resources.
- 12. An audio buffer as recited in claim 1, wherein the first audio effect includes a component identifier that indicates the first audio effect is to be implemented with software resources, and wherein the second audio effect includes a component identifier that indicates the second audio effect is to be implemented with hardware resources.
- 13. An audio buffer as recited in claim 1, wherein the first audio effect includes a component identifier that indicates the first audio effect is to be implemented with hardware resources, and if the hardware resources are not available, the first audio effect is to be implemented with software resources.
- 14. An audio buffer as recited in claim 1, wherein the first audio effect includes a component identifier that indicates the first audio effect is to be implemented with software resources, and if the software resources are not available, the first audio effect is to be implemented with hardware resources.
- 15. An audio buffer as recited in claim 1, wherein the first audio effect includes a component identifier that indicates the first audio effect is to be implemented with hardware resources, and if the hardware resources that implement the first audio effect become unavailable after the audio effect has been implemented, the first audio effect is to be implemented with software resources.
- 16. An audio buffer as recited in claim 1, wherein:
the first audio effect includes a component identifier that indicates the first audio effect is to be implemented with hardware resources, and if the hardware resources are not available:
the first audio effect is not implemented; and the second audio effect is further configured to receive the audio data from the audio data source and modify the audio data to generate the stream of modified audio data.
- 17. An audio generation system, comprising:
an audio data source configured to generate a stream of audio data; an audio effect implemented as a component of an audio buffer, the audio effect configured to modify the audio data and generate a stream of modified audio data; and an audio component configured to receive the stream of modified audio data from the audio buffer and produce an audio rendition corresponding to the stream of modified audio data.
- 18. An audio generation system as recited in claim 17, wherein the audio effect is further configured to communicate the stream of audio data to at least a second audio buffer.
- 19. An audio generation system as recited in claim 17, wherein the audio effect is further configured to digitally modify the audio data.
- 20. An audio generation system as recited in claim 17, further comprising an audio data input mixer implemented as a component of the audio buffer, the audio data input mixer configured to combine the stream of audio data received from the audio data source with a second stream of audio data received from a second audio data source to generate a stream of combined audio data, the audio data input mixer further configured to route the stream of combined audio data to the audio effect.
- 21. An audio generation system as recited in claim 17, further comprising an audio data input mixer implemented as a component of the audio buffer, the audio data input mixer configured to combine one or more streams of audio data received from multiple audio buffers to generate a stream of combined audio data, the audio data input mixer further configured to route the stream of combined audio data to the audio effect.
- 22. An audio generation system as recited in claim 17, wherein the audio effect is instantiated as a programming object having an interface that is callable by a software component, the programming object configured to implement software resources to modify the audio data.
- 23. An audio generation system as recited in claim 17, wherein the audio effect is instantiated as a programming object having an interface that is callable by a software component, the programming object configured to manage hardware resources to modify the audio data.
- 24. An audio generation system as recited in claim 17, wherein the audio effect includes a component identifier that indicates the audio effect is to be implemented with software resources.
- 25. An audio generation system as recited in claim 17, wherein the audio effect includes a component identifier that indicates the audio effect is to be implemented with hardware resources.
- 26. An audio generation system as recited in claim 17, wherein the audio effect includes a component identifier that indicates the audio effect is to be implemented with hardware resources, and if the hardware resources are not available, the audio effect is to be implemented with software resources.
- 27. An audio generation system as recited in claim 17, wherein the audio effect includes a component identifier that indicates the audio effect is to be implemented with software resources, and if the software resources are not available, the audio effect is to be implemented with hardware resources.
- 28. An audio generation system as recited in claim 17, wherein the audio effect includes a component identifier that indicates the audio effect is to be implemented with hardware resources, and if the hardware resources that implement the audio effect become unavailable, the audio effect is to be implemented with software resources.
- 29. An audio generation system as recited in claim 17, further comprising a second audio effect implemented as a component of the audio buffer, the second audio effect configured to modify the audio data to generate the stream of modified audio data.
- 30. An audio generation system as recited in claim 29, wherein:
the audio effect is instantiated as a first programming object having an interface that is callable by a software component, the first programming object configured to implement software resources to modify the audio data; and the second audio effect is instantiated as a second programming object having an interface that is callable by the software component, the second programming object configured to manage hardware resources to modify the audio data.
- 31. An audio generation system as recited in claim 29, wherein the audio effect includes a component identifier that indicates the audio effect is to be implemented with software resources, and wherein the second audio effect includes a component identifier that indicates the second audio effect is to be implemented with hardware resources.
- 32. An audio generation system, comprising:
a first audio effect implemented as a component of an audio buffer, the first audio effect configured to receive a stream of audio data generated by an audio data source; and at least a second audio effect implemented as a component of the audio buffer, the first and second audio effects forming an audio effects chain configured to modify the audio data and generate a stream of modified audio data.
- 33. An audio generation system as recited in claim 32, further comprising an audio component configured to receive the stream of modified audio data from the audio buffer and produce an audio rendition corresponding to the stream of modified audio data.
- 34. An audio generation system as recited in claim 32, further comprising an audio data input mixer implemented as a component of the audio buffer, the audio data input mixer configured to combine the stream of audio data received from the audio data source with a second stream of audio data received from a second audio data source to generate a stream of combined audio data, the audio data input mixer further configured to route the stream of combined audio data to the first audio effect.
- 35. An audio generation system as recited in claim 32, further comprising an audio data input mixer implemented as a component of the audio buffer, the audio data input mixer configured to combine one or more streams of audio data received from multiple audio buffers to generate a stream of combined audio data, the audio data input mixer further configured to route the stream of combined audio data to the first audio effect.
- 36. An audio generation system as recited in claim 32, wherein:
the first audio effect is instantiated as a first programming object having an interface that is callable by a software component, the first programming object configured to implement software resources to modify the audio data; and the second audio effect is instantiated as a second programming object having an interface that is callable by the software component, the second programming object configured to manage hardware resources to modify the audio data.
- 37. An audio generation system as recited in claim 32, wherein the first audio effect and the second audio effect each include a component identifier that indicates the audio effects are to be implemented with software resources.
- 38. An audio generation system as recited in claim 32, wherein the first audio effect and the second audio effect each include a component identifier that indicates the audio effects are to be implemented with hardware resources.
- 39. An audio generation system as recited in claim 32, wherein the first audio effect and the second audio effect each include a component identifier that indicates the audio effects are to be implemented with hardware resources, and if the hardware resources that implement the audio effects become unavailable, the audio effects are to be implemented with software resources.
- 40. An audio generation system as recited in claim 32, wherein:
the first audio effect includes a component identifier that indicates the first audio effect is to be implemented with hardware resources, and if the hardware resources are not available:
the first audio effect is not implemented; and the second audio effect is configured to receive the stream of audio data from the audio data source and modify the audio data to generate the stream of modified audio data.
- 41. A method for processing audio data in an audio buffer, comprising:
receiving a stream of audio data from an audio data source; modifying the audio data with an audio effect in the audio buffer; generating a stream of modified audio data; and communicating the stream of modified audio data to an audio component.
- 42. A method for processing audio data as recited in claim 41, further comprising modifying the audio data with at least a second audio effect in the audio buffer.
- 43. A method for processing audio data as recited in claim 41, further comprising communicating the stream of modified audio data to at least a second audio buffer.
- 44. A method for processing audio data as recited in claim 41, further comprising communicating the stream of modified audio data to the audio component that produces an audio rendition corresponding to the stream of modified audio data.
- 45. A method for processing audio data as recited in claim 41, wherein modifying the audio data includes digitally modifying the audio data with the audio effect.
- 46. A method for processing audio data as recited in claim 41, further comprising mixing the stream of audio data received from the audio data source with a second stream of audio data received from a second audio data source to generate a stream of combined audio data, and routing the stream of combined audio data to the audio effect.
- 47. A method for processing audio data as recited in claim 41, further comprising mixing one or more streams of audio data received from multiple audio buffers to generate a stream of combined audio data, and routing the stream of combined audio data to the audio effect.
- 48. A method for processing audio data as recited in claim 41, further comprising instantiating the audio effect as a programming object having an interface that is callable by a software component, the programming object implementing software resources for modifying the audio data.
- 49. A method for processing audio data as recited in claim 41, further comprising instantiating the audio effect as a programming object having an interface that is callable by a software component, the programming object managing hardware resources for modifying the audio data.
- 50. A method for processing audio data as recited in claim 41, further comprising implementing the audio effect with software resources according to a component identifier of the audio effect.
- 51. A method for processing audio data as recited in claim 41, further comprising implementing the audio effect with hardware resources according to a component identifier of the audio effect.
- 52. A method for processing audio data as recited in claim 41, further comprising determining that hardware resources are not available to implement the audio effect, and implementing the audio effect with software resources.
- 53. A method for processing audio data as recited in claim 41, further comprising determining that software resources are not available to implement the audio effect, and implementing the audio effect with hardware resources.
- 54. A method for processing audio data as recited in claim 41, further comprising:
implementing the audio effect with hardware resources; determining that the hardware resources have become unavailable; and implementing the audio effect with software resources.
- 55. One or more computer-readable media comprising computer-executable instructions that, when executed, direct an audio buffer to perform the method of claim 41.
- 56. One or more computer-readable media comprising computer-executable instructions that, when executed, direct an audio buffer to perform the method of claim 42.
- 57. A method for communicating between components of an audio generation system, comprising:
requesting the creation of an audio buffer; issuing a call to create the audio buffer, the call including parameters that specify an address of an audio buffer description data structure and an address of a variable of an application program that receives an interface of the audio buffer; and receiving a pointer to the interface of the audio buffer.
- 58. A method for communicating between components of an audio generation system, comprising:
requesting the creation of an audio buffer having one or more audio effects; issuing a call to create the audio buffer with the one or more audio effects, the call including parameters that specify:
an address of an array of audio effect description data structures that describe one or more audio effect configurations; an address of an array of elements that each receive a value that indicates the result of an attempt to create a corresponding audio effect; and a value that indicates the number of audio effect description data structures and the number of elements; and the method further comprising, receiving a value that indicates the status of a corresponding audio effect.
- 59. A method for communicating between components of an audio generation system as recited in claim 58, wherein the value indicates that the corresponding audio effect is instantiated in hardware.
- 60. A method for communicating between components of an audio generation system as recited in claim 58, wherein the value indicates that the corresponding audio effect is instantiated in software.
- 61. A method for communicating between components of an audio generation system as recited in claim 58, wherein the value indicates that the corresponding audio effect can be instantiated in either hardware or software.
- 62. A method for communicating between components of an audio generation system as recited in claim 58, wherein the value indicates that the corresponding audio effect was not created because resources were not available.
- 63. A method for communicating between components of an audio generation system as recited in claim 58, wherein the value indicates that the corresponding audio effect was not created because another related audio effect could not be created.
- 64. A method for communicating between components of an audio generation system as recited in claim 58, wherein the value indicates that the corresponding audio effect is not registered for use by the audio generation system.
- 65. A method for communicating between components of an audio generation system, comprising:
requesting the allocation of resources for an audio buffer; issuing a call to allocate the resources of the audio buffer, the call including parameters that specify:
a type of resources to be allocated; an address of an array of variables that each receive a status indicator that indicates the status of an audio effect associated with the audio buffer; and a value that indicates the number of variables in the array of variables; and the method further comprising, receiving a value that indicates the status of an audio effect associated with the audio buffer.
- 66. A method for communicating between components of an audio generation system as recited in claim 65, wherein the value indicates that the audio effect is instantiated in hardware.
- 67. A method for communicating between components of an audio generation system as recited in claim 65, wherein the value indicates that the audio effect is instantiated in software.
- 68. A method for communicating between components of an audio generation system as recited in claim 65, wherein the value indicates that the audio effect was not created because resources were not available.
- 69. A method for communicating between components of an audio generation system as recited in claim 65, wherein the value indicates that the corresponding audio effect was not created because another related audio effect could not be created.
- 70. A method for communicating between components of an audio generation system as recited in claim 65, wherein the value indicates that the audio effect is not registered for use by the audio generation system.
RELATED APPLICATION
[0001] This application claims the benefit of U.S. Provisional Application No. 60/273,660, filed Mar. 5, 2001, entitled “Dynamic Buffer Creation with Embedded Hardware and Software Effects”, to Todor Fay et al., which is incorporated by reference herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60273660 |
Mar 2001 |
US |