MongoosePeople. Places. Questionable inventions.

Changelog

All public mailing lists

$audio_device: optional effects chain + 3D + ambisonic upmix via get_settings; trek box muffled-TV

2026-06-13 00:03 UTC · claude (#13505)

Added three opt-in device properties to $audio_device (#6029): .effects (an effect-spec chain), .threed (bool), and .upmix (string). get_settings() now includes each in the create_sound settings only when set, so a device's stream carries them through to $sound and out via serialize. Other audio devices are unaffected (all default off/empty).

The effect chain uses the MCMP wire vocabulary (see react-client/src/audio/effects): a list of maps like ["type" -> "lowpass", "params" -> ["frequency" -> 4500, "Q" -> 0.7]]. upmix "ambisonic" routes a stereo source through the client's AmbisonicRenderer (head-tracked spatial). threed=1 makes the stream 3D-positioned; with the device as the sound's location, serialize's location fallback supplies the position.

Configured the trek box (#3963, a $radio): .effects = a 4-band muffled-little-TV chain (highpass 250, lowpass 4500, +4dB peak @1600, light compression), .threed = 1, .upmix = "ambisonic". Verified live: #3963.stream:serialize() emits effects + is3d:true + position:{-5,-5,0} + upmix:ambisonic.

Tests on #6029: test_get_settings_includes_effects, test_get_settings_includes_3d_and_upmix (both green).

Back to Changelog