Claims
- 1. An audio generation system, comprising:
an audio data source configured to generate audio data; a buffer manager configured to create audio buffers that receive one or more streams of the audio data; a sink-in audio buffer created by the buffer manager and configured to receive a stream of audio data, the buffer manager further configured to request the stream of audio data from the audio data source for input to the sink-in audio buffer; and an audio component configured to receive the stream of audio data from the sink-in audio buffer and produce an audio rendition corresponding to the stream of audio data.
- 2. An audio generation system as recited in claim 1, further comprising a mix-in audio buffer created by the buffer manager and configured to:
receive streams of audio data from one or more sink-in audio buffers; generate a stream of combined audio data that includes the streams of audio data received from the one or more sink-in audio buffers; and communicate the stream of combined audio data to the audio component to produce an audio rendition corresponding to the stream of combined audio data.
- 3. An audio generation system as recited in claim 1, wherein the sink-in audio buffer is instantiated as a programming object having an interface that is callable by a software component.
- 4. An audio generation system as recited in claim 1, wherein the sink-in audio buffer is instantiated as a programming object having an interface that is callable by a multimedia application to receive the stream of audio data.
- 5. An audio generation system as recited in claim 1, wherein the sink-in audio buffer is further configured to receive at least a second stream of audio data, the buffer manager further configured to request the second stream of audio data from the audio data source for input to the sink-in audio buffer.
- 6. An audio generation system as recited in claim 1, further comprising a mix-in audio buffer created by the buffer manager and configured to:
receive streams of audio data from one or more sink-in audio buffers which are created by the buffer manager after the mix-in audio buffer is created; generate a stream of combined audio data that includes the streams of audio data received from the one or more sink-in audio buffers; and communicate the stream of combined audio data to the audio component to produce an audio rendition corresponding to the stream of combined audio data.
- 7. An audio generation system as recited in claim 1, further comprising a mix-in audio buffer created by the buffer manager and configured to:
receive streams of audio data from one or more sink-in audio buffers which are created by the buffer manager after the mix-in audio buffer is created; generate a stream of combined audio data that includes the streams of audio data received from the one or more sink-in audio buffers; and wherein the buffer manager deactivates the one or more sink-in audio buffers before the mix-in audio buffer is deactivated.
- 8. An audio generation system as recited in claim 1, further comprising:
at least a second sink-in audio buffer created by the buffer manager and configured to receive a second stream of audio data, the buffer manager further configured to request the second stream of audio data from the audio data source for input to the second sink-in audio buffer; and a mix-in audio buffer created by the buffer manager and configured to:
generate a stream of combined audio data that includes audio data received from the sink-in audio buffer, and that includes audio data received from the second sink-in audio buffer; and communicate the stream of combined audio data to the audio component to produce an audio rendition corresponding to the stream of combined audio data.
- 9. An audio generation system as recited in claim 1, wherein the audio data source is a programming object having an interface that is callable by a software component to generate the audio data.
- 10. An audio generation system as recited in claim 1, wherein the audio data source is a synthesizer component instantiated as a programming object having an interface that is callable by a multimedia application to generate the audio data.
- 11. An audio generation system as recited in claim 1, wherein the audio data source is a synthesizer component instantiated as a programming object having an interface that is callable by a multimedia application to generate the audio data in response to MIDI instructions.
- 12. An audio generation system as recited in claim 1, wherein the buffer manager is a programming object having an interface that is callable by a software component to create the audio buffers.
- 13. An audio generation system as recited in claim 1, wherein the buffer manager is a programming object having an interface that is callable by a multimedia application to create the audio buffers.
- 14. An audio generation system as recited in claim 1, further comprising a software component that defines one or more logical buses corresponding to the sink-in audio buffer, the software component configured to receive one or more streams of audio data from the audio data source and communicate the one or more streams of audio data to the sink-in audio buffer via the corresponding one or more logical buses.
- 15. An audio generation system as recited in claim 1, further comprising a software component that defines a plurality of logical buses corresponding to the sink-in audio buffer, each logical bus configured to receive a stream of audio data from the audio data source which is communicated to the sink-in audio buffer.
- 16. An audio generation system as recited in claim 1, further comprising:
a performance manager that includes at least one audio segment having audio content components that are each configured to generate audio instructions; and an audio rendition manager that includes the audio data source, the audio data source further configured to process the audio instructions to generate the audio data.
- 17. An audio generation system as recited in claim 1, further comprising:
a performance manager that includes at least one audio segment having audio content components that are each configured to generate MIDI instructions; and an audio rendition manager that includes the audio data source, the audio data source implemented as a synthesizer component configured to process the MIDI instructions to generate the audio data.
- 18. An audio generation system, comprising:
sink-in audio buffers each configured to receive one or more streams of audio data generated by an audio data source; and a mix-in audio buffer configured to receive audio data from one or more of the sink-in audio buffers, the mix-in audio buffer further configured to generate a stream of combined audio data that includes the audio data received from the one or more sink-in audio buffers.
- 19. An audio generation system as recited in claim 18, further comprising an audio component configured to receive the stream of combined audio data from the mix-in audio buffer and produce an audio rendition corresponding to the stream of combined audio data.
- 20. An audio generation system as recited in claim 18, further comprising at least a second mix-in audio buffer configured to generate a second stream of combined audio data that includes the stream of combined audio data received from the mix-in audio buffer, and that includes one or more streams of audio data received from one or more of the sink-in audio buffers.
- 21. An audio generation system as recited in claim 18, further comprising a buffer manager configured to create the mix-in audio buffer and the sink-in audio buffers.
- 22. An audio generation system as recited in claim 18, further comprising a buffer manager configured to create the mix-in audio buffer and the sink-in audio buffers, the buffer manager further configured to request the one or more streams of audio data from the audio data source for input to each of the one or more sink-in audio buffers.
- 23. An audio generation system as recited in claim 18, further comprising a buffer manager configured to create the sink-in audio buffers and the mix-in audio buffer, the mix-in audio buffer being created before the one or more sink-in audio buffers are created to input the audio data into the mix-in audio buffer.
- 24. An audio generation system as recited in claim 18, further comprising a buffer manager configured to:
create the sink-in audio buffers and the mix-in audio buffer, the mix-in audio buffer being created before the one or more sink-in audio buffers are created to input the audio data into the mix-in audio buffer; and deactivate the one or more sink-in audio buffers before the mix-in audio buffer is deactivated.
- 25. An audio generation system as recited in claim 18, further comprising a buffer manager configured to:
implement resources to create the sink-in audio buffers and the mix-in audio buffer, the mix-in audio buffer being created before the one or more sink-in audio buffers are created to input the audio data into the mix-in audio buffer; and release the resources implemented to create the one or more sink-in audio buffers before the resources implemented to create the mix-in audio buffer are released.
- 26. An audio generation system as recited in claim 18, further comprising a buffer manager instantiated as a programming object having an interface that is callable by a software component, the buffer manager configured to:
instantiate the mix-in audio buffer as a programming object having an interface that is callable by the software component; and instantiate each of the sink-in audio buffers as a programming object having an interface that is callable by the software component.
- 27. An audio generation system as recited in claim 18, further comprising a buffer manager instantiated as a programming object having an interface that is callable by a multimedia application, the buffer manager configured to:
instantiate the mix-in audio buffer as a programming object in response to a request from the multimedia application to communicate a stream of audio data from the sink-in audio buffer to the mix-in audio buffer; and instantiate a sink-in audio buffer as a programming object in response to a request from the multimedia application to communicate a stream of audio data from the audio data source to the sink-in audio buffer.
- 28. An audio generation system as recited in claim 18, further comprising a buffer manager instantiated as a programming object having an interface that is callable by a multimedia application, the buffer manager configured to:
instantiate the mix-in audio buffer as a programming object in response to a request from the multimedia application to communicate a stream of audio data from the sink-in audio buffer to the mix-in audio buffer; instantiate a sink-in audio buffer as a programming object in response to a request from the multimedia application to communicate a stream of audio data from the audio data source to the sink-in audio buffer; and request the stream of audio data from the audio data source for input to the sink-in audio buffer.
- 29. An audio generation system as recited in claim 18, further comprising a software component that defines one or more logical buses corresponding respectively to one or more of the sink-in audio buffers, the software component configured to receive one or more streams of audio data from the audio data source and communicate the one or more streams of audio data to the one or more sink-in audio buffers via the corresponding one or more logical buses.
- 30. An audio generation system as recited in claim 18, further comprising a software component that defines logical buses corresponding to the sink-in audio buffers, each logical bus configured to receive one or more streams of audio data from the audio data source and communicate the one or more streams of audio data to the corresponding sink-in audio buffer.
- 31. An audio generation system as recited in claim 18, further comprising:
a performance manager that includes at least one audio segment having one or more audio content components that are each configured to generate audio instructions; and an audio rendition manager that includes the audio data source, the audio data source further configured to process the audio instructions to generate the one or more streams of audio data.
- 32. An audio generation system as recited in claim 18, further comprising:
a performance manager that includes at least one audio segment having one or more audio content components that are each configured to generate MIDI instructions; and an audio rendition manager that includes the audio data source, the audio data source implemented as a synthesizer component configured to process the MIDI instructions to generate the one or more streams of audio data.
- 33. A method, comprising:
requesting multiple streams of audio data; defining sink-in audio buffers that each receive one or more of the multiple streams of audio data; defining a mix-in audio buffer to receive one or more streams of audio data from one or more of the sink-in audio buffers; and generating a stream of combined audio data that includes the one or more streams of audio data received from the one or more sink-in audio buffers.
- 34. A method as recited in claim 33, further comprising communicating the stream of combined audio data to an audio component that produces an audio rendition corresponding to the stream of combined audio data.
- 35. A method as recited in claim 33, further comprising generating the multiple streams of audio data when receiving audio instructions.
- 36. A method as recited in claim 33, further comprising generating the multiple streams of audio data when receiving synthesizer MIDI instructions.
- 37. A method as recited in claim 33, wherein defining the sink-in audio buffers comprises instantiating each sink-in audio buffer as a programming object having an interface that is callable to route the one or more multiple streams of audio data.
- 38. A method as recited in claim 33, wherein defining the mix-in audio buffer comprises instantiating the mix-in audio buffer as a programming object having an interface that is callable to route the one or more streams of audio data received from the one or more sink-in audio buffers.
- 39. A method as recited in claim 33, wherein defining the sink-in audio buffers comprises reserving computing system resources to implement each sink-in audio buffer to receive the one or more multiple streams of audio data.
- 40. A method as recited in claim 33, wherein defining the mix-in audio buffer comprises reserving computing system resources to implement the mix-in audio buffer to receive the one or more streams of audio data received from the one or more sink-in audio buffers.
- 41. A method as recited in claim 33, wherein the mix-in audio buffer is defined before the one or more sink-in audio buffers are defined.
- 42. A method as recited in claim 33, wherein defining the mix-in audio buffer comprises reserving computing system resources to implement the mix-in audio buffer before defining the sink-in audio buffers which comprises reserving computing system resources to implement each sink in audio buffer.
- 43. A method as recited in claim 33, wherein defining the mix-in audio buffer comprises reserving computing system resources to implement the mix-in audio buffer before defining the sink-in audio buffers which comprises reserving computing system resources to implement each sink-in audio buffer, and the method further comprising:
releasing the computing system resources that implement the sink-in audio buffers before releasing the computing resources that implement the mix-in audio buffer.
- 44. A method as recited in claim 33, further comprising defining a second mix-in audio buffer to receive the stream of combined audio data from the mix-in audio buffer, and to receive one or more streams of audio data from one or more of the sink-in audio buffers.
- 45. A method as recited in claim 33, further comprising:
defining a second mix-in audio buffer to receive the stream of combined audio data from the mix-in audio buffer, and to receive one or more streams of audio data from one or more of the sink-in audio buffers; generating a second stream of combined audio data that includes the stream of combined audio data, and includes the one or more streams of audio data; and communicating the second stream of combined audio data to an audio component that produces an audio rendition corresponding to the second stream of combined audio data.
- 46. A method as recited in claim 33, further comprising:
defining a performance manager to generate audio instructions; and defining an audio rendition manager to process the audio instructions and generate the multiple streams of audio data.
- 47. A method as recited in claim 33, further comprising:
defining a performance manager having an audio segment with one or more audio content components, the one or more audio content components generating audio instructions; and defining an audio rendition manager having a synthesizer component, the synthesizer component processing the audio instructions to generate the multiple streams of audio data.
- 48. A method as recited in claim 33, further comprising:
defining logical buses that each correspond to a sink-in audio buffer; assigning each of the multiple streams of audio data to one or more of the logical buses; and routing a stream of audio data assigned to a particular logical bus to the sink-in audio buffer corresponding to the particular logical bus.
- 49. One or more computer-readable media comprising computer-executable instructions that, when executed, direct a computing system to perform the method of claim 33.
- 50. One or more computer-readable media comprising computer executable instructions that, when executed, direct a computing system to perform a method comprising:
generating audio data with a synthesizer component when receiving audio instructions; instantiating a sink-in audio buffer as a programming object having an interface that is callable by a software component; streaming the audio data to the sink-in audio buffer when the audio data is requested for input by the software component; communicating the audio data to an audio component that produces an audio rendition corresponding to the audio data.
- 51. One or more computer-readable media as recited in claim 50, further comprising instantiating a mix-in audio buffer as a programming object having an interface that is callable by the software component, the mix-in audio buffer generating a stream of combined audio data that includes audio data received from one or more sink-in audio buffers.
- 52. One or more computer-readable media as recited in claim 50, further comprising:
instantiating a mix-in audio buffer as a programming object having an interface that is callable by the software component, the mix-in audio buffer generating a stream of combined audio data that includes audio data received from one or more sink-in audio buffers; and communicating the stream of combined audio data to the audio component that produces an audio rendition corresponding to the stream of combined audio data.
- 53. One or more computer-readable media as recited in claim 50, further comprising:
instantiating a performance manager having an audio segment with one or more audio content components, the one or more audio content components generating audio instructions; and instantiating an audio rendition manager that includes the synthesizer component, the synthesizer component processing the audio instructions to generate the audio data.
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 |