Load engines from TOML and improve scenario audio and carb tuning
Migrate 32 engine definitions into validated startup-loaded TOML files and separate configuration and snapshots from scenario assembly. Add camera-based stereo propagation from shared pipe geometry, preserve exhaust character, tune carburetor mixtures and idle, use ignition cuts for carb engines, and support returning to the scenario menu. Validation: full Windows build and all 14 CTest checks passed.
This commit is contained in:
38
verification/CUSTOM_EXHAUST_CHARACTER.md
Normal file
38
verification/CUSTOM_EXHAUST_CHARACTER.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# Custom exhaust pulse character
|
||||
|
||||
Compared the previous `src/scenario.cpp` from HEAD with the updated implementation
|
||||
using the same capture tool, default Rusanov solver, dry scene, 55% pedal,
|
||||
3,000 RPM, 0.6 s warmup and 0.5 s recording. No gain normalization or added
|
||||
noise/distortion was applied. Captures are in `out/audio-character/`.
|
||||
|
||||
Energy fractions below use both channels, discard the first 20% of the recording,
|
||||
remove DC and apply a Hann window. The denominator is spectral energy from 20 Hz
|
||||
to 6 kHz. Upper harmonics are above 1.5 times the aggregate firing frequency
|
||||
(RPM / 120 * cylinders); low orders are below 0.8 times that frequency. These
|
||||
are engineering checks on pulse character, not a perceptual realism score.
|
||||
|
||||
| Example | Upper harmonics, before ? after | Low orders, before ? after |
|
||||
| --- | --- | --- |
|
||||
| Inline three | 78.6% ? 85.6% | <0.1% ? <0.1% |
|
||||
| F20 inline four | 53.2% ? 87.0% | <0.1% ? 1.1% |
|
||||
| Inline five | 51.6% ? 92.5% | <0.1% ? 0.3% |
|
||||
| RB26 inline six | 21.4% ? 88.4% | <0.1% ? <0.1% |
|
||||
| Long-stroke inline six | 29.0% ? 81.3% | <0.1% ? <0.1% |
|
||||
| Big-block V8 | 40.3% ? 59.6% | <0.1% ? 23.2% |
|
||||
| V10 | 84.6% ? 31.0% | <0.1% ? 14.4% |
|
||||
| V12 | 52.2% ? 55.1% | 0.1% ? 19.7% |
|
||||
|
||||
The V10's energy shifts toward lower bank orders rather than simply becoming
|
||||
brighter. All eight updated examples also completed fixed-RPM captures at 1,000
|
||||
and 6,000 RPM using the same warmup/duration/pedal. All 24 updated captures
|
||||
produced finite audio with zero clipping samples. Maximum rendered absolute
|
||||
amplitude across these captures was 0.524 full scale.
|
||||
|
||||
The catalog regression runs each example through one second of throttle and one
|
||||
second of pedal release. It checks finite audio, sustained positive RPM, zero
|
||||
pipe positivity repairs, big-block power, and the new topology flags. The desktop
|
||||
UI and physics regression tests cover the existing controls and base simulation.
|
||||
|
||||
For listening comparisons, match playback loudness: removing large collector
|
||||
volumes increases level as well as changing spectrum. Geometry and calibration
|
||||
remain estimates; these measurements do not establish a match to recorded engines.
|
||||
Reference in New Issue
Block a user