Claims
- 1. A method for using I/O instructions from an audio application resident in a memory of a computer system intended for registers of a first type of audio card to interact with a second type of audio card, comprising the steps of:
- intercepting a first I/O instruction from the audio application;
- determining by table lookup an audio voice which corresponds to data in the first I/O instruction; and
- transmitting audio data corresponding to the audio voice to the second type of audio card coupled to the computer system and a second I/O instruction to the audio application expected in response to the first I/O instruction.
- 2. The method as recited in claim 1 which further comprises the steps of:
- responsive to an absence of a corresponding audio voice, calculating a weighted average of the data in the first I/O instruction and selecting an audio voice as a closest match having a value closest to the weighted average; and,
- transmitting audio data corresponding to the audio voice which is the closest match to the second type of audio card coupled to the computer system and an expected I/O instruction to the audio application.
- 3. The method as recited in claim 2 which further comprises the steps of:
- determining whether a value of a first audio parameter corresponding to each audio voice matches a value of the first audio parameter in the first I/O instruction where there is a single value for the first audio parameter for each audio voice; and,
- discarding any audio voice as a contender for the closest match whose first audio parameter value does not match the first audio parameter value of the first I/O instruction where there is a single value for the first audio parameter for each audio voice.
- 4. The method as recited in claim 2 wherein the data in the first I/O instruction is a plurality of values for a set of parameters and each audio voice corresponds to a plurality of values for the set of parameters, and the method further comprises the steps of:
- determining a difference between a first audio parameter in the first I/O instruction and the value for the first audio parameter corresponding to the audio voice which is the closest match; and,
- altering the audio data according to the difference.
- 5. The method as recited in claim 2 wherein the data in the first I/0 instruction is a plurality of values for a set of parameters and each audio voice corresponds to a plurality of values for the set of parameters and the method further comprises the step of:
- if a weighted average of the values of the set of parameters for the closest match exceeds a predetermined difference from the weighted average of
- the first I/O instruction, selecting the audio voice whose value for a first audio parameter matches the value of the first parameter in the first I/O instruction.
- 6. The method as recited in claim 1 which further comprises the steps of:
- determining which register of the first type of audio card the I/O instruction was intended; and
- sending the I/O instruction to a transformation module which corresponds to the register.
- 7. The method as recited in claim 1 which further comprises the steps of:
- finding a requested sample rate in the first I/O instruction; and
- in the absence of the requested sample rate in the second type of audio card, sending the closest available rate in the audio data.
- 8. The method as recited in claim 1 which further comprises the steps of:
- maintaining the audio application in a virtual machine in an operating system; and,
- wherein intercepting the I/O instruction from the audio application is accomplished with a virtual device driver.
- 9. The method as recited in claim 1 wherein the data in the first I/O instruction comprise a plurality of FM synthesis parameters.
- 10. The method as recited in claim 1 wherein I/O instructions from a second audio application resident in the memory of the computer system intended for a third type of audio card are used to interact with the second type of audio card concurrently with I/O instructions from the first audio application.
- 11. A system for using I/O instructions from an audio application to a second format intended for registers of a first type of audio card to interact with a second type of audio card, comprising:
- a memory for storing sets of instructions for performing computer functions, the sets of instructions including the audio application and a translating program;
- a processor coupled to the memory for carrying out the sets of instructions;
- an audio card coupled to the processor for performing audio functions according to an I/O instruction from the audio application;
- the translating program comprising:
- means for intercepting a first I/O instruction written in the first format including a first plurality of audio parameters from the audio application;
- means for determining an audio voice which corresponds to data in the first I/O instruction;
- means for transmitting audio data corresponding to the audio voice to the second type of audio card coupled to the computer system and a second I/O instruction to the audio application expected in response to the first I/O instruction the means being activated when the translating program is resident in memory and activated by the processor.
- 12. The system as recited in claim 11 further comprising:
- means responsive to an absence of a corresponding audio voice for calculating a weighted average of the data in the first I/O instruction and selecting an audio voice as a closest match having a value closest to the weighted average; and,
- means for transmitting audio data corresponding to the audio voice which is the closest match to the second type of audio card coupled to the computer system and an expected I/O instruction to the audio application.
- 13. The system as recited in claim 12 further comprising:
- means for determining whether a value of a first audio parameter in each selected set corresponding to each audio voice matches a value of the first audio parameter in the first I/O instruction where there is a single value for the first audio parameter for each audio voice; and,
- means for discarding any audio voice as a contender for the closest match whose first audio parameter value does not match the first audio parameter value of the first plurality of audio parameters I/O instruction.
- 14. The system as recited in claim 12 wherein the data in the first I/O instruction is a plurality of values for a set of parameters and each audio voice corresponds to a plurality of values for the set of parameters, and the method wherein the translating program further comprises:
- means for determining a difference between a first audio parameter in the first plurality I/O instruction and the value for the first audio parameter in the closest set corresponding to the audio voice which is the closest match; and,
- means for altering the audio data according to the difference.
- 15. The system as recited in claim 12 wherein the data in the first I/O instruction is a plurality of values for a set of parameters and each audio voice corresponds to a plurality of values for the set of parameters and the method wherein the translating program further comprises:
- means responsive to a weighted average of the values of the set of parameters exceeding a predetermined difference from the weighted average of the first I/O instruction for the closest match for selecting the audio voice whose value for a first audio parameter matches the value of the first parameter in the first plurality.
- 16. The system as recited in claim 11 which further comprises:
- a virtual machine in an operating system in which to maintain the audio application; and,
- the translating program is a virtual device drive.
- 17. The system as recited in claim 11 wherein the audio parameters are data in the first I/O instruction comprise a plurality of FM synthesis parameters and the audio voices are a set of generalized MIDI voices.
- 18. A system for using I/O instructions from an audio application intended for registers of a first type of audio card to interact with a second type of audio card, for use in a data processing system having a memory and a processor comprising:
- an audio card of the second type for performing audio functions according to an I/O instruction from the audio application;
- a translating program on a storage device comprising;
- means for intercepting a first I/O instruction from the audio application;
- means for determining an audio voice which corresponds to data in the first I/O instruction; and,
- means for transmitting audio data corresponding to the audio voice to the second type of audio card coupled to the computer system and a second I/O instruction to the audio application expected in response to the first I/O instruction, the means being activated when the storage device is connected to and accessed by the data processing system.
- 19. A storage device for using I/O instructions from an audio application intended for registers of a first type of audio card to interact with a second type of audio card, for use in a data processing system having a memory and a processor comprising:
- means for intercepting a first I/O instruction from the audio application;
- means for determining by table lookup an audio voice which corresponds to data in the first I/O instruction; and,
- means for transmitting audio data corresponding to the audio voice to the second type of audio card, coupled to the computer system and a second I/O instruction to the audio application expected in response to the first I/O instruction, the means being activated when the storage device is connected to and accessed by the data processing system.
- 20. The device as recited in claim 19 which further comprises:
- means responsive to an absence of a corresponding audio voice of calculating a first output value of a function using the data in the first I/O instruction as inputs and selecting an audio voice as a closest match having a value closest to the first output value; and,
- means for transmitting audio data corresponding to the audio voice which is the closest match to the second type of audio card coupled to the computer system and an expected I/O instruction to the audio application.
- 21. The device as recited in claim 20 which further comprises:
- means for determining whether a value of a first audio parameter corresponding to each audio voice matches a value of the first audio parameter in the first I/O instruction where there is a single value for the first audio parameter for each audio voice; and,
- means for discarding any audio voice as a contender for the closest match whose first audio parameter value does not match the first audio parameter value of the first I/O instruction.
- 22. The device as recited in claim 20 wherein the data in the first I/O instruction is a plurality of values for a set of parameters and each audio voice corresponds to a plurality of values for the set of parameters, and the method further comprises:
- means for determining a difference between the value for a first audio parameter in the first I/O instruction and the value for the first audio parameter corresponding to the audio voice which is the closest match; and,
- means for altering the audio data according to the difference.
- 23. The device as recited in claim 20 wherein the data in the first I/O instruction is a plurality of values for a set of parameters and each audio voice corresponds to a plurality of values for the set of parameters and the method further comprises:
- means responsive to the determination that a weighted average of the values of the set of parameters exceeds a predetermined difference from the first I/O instruction for the closest match for selecting the audio voice whose value for a first audio parameter matches the value of the first parameter in the first I/O instruction.
- 24. The device as recited in claim 19 wherein the data in the first I/O instruction comprise a plurality of FM synthesis parameters and the audio voices are a set of generalized MIDI voices.
Parent Case Info
This is a continuation of application Ser. No. 07/975,754 filed Nov. 13, 1992, now abandoned.
US Referenced Citations (11)
Foreign Referenced Citations (1)
Number |
Date |
Country |
0484043A2 |
Jun 1992 |
EPX |
Non-Patent Literature Citations (1)
Entry |
IBM Technical Disclosure Bulletin, vol. 33, No. 10B, Mar. 1991, Provision For Alternate Midi Instrument-To-Midi Channel Assignments. |
Continuations (1)
|
Number |
Date |
Country |
Parent |
975754 |
Nov 1992 |
|