For the sound of jet planes it is very important from which side we look at it. The sounds from the front and rear of the aircraft are very different. Therefore, in the advanced version, we must separately sound both sides.
There are 13 sounds for advanced version: Startup, Startup_Front, Startup_Back and Shutdown, Shutdown_Front, Shutdown_Back (at will), Idle, Idle_Front, Idle_Back and Maximum_Front, Afterburner_Back, Distant and Distant_Back sounds. If you need to separately sound the cockpit, then use the following sounds: Startup_cockpit, Shutdown_cockpit, Idle_cockpit, Maximum_cockpit, Afterburner_cockpit and Avionics_cockpit. Avionics_cockpit should always be with pitch and gain = 1.
As in the simple way for the advanced way we need engine RPM, normalized to 0-1 range and SPEED of aircraft for distant sounds. Distant sounds (Distant and Distant_Back) should not be heard at low speed. Therefore, for all distant sounds, after calculating the volume from RPM from the table below, add a multiplier when the SPEED is below 400km/h:
if (SPEED < 400)
gain = gain * (SPEED / 400);
Thus, the volume of the distant sounds will drop to zero when the speed drops below 400 km/h.
If you want to use the sounds of Startup and Shutdown, then limit the control of the aircraft to the user for the length of the startup and shutdown sounds respectively. And play Startup, Startup_Front, Startup_Back (for cockpit — Startup_cockpit) sounds for startup and Shutdown, Shutdown_Front, Shutdown_Back (for cockpit — Shutdown_cockpit) for shutdown. Make sure all other sounds are turned off while playing these sounds. Immediately after the startup sounds, the rest of the sounds should be started with the gain and pitch for RPM = 0.
The Afterburner sounds should play only when the RPM is more than 0.95.
Let’s display the parameters of the gain and pitch of the other sounds we need in the table:
| GAIN | PITCH |
---|
Idle, Idle_cockpit | – 0.34 * RPM + 1 | 0.382 * RPM + 1 |
Idle_Front | – 0.45 * RPM + 1 | 0.382 * RPM + 1 |
Idle_Back | 1.5 * RPM + 1 | 0.2 * RPM + 1 |
Maximum_Front, Maximum_cockpit | RPM | 0.3 * RPM + 0.7 |
Afterburner_Back, Afterburner_cockpit | if (RPM >= 0.95)
28 * RPM – 26.6 | 1.0 |
Distant, Distant_Back | 0.7 * RPM + 0.3 | 0.25 * RPM + 1 |
To understand how to use it – see an example for a simple implementation.