I use something like this ( need refinement ) but does it's job.
Gear = Floor( LIMIT( CMspeedZ , 0 , 10.0 ) / v\GearRatio )
Diff# = Abs( CMspeedZ - Gear * v\GearRatio )
ChannelPitch v\CHANNELengine , ( 20.0 + Gear * 5.0 + Diff * 10.0 ) * v\Enginepitch
ChannelVolume v\CHANNELengine , ( 1.5 + v\SOUNDvol * Abs(Throttle) * .5 ) * .5
Where
CMspeedZ is the cars forward speed
Throttle is 1 if accelerator pressed, -1 if breaking.
GearRatio is just a number to determine how many gears you can go through based on the top speed. (e.g. TopSpeed 10, GearRatio = 3, => 4 gears.
Other vars should be self explanitory. Just a case of playing with them.
Stevie