RELTED APPLICATION This application claims priority based upon provision patent application patent application Ser. No. 60/199,011, “Methods for Synthesis of International Combustion Engine Vehicle Sounds”, filed Apr. 20, 2000.
FIELD OF THE INVENTION The present invention relates to electronic and computer synthesis of sounds. More specifically, it relates to devices and methods for the synthesis of internal combustion engine vehicle sounds using physical models.
BACKGROUND OF THE INVENTION Many computer-implemented games and simulations involve internal combustion engine vehicles such as automobiles, motorcycles, airplanes, and boats. An important part of the simulation is the generation of sounds, which should resemble real vehicle sounds as much as possible. In particular, as the simulated vehicle conditions change, the computer generated sound should change accordingly. One known technique for generating such vehicle sounds uses a set of digitized recordings of the vehicle's sound under a few specific conditions (e.g., at certain vehicle speeds). These recordings are then played back using an interpolation technique to generate a vehicle sound under any conditions (e.g., at any vehicle speed). This technique, however, has several problems and disadvantages. For example, the recordings require significant memory storage space, and are limited to a single vehicle. Moreover, the recordings typically vary only one parameter (e.g., vehicle speed) while ignoring the possible variations of other independent parameters (e.g., engine load). As a result, the generated sound is either unrealistic or requires many more recordings and much more memory storage space to account for these additional parameters. Another problem with this technique is that the interpolation techniques introduce unrealistic distortions into the generated sounds. For example, an interpolation between two recorded vehicle speeds might involve oversampling a recording at a higher speed and/or undersampling a recording at a slower vehicle speed. Some components of the vehicle sound, however, do not scale with the engine speed in this manner. The result is that the generated sound will be unrealistic. Yet another disadvantage of using recordings is that they are specific to particular vehicles. In order for a game or simulation to allow for a variety of vehicle types, a very large number of recordings must be made under a large number of different vehicle operating conditions, and all the recordings must be stored. Clearly, there is a need for improved techniques for generating vehicle sounds for computer simulators and games.
SUMMARY OF THE INVENTION In one aspect of the present invention, computer-implemented techniques are provided for synthesizing sounds of an internal combustion engine vehicle using a physical model of the vehicle. In general terms, the method includes independently generating and/or synthesizing separate components of the vehicle sound, then combining these components to produce a final sound. Using a physical model of the vehicle, the separate components of the vehicle sound are independently generated from vehicle control parameters characterizing the operating conditions of the vehicle. The components are then combined using mixers and equalizers to produce a realistic vehicle sound. The present technique allows independent control of the separate components of the vehicle sound, is not limited to specific vehicles, and does not require recorded sounds taking large amounts of storage space.
In preferred embodiments of the invention, the physical model of the vehicle has sound-producing and sound-modifying signal processing blocks (e.g., spark generators, fuel ignition, and exhaust system), and also provides for additional noises (e.g., wind and road noise, suspension noise, and transmission noise). By adjusting the synthesis parameters, the techniques can be used to synthesize sounds produced by a wide variety of vehicle types, including but not limited to cars, trucks, motorcycles, boats, propeller airplanes, and trains.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a block diagram illustrating a synthesis architecture for creating a sound produced by a four-engine vehicle, including speed-related sounds such as wind noise.
FIG. 2 is a diagram illustrating the details of engine sound block shown inFIG. 1.
FIGS. 3A and 3B are block diagrams of two embodiments of an engine process model signal processing block shown inFIG. 2.
FIG. 4 is a block diagram illustrating the components of spark timing controlled sound signal processing block shown inFIG. 2.
FIG. 5 is a block diagram illustrating the components of the direct RPM controlled sound signal processing block shown inFIG. 2.
FIG. 6 is a block diagram illustrating the components of the RPM related sound signal processing block shown inFIG. 2.
FIG. 7 is a block diagram illustrating the components of the speed related sound signal processing block shown inFIG. 1.
FIG. 8 is a block diagram detailing the engine physical model shown inFIG. 3A.
FIG. 9 is a block diagram illustrating an example of an exhaust system model, which preferably forms a component within the spark timing controlled sounds block ofFIG. 4.
FIG. 10 is a diagram illustrating a variation of the engine sound block shown inFIG. 2, wherein optional load effect modules are included.
FIG. 11 is a diagram illustrating the details of the load effect modules shown inFIG. 10.
DETAILED DESCRIPTION The following description and related figures illustrate the techniques of the present invention in the context of various specific embodiments. Those skilled in the art will appreciate that many of the details of the following embodiments are not necessary for the practice of the invention, and are included for illustrative purposes only. The techniques of the present invention may be implemented in the form of instructions stored in a memory and executed by a general purpose microprocessor present in a desktop computer, laptop computer, video arcade game, and the like. The techniques of the present invention may also be implemented in hardware, i.e., using an ASIC that is part of a computer system. The synthesized signals from the microprocessor or ASIC are output to a user using an audio sound system that is either internal to the system or part of an external sound system connected to the computer system. The hardware preferably includes conventional state-of-the-art components well known in the art. Because the primary distinguishing features of the present invention relate to the specific synthesis techniques, the following description will focus on these techniques.
FIG. 1 is a block diagram illustrating a synthesis architecture for creating a sound produced by a four-engine vehicle, including speed-related sounds2 such as wind noise which are produced in response to sound control parameters4. This architecture is appropriate for synthesizing the sound of a four-engine aircraft. A single engine aircraft (or a car) would have a similar architecture, but with just one engine sound block6arather than four6a,6b,6c,6dproduced in response to one set ofengine control parameters8arather than four8a,8b,8c,8d. The speed-related sounds block2 is preferable, but not necessary. In the case of an aircraft, it primarily synthesizes wind noise. In the case of a land or water vehicle, it preferably synthesizes additional noises. For a land vehicle, it will preferably synthesize road noise, and for a water vehicle it will preferably synthesize water noise. It should be noted that these noises are related only to the speed of the vehicle, and do not depend directly on the vehicle engine. For example, a car coasting down a hill with its engine off will generate wind noise even though the engine is stopped. Conversely, a car parked at the starting line and racing its engine just before a race begins will have engine noise but no speed-related wind noise. Because these separatesignal processing blocks2,6a-6dare independently controlled, the appropriate sound under these various vehicle conditions will be realistically synthesized. The audio signals generated by these separate blocks are combined in an EQ andmixer10 to produce the final vehicle sound. The EQ filter, which is typically a simple first-order filter, can be controlled to adjust the relative strengths of the various components, accounting for whether the sound is being heard from inside the vehicle or outside the vehicle, from in front of the vehicle or behind the vehicle, from nearby or far away, and so on. Signal processing at the output stage can also be used to simulate other effects, such as acoustic reflections from nearby structures.
FIG. 2 is a diagram illustrating the details of engine sound block6ashown inFIG. 1. Thecontrol parameters8aprovided to the engine sound block as input are preferably parameters that represent natural physical operating controls or conditions of the vehicle being modeled. These controls preferably comprise one or more of the following parameters: engine RPM, engine load, vehicle acceleration, transmission gear ratio, throttle position, propeller pitch, and fuel mixture. Other parameters may also be included among these control parameters, as appropriate. These control parameters are used by anengine process model12 to generate various derived quantities, such asRPM14,engine load16, and sparkevents18. In cases where the RPM is not a primary control input, it is calculated. Similarly, if the engine load is not provided, it is calculated. If these parameters are provided as input, however, then they are simply passed through theengine process model12 to the other signal processing blocks, as shown in the figure. The specifics of the engine process model will be described in more detail below in relation toFIGS. 3A and 3B. The load and spark event signals16,18 from the engine process model enter a spark timing controlledsound processing block20, which will be described in more detail below in relation toFIG. 4. Thisblock20 models the engine combustion chamber, exhaust manifold, and other vehicle systems through which the spark-initiated explosive sounds propagate. The load and RPM signals16,18 from theengine process model12 are input to the direct RPM controlledsound processing block22 and RPM relatedsound processing block24, as shown. The direct RPM controlledsound processing block22, which will be described in more detail in relation withFIG. 5, models engine sound components that are directly tuned to RPM, but are not required to be phase-locked with spark timings. These include nonspecific timbral components that a sound designer may wish to include to enhance the sound quality, or specific vehicle sounds (such as a feedback FM helicopter model) that are created through algorithms which cannot be driven by spark timing models ofFIGS. 3A and 3B. The RPM relatedsound processing block24, which will be described in more detail in relation withFIG. 6, models various engine sounds related to the RPM, such as whines, whistles, roars, turbines, and rumbles. The tone qualities of the sounds generated by these blocks is controlled by the engine load signal. The sounds produced by these various blocks are combined in an equalizer andmixer25, then output from the engine sound block.
FIGS. 3A and 3B are block diagrams of two embodiments of an engine process model signal processing block shown inFIG. 2. The embodiment12ashown inFIG. 3A illustrates aphysical model26 which generates RPM and spark event signals together. Aload behavior model28 independently generatesengine load parameters16 from the control inputs. In this embodiment, a “gas pedal” control input can control the Load directly, and theRPM14 andSparks18 are generated together through aphysical model26 of a combustion engine driven by the gas pedal input signal. This physical model has the advantage that it produces very authentic non-periodic “rough” engine sounds.
The embodiment12bshown inFIG. 3B illustrates a model in which thesparks18 andRPM14 are generated separately. An engine inertia and load model30 generatesload16 andRPM14 parameters. The RPM parameter, in turn, is input to aspark timing generator32 that produces spark event signals18. This approach is less realistic than the physical model shown inFIG. 3A, but it has the advantage that it can take RPM as input. The engine inertial and load model30 can be implemented in various ways. In a preferred embodiment, it is implemented in one of three possible ways, depending on the particular application:
1. A throttle input drives an RPM and load output directly through first order smoothing effects such that RPM lags behind the throttle position modeling engine inertia at a Longer T60 (e.g., 5-10 sec.), and Load tracks throttle position much more quickly (e.g., at a T60 of 0.3 sec.).
2. RPM tracks an RPM input directly, and Load corresponds to an acceleration derived as a first derivative of RPM.
3. Load and RPM are controlled directly by an external Car physics model generated from another application program (such as a race car simulation game).
Unpredictable behaviors (e.g., a “rough” engine) can be introduced using a stochastic modulation of the RPM.
FIG. 4 is a block diagram illustrating the components of the spark timing controlled soundsignal processing block20 shown inFIG. 2. Spark event signals18 and load signals16 from the engine process model12 (i.e., a train of impulses representing spark timings and numerical parameters representing a degree of load) are input to theblock20 and provided to one or more internal blocks, as shown. The engineresonance model block34, for example, converts each spark impulse into a short resonant pulse (e.g., by passing the impulse through a second order resonant filter whose parameters may depend upon the load signal). The turbulence model block36 incorporates a pulsed noise model of turbulence. Theair chop model38 simulates air turbulence sounds such as those associated with propeller movement in an airplane. The one-shot sound file playback algorithm (40) can be used to add in recorded or synthesized sounds associated with a single spark of the engine, perhaps individual motorcycle or airplane “puts”, or more complex non-physical sounds which may suggest space vehicle qualities. The one shot sounds file playback algorithm could be used by the sound designer to add in arbitrary spark synchronized sounds components which may enhance the overall vehicle sound. Other blocks could be added here to simulate muffler resonances in anexhaust system model42, or sounds related to piston movements and reactions which are synchronized with the spark timings. The sounds produced by the various blocks are combined in an equalizer and mixer43, then output from the spark timing controlled sound block.
FIG. 5 is a block diagram illustrating the components of the direct RPM controlled soundsignal processing block22 shown inFIG. 2.RPM18load16 signals from the engine process model are input to theblock22 and provided to one or more internal blocks, as shown. The direct RPM controlled sounds are the sounds which are tuned exactly to RPM, but which do not require exact synchronization with the spark timings. The cross-fade loops block44 could be used to add in recorded loops of real engine sounds, tuned to RPM, or to introduce more hypothetical sounds of spaceships that a sound designer may create. The Feedback FM block46 could be used to create helicopter-like engine and propeller chop sounds. Other blocks might be used to create RPM tuned sounds that cannot be controlled easily by the spark timing elements ofFIGS. 3A and 3B. The sounds produced by the various blocks are combined in an equalizer andmixer47, then output from the direct RPM controlled sounds block.
FIG. 6 is a block diagram illustrating the components of the RPM related soundsignal processing block24 shown inFIG. 2.RPM14 andload16 signals from theengine process model12 are input to theblock24 and provided to RPM translation blocks48a,48b,48c,48d,48e. . .48n, and then to one or more internal blocks, as shown. RPM related sounds are correlated with RPM, but not necessarily in a linear or fixed way. For example a turbo charge sound may increase frequency with increased RPM, but in a more complex way than a direct scaling. The RPM translation blocks convert RPM to frequency and/or other sound control parameters which directly control the sound of the RPM related blocks. The output from these translation blocks is fed to various other blocks that simulate particular noises. For example, the whistles block50 simulates engine whistle-type noises, the whines block52 simulates engine whine noises, the engine roar block54 simulating lower frequency roaring noises, the turbines block56 is used in vehicles that have turbines in their engines, and the FM rumble block58 produces rumbling noises. Other blocks might be implemented to simulate non-physical sounds as may be produced from a space vehicle, or a larger-than-life monster truck. These RPM related (but not direct RPM controlled) sounds can add a great deal of liveliness to the overall composite sound by the very fact that their pitch relation to RPM is not constant. It should be noted that the particular combination of blocks used in a particular embodiment will depend on the specific vehicle. Vehicles without turbines, for example, will not make use of the turbine block56. The signals from these various blocks are combined in an equalizer and mixer60 and output from the block as an audio signal. As with the blocks inFIGS. 4 and 5, these various blocks may have filters whose parameters depend on the load signal provided to the blocks, as shown.
FIG. 7 is a block diagram illustrating the components of the speed related soundsignal processing block2 shown inFIG. 1. Control signals such as vehicle speed and road surface conditions are input to the block and provided to one or more internal blocks, as shown. Theroad noise block62 simulates road-related noises that depend on the type of surface, thewind noise block64 simulates air flow noises due to vehicle movement through the atmosphere, thetire noise block66 simulates noises due to the type of tire tread, as well as other effects such as tire chains and studs. Other similar blocks can be implemented that are related only to vehicle speed. For example, the clanking sounds related to a tank movement is related to speed, but not engine RPM. It could be implemented by a resonance model of the metallic clanks of the tank treads as they roll over various terrains. Wall scrapes as a car may make as it glances of a wall may be implemented here. Tire skid sounds may be implemented as a speed related algorithm, gated by whether the wheels are turning or not. It should be noted that the particular combination of blocks used in a particular embodiment will depend on the specific vehicle. Aircraft, for example, will primarily have wind noises, although some implementation of runway and tire noise is preferable to properly simulate noises during take-off, landing, and taxi. The signals from these various blocks are combined in an equalizer andmixer68 and output from theblock2 as an audio signal.
FIG. 8 is a block diagram detailing the enginephysical model26 shown inFIG. 3A. A starter motor provides an initial instantaneous shaft velocity (RPM)14 in response to an engine start control signal. Anangular integrator72 generates from the shaft velocity a shaft angle74, which is input to aspark timing model76. Thespark timing model76 simulates the firing of sparks at various shaft angles. The output of the spark timing model is a sequence of spark impulse event signals18 that simulate the firing of various sparks. The spark timing model is preferably implemented by a collection of spark triggers connected in parallel. Each trigger is set to a different shaft angle, so that their spark events are not simultaneous. The spark impulse events from all the triggers are combined in an adder to form a composite sparks signal18.
The sparks signal18 from thespark timing model76 is sent to a spark-force-to-velocity converter78 which models the physics of the engine that turns an electrical spark into angular shaft velocity. Theconverter78 comprises an integrator implemented using a second-order filter for flexibility in tuning. The poles of the filter are preferably placed near z=1, although other frequencies are possible. The computed shaft velocity is sent to avelocity regulator80 which also models some of the physics of the engine. In particular, the velocity regulator models such factors as load, friction, and throttle. The primary purpose of thisblock80 is to prevent the engine from increasing its RPM in an unbounded manner, and to provide a means for controlling the RPM (e.g., with the throttle control signal). The resultingshaft velocity output82 is injected back into the loop, and the cycle continues.
The engine inertia and load model30 ofFIG. 3B uses the same techniques as thephysical engine model26 described above in relation toFIG. 8. Rather than taking the spark signals18 from the physical model, however, the embodiment ofFIG. 3B generates them with a separatespark timing generator32, which is composed of an angular integrator and spark timing model, as described in relation toFIG. 8.
FIG. 9 is a block diagram illustrating an example of anexhaust system model42, which preferably forms a component within the spark timing controlled sounds block20 ofFIG. 4. The spark impulse signals18 first enter anexplosion spreading model84, which simulates the spreading of the initial pressure wave of the ignition explosion. In preferred embodiments, this explosion spreading block is implemented with a lowpass filter designed to spread the impulses.
The spreaded signal86 from theexplosion spreading model84 is then input to aturbulence model88, which simulates the various constrictions and/or bends in the exhaust system waveguide. These bends and constrictions introduce noise into the signal, with the amount of noise depending on the velocity of the pressure wave. The turbulence model is preferably implemented using filtered white noise that is introduced into the signal in proportion with the signal intensity.
After passing through theturbulence model88, the signal enters a filtering resonance model90, which is designed to simulate the exhaust muffler. This filter is preferably implemented using a few second-order resonant lowpass filters connected in parallel.
Because filtering and turbulence happen at various places along the exhaust path, and because turbulence is not a linear filtering, it is preferred in a more realistic exhaust system implementation to cascade multiple turbulence-filtering pairs, rather than just one pair as shown in the figure. In addition, certain pairs may be connected in parallel rather than cascaded. Very realistic sounds, however, can be produced using just one turbulence-filtering pair.
FIG. 10 is a diagram illustrating a variation of the engine sound block6ashown inFIG. 2. This variation of the engine sound block is the same as that described in relation toFIG. 2, with the exception that one or more optional load effect modules may be included, as shown. Preferably, the modules are inserted in one of three ways: 1) a single module92 between the spark timing controlled sounds and the equalizer andmixer block25, 2) a single module after the equalizer andmixer block94, or 3) threemodules92,96,98, where each one is inserted just before the equalizer andmixer block25, as shown, with inputs from theengine load signal16 and, respectively, the spark timing controlled sounds22, the direct RPM controlled sounds22, and the RPM related sounds24. Other configurations are also possible.
FIG. 11 is a diagram illustrating the details of the load effect modules shown inFIG. 10. An audio signal100 entering the module goes into ascale block102 which is controlled by theload signal16. The scaledaudio signal104 then passes into a non-linear distortion unit106. This nonlinear-distortion could be implemented as a hard clipping (meaning all input samples greater than 1 are set to 1, and all input samples less than −1 are set to −1, the rest are unmodified), or a “soft” clipping (such as a look-up table with a smooth monotonically increasing set of values centered at 0).
The load effect module simulates the “load” sound effect which happens, for example, when you push the gas pedal to the floor and accelerate a car. In this case, the load control signal would increase the scaling of the audio input, causing the non-linear distortion to produce a more “loaded” (i.e., broader spectrum) sound.
An alternative implementation of the load effect module has a scale and low pass boosting filter instead of just a scale alone. In this way, when the load control signal is increased, the audio signal input is bass boosted and then this lower frequency signal is distorted in the nonlinear distortion element giving a more “beefy” loaded sound.