GB2377039A - Sound controller for computer apparatus - Google Patents

Sound controller for computer apparatus Download PDF

Info

Publication number
GB2377039A
GB2377039A GB0112443A GB0112443A GB2377039A GB 2377039 A GB2377039 A GB 2377039A GB 0112443 A GB0112443 A GB 0112443A GB 0112443 A GB0112443 A GB 0112443A GB 2377039 A GB2377039 A GB 2377039A
Authority
GB
United Kingdom
Prior art keywords
sounds
sound
instructions
computer program
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB0112443A
Other versions
GB0112443D0 (en
GB2377039B (en
Inventor
Richard Thomassen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to GB0112443A priority Critical patent/GB2377039B/en
Publication of GB0112443D0 publication Critical patent/GB0112443D0/en
Publication of GB2377039A publication Critical patent/GB2377039A/en
Application granted granted Critical
Publication of GB2377039B publication Critical patent/GB2377039B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • A63F13/10
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/54Controlling the output signals based on the game progress involving acoustic signals, e.g. for simulating revolutions per minute [RPM] dependent engine sounds in a driving game or reverberation against a virtual wall
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6063Methods for processing data by generating or executing the game program for sound processing

Abstract

A sound control method is disclosed which addresses the problem in computer entertainment apparatus that the computer often cannot generate and output at the same time all of the sounds which an application being run on the computer instructs the computer to play. In the method, each sound which the application instructs the computer to play is added to a list. The sounds on the list are then prioritised in accordance with their properties, and the top predetermined number of sounds in terms of the prioritisation are selected to be played. The number of sounds to be selected and played is set in dependence upon the resources available within the computer to generate and output the sounds. In this way, the computer resources are never overloaded, thereby avoiding errors.

Description

<Desc/Clms Page number 1>
SOUND CONTROLLER FOR COMPUTER APPARATUS The present invention relates to the control of sound generation by a computer apparatus.
When a computer apparatus is used for entertainment purposes, it is usual for output to be generated in the form of graphics and sounds. Nowadays, computers are provided with dedicated hardware and/or software modules for driving graphics output and sound output. Graphics output is generated by a display driver, operating under the control of the software product being run by the apparatus which sends messages to the display driver for conversion into display signals. An audio driver is provided which can output sound signals on the basis of stored sound data, the audio driver being controlled by a sound controller which receives messages from the computer program product being run (such as a computer game) for sounds to be created and played.
One problem which has arisen with such a system is that many audio drivers are incapable of playing more than a limited number of sounds (for instance sixteen) simultaneously. If a software product is designed such that it requires more than that maximum number of sounds
<Desc/Clms Page number 2>
to be played, then the sound controller and audio driver cannot comply with the software's request. This causes the audio driver to become overloaded, which can lead to operating errors. It could also mean that unimportant sounds (in the context of the intended user experience to be delivered by the entertainment software product) are played instead of important sounds.
It is an object of the invention to control the generation of sounds so as to ameliorate one or more of the above problems.
According to one aspect of the invention, a computer program product or a computer processing apparatus comprises means for receiving a request for a sound to be output, means for storing requests, and means for sorting stored requests and selecting a predetermined number of stored requests to be output.
According to another aspect of the invention, a method of controlling sound output from a computer apparatus comprises storing requests for sound generation, sorting said sound requests to determine an order of priority thereof and outputting a selected number of said sorted requests so as to ensure higher priority sounds are
<Desc/Clms Page number 3>
output at the expense of lower priority sounds.
Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which: Figures la and Ib illustrate schematically a computer program product development facility and a computer gaming apparatus running a program product developed on the development facility, wherein Figure la illustrates the computer program product development facility and Figure Ib illustrates the computer gaming apparatus; Figure 2 is a schematic diagram of the audio manager of the program product illustrated in Figures la and Ib ; Figure 3 is a schematic diagram of a sounds list of the audio manager illustrated in Figure 2; Figure 4 shows the processing operations performed by the audio manager to create a sound structure in response to an instruction from the game control unit of the software program product; Figure 5 shows the processing operations performed by the
<Desc/Clms Page number 4>
audio manager to update the properties of a sound structure in response to an instruction from the game control unit in the software program product; Figure 6 shows the processing operations performed by the audio manager in response to a sound"play"instruction from the game control unit in the software program product; Figure 7 shows the processing operations performed by the audio manager to refresh the sounds list and to cause the computer apparatus to output sounds to the user in response to a"refresh"instruction from the game control unit in the software program product; Figure 8 shows the processing operations performed by the audio manager at step S7-2 in Figure 7 to sort sound structures on the sounds list; Figure 9 shows the processing operations performed by the audio manager at step S7-10 in Figure 7 to instruct the sound controller of the computer apparatus to allocate sound resources and generate and output sounds to the user;
<Desc/Clms Page number 5>
Figure 10 shows the processing operations performed by the sound controller of the computer apparatus to allocate sound resources and play sounds in response to an instruction from the audio manager; Figure 11 shows the processing operations performed by the audio manager to stop a sound playing in response to an instruction from the game control unit of the software program product; and Figure 12 shows the processing operations performed by the audio manager to delete a sound structure in response to an instruction from the game control unit of the software program product.
With reference to Figure la, a development apparatus 10 comprises a PC style computer unit 12, to which is connected a keyboard 14 and a mouse 16. A display 18 is provided for graphical output to a developer.
The computer unit 12 has a processor 20, operating in accordance with processor-executable instructions and data stored in a memory 22. A source code editor 24 is stored in the memory 22 for user-development of source code. In addition to the source code editor 24, a
<Desc/Clms Page number 6>
graphics library 26 and an audio library 28 are provided; the audio library 28 refers to sounds data stored in a sounds data store 30.
The graphics library 26 provides a user with facilities which can be included in source code developed on the development apparatus by insertion in the source code of function calls which, when the source code is compiled, result in incorporation of the selected functions from the graphics library 26 into a compiled program for control of graphical output.
The audio library 28 provides a facility to allow a user to include function calls into source code which, when compiled, cause incorporation of an audio manager into the compiled program. Accordingly, the audio manager comprises part of the program product in this embodiment.
As will be described later, the audio manager is used to control the order of priority of sounds to be generated and output by a computer having the compiled program product running thereon.
The computer unit 12 further comprises a compiler 32 for production of a computer program product from source code prepared on the source code editor 24, in conjunction
<Desc/Clms Page number 7>
with functions from the graphics library 26 and the audio library 28 with reference to data from the sounds data store 30. A disk drive 40 is provided so that the resultant software program product can be placed on a disk 44, and a modem 42 is provided to allow the product to be carried on a signal 46, for example over the Internet. In the illustrated example, the disk drive 40 is an optical disk drive which is capable of recording onto an optical disk 44.
In Figure Ib, a computer entertainment system 50 is illustrated, comprising a console unit 52, to which are connected a hand-held controller 54, one or more loudspeakers 56 and a display 58. The console unit 52 includes a disk drive 60 for receiving disks, such as the disk 44 storing the program product from the development apparatus 10, and a modem 62 for receiving signals conveying the program product, such as the signal 46 from the development unit 10. The console unit 52 has a processing unit 70 operating in accordance with processor-executable instructions and data stored in a memory 72 and/or retrieved from the disk held in the disk drive 60 and/or from the signal 46.
Program units illustrated as being contained together in
<Desc/Clms Page number 8>
memory 72 in Figure Ib may be stored partly in memory 72 and partly on disk 44, depending on the memory capacity of the console unit 52.
In a conventional manner, a display driver 74 is provided for generating display signals for controlling the display 58, and a sound controller 76 for controlling an audio driver 78 which drives the loudspeaker (s) 56. The audio driver 78 refers to data stored in a sound storage unit 80, defining sounds to be output to the loudspeaker 56.
The game defined in the program product is stored on the computer entertainment system 50 as a game processing module 82, and comprises a game control unit 84, a graphics manager 86 and an audio manager 88. In use, when the user plays the game, the game control unit 84 responds to user input actions made on the input controller 54 and sends messages to the graphics manager 86 and the audio manager 88 in response to those user input actions. In particular, if circumstances require, the game control unit 84 sends a message to the audio manager 88 that a particular sound is to be output to the user. The audio manager 88 handles the interface between the game control unit 84 of the game program product and
<Desc/Clms Page number 9>
the sound controller 76 of the computer. In this embodiment, the audio manager itself forms part of the game program product.
As will be described in more detail below, the audio manager 88 sorts the sounds which the game control unit 84 wants played in terms of sorting criteria including a priority level and sound volume, and decides which sounds are of most importance to be output at a particular time if all of the sounds cannot be output. If a sound is not sufficiently important, in terms of the sorting criteria, the request to output that particular sound may therefore be disregarded. In this way, the audio manager 88 ensures that the audio driver 78 of the computer apparatus 50 is not overloaded, and that, if the computer apparatus is not able to play simultaneously all of the sounds requested by the game control unit, then, at any given time, the most important sounds will be played.
The structure of the audio manager 88 is illustrated in Figure 2.
Referring to Figure 2, the audio manager 88 includes an audio manager control unit 110 which controls the overall function of the audio manager 88. The audio manager
<Desc/Clms Page number 10>
control unit 110 can receive messages from the game control unit 84 and from the sound controller 76, and can send messages to the game control unit 84 and to the sound controller 76.
In use, the audio manager 88 creates sound structures 112 in response to requests issued by the game control unit 84. A sound structure 112 is a memory allocation storing data defining a sound, including information such as a pointer or other locator to a file containing waveform data, volume data and priority data. These sound structures 112 are created by means of a sound structure generator 114.
A sounds list 116 lists sound (s) requested by the game control unit 84 to be played at any given time as the game proceeds. As will be described below, sorter 118 sorts the entries on the sounds list 116, and audio manager 88 selects sounds from the sorted sounds list 116 to be played simultaneously by the sound controller 76 and audio driver 78 of the computer apparatus 50.
The structure of the sounds list 116 is illustrated in further detail in Figure 3. The sounds list 116 lists, for each entry, a sound identifier (ID), a priority
<Desc/Clms Page number 11>
defined by the game control unit 84, a volume, a loop status and a play status. Each sound identifier is unique. This prevents instances of sounds being confused by the game control unit 84. Priority is a measure of the importance of the sound in the context of the computer program product, as specified by the developer of the product. A high priority sound could be one which is essential to the effective performance of the program product. In the context of a game product, these could be spoken instructions, or sounds such as gunshots, claps or bangs which enhance the context of the accompanying graphical output. Lower priority sounds could be background sounds such as audience noise in a simulation of a spectator sport.
It will be appreciated that there may be no correlation between the priority given to a sound and the volume of a sound. A very faint sound may be of high priority in the context of performance of a game, in that it may convey important information to the game player.
The loop status of a sound indicates whether the sound is to be repeatedly replayed, or whether it is to be played only once. For example, a gunshot may be a non-looping sound (machine-gun fire may consist of the same sound as
<Desc/Clms Page number 12>
a single gunshot but with looping applied thereto) and audience noise may be constructed from a short sample of applause or cheering with looping applied thereto.
The play status indicates whether the game control unit currently wishes a sound to be played or not.
As mentioned previously, the audio manager 88 is operable to receive messages from the game control unit 84. These messages may comprise a"create"instruction, an"update" instruction, a"play"instruction, a"refresh" instruction, a"stop"instruction, and a"delete" instruction. These instructions are available to the developer of the program product using the audio library 28, and can be inserted in source code to be compiled to generate the program product for execution in the console unit 52. Execution of one of these instructions causes activation of a corresponding one of a sound creator 122, a sound updater 124, a sound player 126, a sounds list refresher 120, a sound stopper 128, and a sound deleter 130 in the audio manager 88.
A"create"instruction from the game control unit 84 is accompanied by data identifying the sound to be created, for example data specifying the location of the file
<Desc/Clms Page number 13>
describing the sound in the sounds data store 30. In use, the"create"instruction causes the sound creator 122 to create an instance of the requested sound, which is held as a sound structure 112 in the audio manager 88 for subsequent use.
An"update"instruction from the game control unit 84 is accompanied by data identifying a sound structure 112 to be updated, together with data defining the new attributes of the sound structure, namely, in this embodiment, the sound priority, volume and loop status. In use, an"update"instruction causes the sound updater 124 to update the sound structure 112 identified in the instruction, thereby altering the stored information associated with the sound.
A"play"instruction from the game control unit 84 is accompanied by data specifying the sound structure 112 of the sound to be played. In response to a"play" instruction, the sound player 126 adds the specified sound structure to the sounds list 116. However, it should be noted that this does not ensure that the sound will be output by the computer apparatus 50 to the user because, as will be explained in detail below, the audio manager 88 selects only a predetermined number of sounds
<Desc/Clms Page number 14>
from the sounds list 116 to be generated and output to the user by the computer apparatus 50.
In this embodiment, game control unit 84 is arranged to send a"refresh"instruction to audio manager 88 each time a frame of graphical image data is to be created and output to the user (although, instead, the"refresh" instruction may be generated at different times, for
example, every predetermined number of frames). In response to a"refresh"instruction, the sounds list refresher 120 is arranged to cause processing apparatus 50 to sort the sounds listed in the sounds list 116 (these being the sounds which the game control unit 84 has requested by played at that particular time) in accordance with predetermined criteria, and to cause the sound controller 76 and audio driver 78 to generate and output sounds for a predetermined number of sounds on the sorted sounds list.
A"stop"instruction from the game control unit 84 is accompanied by data defining a sound structure currently being played to be stopped. In response to a"stop" instruction, the sound stopper 128 instructs the sound controller 76 to stop the specified sound being output by the audio driver 78 should this be necessary (that is, if
<Desc/Clms Page number 15>
the sound is actually being output by the audio driver 78).
A"delete"instruction from the game control unit 84 is accompanied by data specifying a sound structure 112 to be deleted. In response to a"delete"instruction, the sound deleter 130 deallocates the memory for the identified sound structure 112.
The processing operations of the audio manager 88 in this embodiment will now be described in detail with reference to the processing flow charts of Figure 4 to 12.
Figure 4 illustrates the processing operations carried out by the sound creator 122 of the audio manager 88 to create a sound structure 112 in response to a"create" instruction from the game control unit 84.
Referring to Figure 4, at step S4-2, an enquiry is made of the sound controller 76 provided in the computer apparatus 50 as to whether it is capable of generating the sound to be created. This involves the sound controller 76 checking the audio driver 78 with its sounds storage unit 80 to ensure that sounds data and processing capability exist for the required sound output
<Desc/Clms Page number 16>
to be generated. If the sound controller 76 returns a message indicating that it cannot create the sound, at step S4-4 an error message is sent by the audio manager 88 to the game control unit 84. If, on the other hand, the sound controller 76 can create the sound, at step S4-6 the sound structure generator 114 generates a sound structure 112 corresponding to the sound to be created in response to a request from the sound creator 122. At step S4-8, the sound creator 122 sends the address of the sound structure 112 generated at step S4-6 to the game control unit 84.
The"create"sound instruction can be sent to the audio manager 88 by the game control unit 84 at any time. The advantage of sending a large number of these instructions initially is that sound structures 112 are stored in memory and are available for use immediately. However, the disadvantage of creating a large number of sound structures 112 at an initial stage is that they can be expensive of memory. Thus, it can be more useful to create sound structures 112 as they are required.
However, the disadvantage of creating sound structures as they are required is that this can lead to demands on the processing power of the entertainments system at inappropriate times, which can cause delays in delivery
<Desc/Clms Page number 17>
of other output to a user. A program developer will find the best compromise between these two extremes, dependent upon the capabilities of the hardware on which the program product implementing the audio manager is to be operated.
Figure 5 shows the processing operations performed by the audio manager 88 in response to an"update"instruction from the game control unit 84. Such an instruction is sent by the game control unit 84 to change one or more properties of a sound, such as the volume of the sound, the priority of the sound, the playback speed of the sound etc. The"update"instruction sent by the game control unit 84 identifies the sound structure 112 to be updated and the new properties thereof.
Referring to Figure 5, at step S5-2, the sound updater 124 of the audio manager 88 determines whether the sound structure 112 defined in the received"update" instruction exists in the audio manager 88, that is whether it has previously been created by the sound creator 122 and the sound structure generator 114. If not, then at step S5-4, an error message is sent back to the game control unit 84. On the other hand, if the sound structure 112 does exist, then at step S5-6, the
<Desc/Clms Page number 18>
sound updater 124 updates the properties of the identified sound structure 112 in accordance with new properties defined in the"update"instruction.
Following the update of the sound structure properties, at step S5-8, the sound updater 124 sends a confirmation message to the game control unit 84. The routine then ends.
Figure 6 shows the processing operations performed by the audio manager 88 in response to an instruction received from the game control unit 84 to"play"a sound.
The received"play"instruction identifies the sound structure 112 to be played using the address of the sound structure which was returned to the game control unit 84 by the audio manager 88 in step S4-8 when the sound structure was created.
Referring to Figure 6, at step S6-2, the sound player 126 determines whether the sound structure 112 identified in the received"play"instruction exists in the audio manager 88, that is whether it has previously been created by the sound creator 122 and the sound structure generator 114. If not, then at step S6-4, the audio
<Desc/Clms Page number 19>
manager 88 sends an error message to the game control unit 84. On the other hand, if the sound structure 112 does exist, then at step S6-6, the sound player 126 adds the identified sound structure 112 to the sounds list 116, and at step S6-8 defines the play status of the sound structure to be"playing". It should be noted, however, that this does not mean that the sound is generated and output by the sound controller 76 and audio driver 78 of the computer apparatus 50. Instead, by adding the sound structure to the sounds list 116 and changing the play status to"playing", this indicates to the sounds list refresher 120 that the intention of the game control unit 84 is for the sound to be generated and output to the user. The way in which the audio manager 88 determines which of the sounds of the sounds list 116 are to be generated and output by the processing apparatus 50 will be described below.
At step S6-10, the audio manager 88 sends a confirmation message to the game control unit 84 indicating that the requested sound is now playing. In this way, the game control unit 84 is informed that the sound is playing even though the sound may not be generated and output by the processing apparatus 50. Accordingly, the game control unit 84 believes that normal operation is taking
<Desc/Clms Page number 20>
place, preventing errors occurring in the game software.
Figure 7 shows the processing operations performed by the audio manager 88 in response to a"refresh"instruction from the game control unit 84. As noted previously, in this embodiment, a"refresh"instruction is sent by the game control unit 84 to cause these processing operations to be performed by the audio manager 88 every time a frame of image data is to be generated and output while the game defined by the game control unit 84 is being played by the user on the computer apparatus 50.
Referring to Figure 7, at step S7-2, the sorter 118 of the audio manager 88 sorts the list of sound structures on the sounds list 116.
Figure 8 shows the processing operations performed by the sorter 118 at step S7-2.
Referring to Figure 8, at step S8-2, for each sound structure listed on the sounds list 116, the sorter 118 combines the stored priority value and volume value. In this embodiment, the priority value and volume value are added as a linear combination, although other forms of combination are, of course, possible.
<Desc/Clms Page number 21>
At step S8-4, the sorter 118 sorts the sound structures listed on the sounds list 116 in accordance with the combined priority/volume values generated at step S8-2, so that the sorted sound structures are listed on the sounds list 116 in decreasing order of combined priority/volume value (that is, with the sound structure having the highest value at the top of the list).
Referring again to Figure 7, at step S7-4, the sounds list refresher 120 selects the top predetermined number of sound structures from the sorted sounds list 116 generated at step S7-2. The number of sound structures selected at step S7-4 is set in dependence upon the number of sounds which the sound controller 76 and audio driver 78 of the processing apparatus 50 can generate and output to the user simultaneously. More particularly, the number is set so that the sound controller 76 and the audio driver 78 are never overloaded. For example, in this embodiment, the number of sound structures selected at step S7-4 is set to 16.
At step S7-6, the sounds list refresher 120 determines whether any of the sound structures on the sounds list 116 which were not selected at step S7-4 (because they were below the sixteenth entry on the sounds list 116)
<Desc/Clms Page number 22>
have resources allocated thereto by the sound controller 76 within the processing apparatus 50.
For each non-selected sound structure determined at step S7-6 to have computer resources allocated thereto, at step S7-8 the sounds list refresher 120 instructs the sound controller 76 to stop generating and outputting the sound and to release the sound resource.
In this way, the resources of the computer processing apparatus 50 available for generating and outputting sounds are not used for sounds which do not make the top predetermined number of sounds after the sort operation of step S7-2. These resources can therefore be used to generate and output the sounds selected at step S7-4.
At step S7-10, the sounds list refresher 120 instructs the sound controller 76 to allocate sound processing resources and to generate and output sounds to the user for each of the sound structures selected at step S7-4.
Figure 9 shows the processing operations performed by the sounds list refresher 120.
Referring to Figure 9, at step S9-2, the sounds list
<Desc/Clms Page number 23>
refresher 120 considers the next sound structure selected from the sounds list 116 at step S7-4 (this being the first-the top-sound structure the first time step S9- 2 is performed).
At step S9-4, the sounds list refresher 120 communicates with the sound controller 76 to determine whether the sound structure considered at step S9-2 already has a computer sound resource allocated thereto by the sound controller 76.
If it is determined at step S9-4 that the sound structure already has a sound resource, then at step S9-6, the sounds list refresher 120 instructs the sound controller 76 to update the existing sound resource with any sound structure changes which have previously been received form the game control unit 84 and stored in the corresponding sound structure 112 as a result of the processing described above with reference to Figure 5.
At step S9-8, the sounds list refresher 120 determines from the sound controller 76 whether the sound resource allocated to the selected sound structure is already playing.
<Desc/Clms Page number 24>
If the sound resource is not already playing, then at step S9-10, the sounds list refresher 120 instructs the sound controller 76 to play the sound resource. On the other hand, if it is determined at step S9-8 that the sound resource is already playing, step S9-10 is omitted.
Referring again to step S9-4, if it is determined that the sound structure selected at step S9-2 does not already have a computer sound resource allocated thereto, then at step S9-12, the sound list refresher 120 instructs the sound controller 76 to allocate a computer sound resource and to generate and output the sound.
Figure 10 shows the processing operations performed by the sound controller 76 in response to an instruction from the audio manager 88 at step S9-12.
Referring to Figure 10, at step S10-2, the sound controller 78 allocates a new sound resource for the sound structure 112 defined in the instruction from the audio manager 88.
At step S10-4, the sound controller 76 determines whether the sound resource allocation performed at step S10-2 was successful and, if not, sends an error message to the
<Desc/Clms Page number 25>
audio manager 88 at step S10-6.
On the other hand, if the sound resource allocation was successful, then, at step S10-8, the sound controller 76 changes the sound resource based on the properties of the sound structure 112 defined in the instruction from the audio manager 88.
At step S10-10, the sound controller 76 controls the audio driver 78 to generate and output the sound to the user.
At step S10-12, the sound controller 76 sends a confirmation message to the audio manager 88 confirming that the sound has been generated and output.
Referring again to Figure 9, after the processing performed at step S9-10 or the processing performed at step S9-12, the sounds list refresher 120 determines whether there is another sound structure from those selected at step S7-4 to be processed.
Steps S9-2 to S9-14 are repeated until each of the top sixteen sound structures selected at step S7-4 has been processed in the way described above. These processing
<Desc/Clms Page number 26>
operations are performed sufficiently fast that the sounds are generated and output by the processing apparatus so that they play simultaneously-that is, without any delay between the sounds being perceivable to the user.
Referring again to Figure 7, following the processing at step S7-10 described above, at step S7-12, the sounds list refresher 120 determines whether any of the sound structures not selected at step S7-4 are non-looping.
Any non-looping sound structure which was not selected at step S7-4 is then removed from the sounds list 116 at step S7-14. In this way, sounds which are not being generated and output to the user (because they were not selected at step S7-4) and which are not to be subsequently repeated (because they are non-looping) are removed from the sound list 116.
As a result of performing the processing described above with reference to Figures 7 to 10, the audio manager 88 controls the generation and output of sound in such a way that the resources of the computer apparatus 50 are never overloaded, but the most important sounds in the context of the computer program product being run are still output to the user.
<Desc/Clms Page number 27>
Figure 11 shows the processing operations performed by the audio manager 88 in response to a"stop"instruction received from the game control unit 84.
The stop instruction sent by the game control unit 84 defines the identity of the sound structure 112 for the sound to be stopped.
Referring to Figure 11, at step Sll-2, the sound stopper 128 of the audio manager 88 determines whether the sound structure identified in the received"stop"instruction from the game control unit 84 exists. If not, then at step Sll-4, the audio manager 88 sends an error message to the game control unit 84.
On the other hand, if it is determined at step Sll-2 that the specified sound structure does exist, then at step Sll-6, the sound stopper 128 determines whether the sound structure has a computer resource allocated thereto by the sound controller 76.
If it is determined at step Sll-6 that the sound structure does have an allocated sound resource, then at step Sll-8, the audio manager 88 instructs the sound controller 76 to stop playing the sound if it playing,
<Desc/Clms Page number 28>
and to free the computer sound resource.
Following the processing at step S11-8, at step Sll-10, the sound stopper 128 then removes the sound structure from the sounds list 116.
Referring again to step Sll-6, if it is determined that the sound structure defined in the instruction from the game control unit 84 does not already have a sound resource, then at step Sll-12, the sound stopper 128 determines whether the sound structure is listed in the sounds list 116.
If it is determined at step Sll-12 that the sound structure is listed in the sounds list 116, then at step Sll-10, the sound stopper 128 removes the sound structure from the sounds list 116. On the other hand, if the sound structure is not listed in the sounds list 116, step Sll-10 is omitted, and processing proceeds from step Sll-12 to step Sll-14.
At step Sll-14, the sound stopper 128 changes the sound structure's play status to"stop".
At step Sll-16, the sound stopper 128 then sends a
<Desc/Clms Page number 29>
confirmation message to the game control unit 84 confirming that the sound has been stopped.
Figure 12 shows the processing operations performed by the audio manager 88 in response to a"delete"sound instruction received from the game control unit 84.
Referring to Figure 12, at step S12-2, the sound deleter 130 determines whether the sound structure identified in the received instruction from the game control unit 84 exists. If not, at step S12-4, the audio manager 88 sends an error message to game control unit 84.
On the other hand, if it is determined at step S12-2 that the sound structure does exist, then at step S12-6, the sound stopper 128 performs the processing operations described above with reference to Figure 11 to stop the sound being played, if it is already being played.
At step S12-8, the sound deleter 130 destroys the sound structure 112 identified in the instruction from the game control unit 84 and deallocates the memory previously occupied by the sound structure.
At step S12-10, the audio manager 88 sends a confirmation
<Desc/Clms Page number 30>
message to the game control unit 84 that the sound structure has been deleted.
Many modifications can be made to the embodiment described above without departing from the scope of the present invention.
For example, in the embodiment above, the audio manager 88 is provided as part of the computer program product developed on the apparatus 10. However, the audio manager 88 may be provided as part of the computer processing apparatus 50, as part of the hardware and/or software thereof.
In the illustrated embodiment, the processing at step S7- 2 to sort the sounds on the sounds list 116 (and therefore determine which sounds are to be generated and output by computer apparatus 50) is performed by combining the priority and volume values of the sound structures and sorting the sound structures in dependence upon the combined priority/volume values. However, instead, the sound structures may be sorted in dependence upon other combinations of properties, or they may be sorted on the basis of a single property alone (such as the volume or priority). Alternatively, the sound
<Desc/Clms Page number 31>
structures may first be sorted on the basis of priority and subsequently on the basis of volume. In this way, the volume will determine the primary order of the sound structures on the sounds list, and any sounds with equal volume will be secondarily sorted in order of priority.
In a further modification, the level of priority assigned to a sound may not be set by a developer using apparatus 10 at the program development stage. Instead, the priority might be a function of the state of the program and may be set of a consequence of a user input as the game is played. In that way, the way in which priority is assigned to a sound can be adapted to the circumstances of use of the product by the user.
Whereas the illustrated embodiment illustrates sound resources as being defined by sounds in data store 30 provided in the development tool and incorporated into a software product in a sound storage unit 80, it will be appreciated that sounds could be retrieved from external locations, such as locations accessible via the Internet, or could be synthesised in the console in use of the program product.
Whereas the illustrated embodiment illustrates that a
<Desc/Clms Page number 32>
computer program product can be generated and stored on an optical disk, it can alternatively be placed on a magnetic recording medium such as a floppy disk. Also, the product could be recorded in a cartridge containing a read only memory (ROM), for insertion into a cooperating console.
While the entertainment system 50 is illustrated as having a display 58 and a loudspeaker 56, it will be appreciated that the display and the loudspeaker may be replaced by a television receiver, the console in that case being capable of generating a television signal conveying an audio signal for generation of sounds in accordance with the priority of the sorted sounds.
It will be recognised that, in Figure 4, an error message is generated if the sound controller 76 cannot create a sound identified in a"create"instruction. This error message is sent to the game control unit in step S4-4.
In use, it will be undesirable for the game control unit 84 to pass these error messages for display to the user, since this would interrupt the operation of the game.
Further, an alternative embodiment of the invention may provide that error messages are not sent to the game
<Desc/Clms Page number 33>
control unit, because this may increase the processing speed of the program product incorporating an audio driver configured in that manner.
However, error messages may be useful during the process of developing a computer program product, since discrepancies and errors in a program product may be identified. Thus, an alternative embodiment of the audio library 28 may be configured to send error messages and confirmation messages, providing diagnostic information to the program developer; these error messages may be configured to be recorded in a file for later reference by a program developer. In that way, any error, such as failure to generate a sound resource, can be identified at an early stage and a solution can be provided before the final version of the program product is produced and released to customers.

Claims (19)

  1. CLAIMS 1. A computer processing apparatus for running a computer program and generating and outputting sounds in response to instructions from the computer program, comprising : means for receiving instructions from the computer program defining sounds to be generated and output; means for maintaining a record of sounds instructed by the computer program to be generated and output; means for prioritising the sounds defined in the record in accordance with at least one criterion; means for selecting a predetermined number of sounds defined in the record in accordance with the prioritisation; and means for generating and outputting the selected sounds so that the sounds play simultaneously.
  2. 2. Apparatus according to claim 1, wherein the means for maintaining the record of sounds is operable to update the record in response to create, play, stop and delete sound instructions from the computer program.
  3. 3. Apparatus according to claim 1 or claim 2, wherein the means for maintaining the record of sounds is
    <Desc/Clms Page number 35>
    operable to change the stored properties of a sound in response to instructions from the computer program.
  4. 4. Apparatus according to any preceding claim, wherein each sound instructed by the computer program to be played has a plurality of specified properties, and wherein the means for prioritising the sounds is arranged to prioritise the sounds in dependence upon at least one of the specified properties.
  5. 5. Apparatus according to claim 4, wherein the means for prioritising the sounds is arranged to prioritise the sounds in dependence upon a combination of the values of at least two specified properties.
  6. 6. Apparatus according to claim 4 or claim 5, wherein the means for prioritising sounds is arranged to prioritise the sounds in dependence upon a property specifying an assigned priority of each sound.
  7. 7. Apparatus according to claim 6, further comprising means for changing the priorities assigned to sounds as properties in dependence upon user instructions input as the computer program is run.
    <Desc/Clms Page number 36>
  8. 8. Apparatus according to any of claims 4 to 6, wherein the means for prioritising sounds-is arranged to prioritise the sounds in dependence upon a property specifying an assigned volume of each sound.
  9. 9. A method of controlling the generation and output of sounds in a computer processing apparatus, comprising: receiving instructions from a computer program being run on the apparatus defining sounds to be played; storing data identifying sounds instructed by the computer program to be played and updating the data as further instructions from the computer program are received; periodically prioritising the sounds to be played and selecting a subset of the sounds to be played simultaneously in accordance with the generated prioritisation; and instructing the computer processing apparatus to generate and output the selected subset of sounds.
  10. 10. A method according to claim 9, wherein, in the step of selecting a subset of the sounds, a predetermined number of the sounds to be played are selected.
  11. 11. A method according to claim 9 or claim 10, wherein,
    <Desc/Clms Page number 37>
    in the step of prioritising the sounds, the sounds are prioritised in dependence upon the volumes of the sounds, previously assigned priorities of the sounds, or a combination thereof.
  12. 12. A method according to any of claims 9 to 11, wherein the step of prioritising the sounds and selecting a subset of the sounds is performed at times dependent upon the generation and display of frames of image data as the computer program is run.
  13. 13. A computer program product having instructions for controlling the generation and output of sounds by a programmable computer processing apparatus, the instructions comprising instructions for causing the programmable processing apparatus to become operable to: determine the sounds to be output in accordance with instructions from a computer program being run on the apparatus; determine a priority for the sounds to be output at a given time; and determine which sounds are to be generated and output at a given time in dependence upon the determined priority.
    <Desc/Clms Page number 38>
  14. 14. A computer program product according to claim 13, wherein the instructions for causing the programmable processing apparatus to become operable to determine a priority for the sounds comprise instructions for causing the apparatus to become operable to determine the priority in dependence upon data supplied by the computer program being run on the apparatus specifying at least one property of each sound.
  15. 15. A computer program product comprising instructions for causing a programmable processing apparatus to become operable to perform a method as set out in at least one of claims 9 to 12.
  16. 16. A computer program product comprising: instructions defining a computer game which, when run on a computer apparatus, instruct the apparatus to generate and output image data and sounds in accordance with the game defined by the instructions; and instructions which, when run, cause the computer apparatus to control the generation and output of sounds by: maintaining a list of sounds instructed by the computer game to be played; and each time sounds are to be generated and output,
    <Desc/Clms Page number 39>
    ordering the sounds to be played and selecting a subset thereof to be generated and output.
  17. 17. A computer program product comprising instructions defining a library of functions for incorporation into a computer program defining a computer game, the instructions including instructions defining an interface between the computer game and the computer on which the game will be run to control the playing of sounds by: maintaining a list of sounds instructed by the computer game to be played; and selecting which sounds are to be played by the computer and which sounds are not to be played thereby by ordering the sounds on the list in dependence upon at least one of their properties.
  18. 18. A computer program product according to any of claims 13 to 17, when embodied as a storage device storing the instructions.
  19. 19. A computer program product according to any of claims 13 to 17, when embodied as a signal conveying the instructions.
GB0112443A 2001-05-22 2001-05-22 Sound controller for computer apparatus Expired - Fee Related GB2377039B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0112443A GB2377039B (en) 2001-05-22 2001-05-22 Sound controller for computer apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0112443A GB2377039B (en) 2001-05-22 2001-05-22 Sound controller for computer apparatus

Publications (3)

Publication Number Publication Date
GB0112443D0 GB0112443D0 (en) 2001-07-11
GB2377039A true GB2377039A (en) 2002-12-31
GB2377039B GB2377039B (en) 2005-02-23

Family

ID=9915080

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0112443A Expired - Fee Related GB2377039B (en) 2001-05-22 2001-05-22 Sound controller for computer apparatus

Country Status (1)

Country Link
GB (1) GB2377039B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574934A (en) * 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
US5703794A (en) * 1995-06-20 1997-12-30 Microsoft Corporation Method and system for mixing audio streams in a computing system
WO2000028409A1 (en) * 1998-11-05 2000-05-18 Gateway, Inc. Multiple audio dacs with pc compatibility

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574934A (en) * 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
US5703794A (en) * 1995-06-20 1997-12-30 Microsoft Corporation Method and system for mixing audio streams in a computing system
WO2000028409A1 (en) * 1998-11-05 2000-05-18 Gateway, Inc. Multiple audio dacs with pc compatibility

Also Published As

Publication number Publication date
GB0112443D0 (en) 2001-07-11
GB2377039B (en) 2005-02-23

Similar Documents

Publication Publication Date Title
US5642477A (en) Method and apparatus for selectably retrieving and outputting digitally stored multimedia presentations with real-time non-interrupting, dynamically selectable introduction of output processing
JP4729186B2 (en) Musical space configuration control device, musical presence formation device, and musical space configuration control method
US6539415B1 (en) Method and apparatus for the allocation of audio/video tasks in a network system
JPH10511801A (en) Method for enabling multimedia applications on hardware platforms with various different resource levels, physical records containing such applications, and apparatus for executing such applications
US6542692B1 (en) Nonlinear video editor
JP3346957B2 (en) Video arrangement method and video arrangement system
US7987282B2 (en) Audiovisual distribution system for playing an audiovisual piece among a plurality of audiovisual devices connected to a central server through a network
US6415101B1 (en) Method and system for scanning and displaying multiple view angles formatted in DVD content
GB2363017A (en) Processing image data
US20030020742A1 (en) Method and system for generating a user interface for distributed devices
JP2000099341A (en) System for remotely loading object or file for updating software
US5404511A (en) Compact disc player with fragment memory management
EP1591884A2 (en) Information processing apparatus, information processing method, and program
US20060114727A1 (en) Audio visual architecture
US20040102861A1 (en) Computer system and method controlling audio signal outputs of application programs
GB2377039A (en) Sound controller for computer apparatus
US6324562B1 (en) Information processing apparatus, multitask control method, and program recording medium
JPH10124352A (en) Method for managing file in library and server device for library
US6754351B1 (en) Music apparatus with dynamic change of effects
US20030011634A1 (en) Method and system for generating a user interface for distributed devices
CN112887786B (en) Video playing method and device and computer readable medium
GB2329811A (en) Providing Graphical User Interfaces for player/recorder systems.
US20050162558A1 (en) Multimedia authoring system
JP3572847B2 (en) Sound source system and method using computer software
US11316945B2 (en) Vehicle multimedia system and memory management method therefor

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20190522