Repository navigation
Traffic sounds follow the real vehicles, an interstate traffic bed, and three small 1.9.4 fixes - #330
Merged
Merged
Conversation
Owner, 2026-10-08: "the sounds aren't synced with the NPC traffic". The pass whoosh fired when a vehicle crossed the bumper, but the recordings peak anywhere from 0.1 s to 1.7 s in, so at ten times pacing the loudest moment came after the car was gone; the six-second cooldown dropped most passes; and on an exit ramp, where the odometer holds, every mainline car "passed" the truck dead centre. Ramp-end crossing cues were led by half the length of the numpy stand-ins they replaced, not the ElevenLabs takes now shipped. Now the three nearest vehicles, mainline or crossroad, each run a steady class loop (rendered with genny, sound-test/traffic_voices.json) whose level, pan and pitch are set every frame from where the vehicle is. On a ramp the mainline sits left and fades as the ramp diverges. Interstates and divided multi-lane highways carry a distant-traffic bed at the road's real presence (TrafficManager::freeway_presence_at), and the road bed is 6 dB louder. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014DuoQRmLEsNcqx7amDGVXS
Owner, 2026-10-08: the Engine voice and Engine brake voice settings and the new traffic loops were named as if they spoke. Player-facing labels, the manual, the ontology and the sound catalog say sound now; the saved setting keys stay as they are so settings carry over. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014DuoQRmLEsNcqx7amDGVXS
Ported from 2.0 (PR #259): the terminal's Bobtail to a nearby city and an already-open bobtail menu now refuse with the date the suspension ends, the same pulled CDL that already stops the dispatch board. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014DuoQRmLEsNcqx7amDGVXS
Issue #289: a player saw Shuffle personal playlists in Settings and could not find how to add music at all. The radio status screen now reads the folder's full location while no personal playlist is loaded and streamer-safe mode is off; it goes quiet once one is on the dial. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014DuoQRmLEsNcqx7amDGVXS
1 task done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Orinks · project thread
What changed and why
Before: traffic was a one-shot pass recording fired on a 6 second cooldown, so its peak rarely matched the car it stood for. Passes were dropped, and on an exit ramp the held odometer made mainline cars "pass" dead centre. Cross-traffic cues at the ramp end came from placeholder recordings with the wrong lead. Interstates had no sound of distant traffic, and the road noise sat about 15 dB under the engine.
After: each of the three nearest real vehicles gets its own steady loop. Its volume, pan and Doppler rate are set every frame from that vehicle's actual position and speed, and the loop follows the vehicle by id. On a ramp the freeway slides off to the left as you diverge. Cross traffic at the ramp terminal sweeps across in front. A separate traffic bed follows the leg's traffic density, on interstates and divided highways only. Tire noise is 6 dB louder.
How:
driving_traffic_sounds.rsreplacesdriving_traffic_pass.rs.CrossVehiclegained a stableid.TrafficManager::freeway_presence_atdrives the bed. There are new pack entries (eight vehicle loops andtraffic/highway_bed), rendered with genny fromsound-test/traffic_sounds.json, with levels indocs/audio-levels.md.Also in this PR:
What players or maintainers will notice
Tests and checks run
cargo test -p ff-core -p freight-fate(ci_quick): 3058 passed. One failure,online_presence::test_failed_fallback_replacement_keeps_the_existing_identity, is environmental: the Linux container runs as root, so a read-only directory does not block the write. It skips on Windows CI.states_driving_traffic_soundstests cover pan side, fade, Doppler, ramp divergence, cross traffic and the bed only on freeways. There is a newfreeway_presence_attest in ff-core, two bobtail refusal tests instates_city, and a playlist-pointer test insynth_music(89 radio and status-screen tests pass).cargo fmt --all --checkandcargo clippy --all-targets --locked -- -D warningsare clean.Accessibility impact
Spatial audio only: no speech was added or removed for traffic. The loops do not duck speech any differently than the old pass cues did. The bobtail refusal uses the menu channel with the error tick, the same as the board's suspension refusal. The playlist pointer is one line on an information screen the player opens, and it goes quiet once a playlist loads. The renamed setting labels were checked in
states_main_menu_settings. The traffic and bed levels still need Orinks's listening pass at the wheel.Changelog
## UnreleasedinCHANGELOG.md, written in plain player language and matching the style of the existing entries.🤖 Generated with Claude Code
https://claude.ai/code/session_014DuoQRmLEsNcqx7amDGVXS