Measured tire contact sound
TireAudio adds original rolling, braking, and lateral scrub noise for the player. It contains no downloaded recording. The component is separate from the primary engine and the CC0 recorded mechanical layer.
Integration and controls
The public contract is Initialize(RiderProfile), Bike, and Racing. RampageApp creates the component and mirrors the primary engine's bike and racing state. The component reads the actual controller's Grounded, OnRoad, SpeedKph, signed LateralSlipMps, and post-assistance AppliedBrake01. It requires an active, grounded player; wheel sound fades out when stopped, airborne, crashed, or outside a race. Pausing stops the audio source immediately. Live effectsVolume controls tire gain; master volume remains with AudioListener.
Rolling noise rises smoothly with actual ground speed. Shoulder contact has a rougher noise balance. Braking adds dry friction according to actual applied braking and speed. Lateral scrub rises with measured sideways velocity above a quiet threshold; it is not triggered merely by steering input. The noise resonance changes with measured speed and slip. This is perceptual sound design, not a physical tire-acoustics simulation.
Implementation and verification
A dedicated child object owns its AudioSource and TireNoiseVoice, so its audio callback does not overwrite the engine source. The carrier clip is silent; a continuous stateful noise processor supplies the samples. The callback uses only managed arithmetic and primitive parameter snapshots, with no Unity API calls or per-buffer allocation. Controls smooth over approximately 18 ms; the source also fades during contact/state transitions. Output is limited to ±0.30 before source and master gains. Device-rate changes update coefficients on the main thread.
The component and visual source compile against actual Unity 6000.3.24f1 Core/Audio/Animation assemblies with contract stubs for external components. An offline pure-DSP check processed 18,432,000 samples across 22.05, 44.1, 48, and 96 kHz in mono, stereo, and six channels. Output remained finite; observed maximum absolute amplitude was 0.284679. After the targets were set to zero, final RMS was 3.022 × 10⁻⁹. These numerical checks verify bounded output and fade behavior; they do not constitute a listening test.
The numerical test report is tire-dsp-verification.json, including the tested source SHA-256.
Current integrated testing and remaining listening acceptance are documented in QA-RESULTS.md.