
DreamVoice
Advanced spatial audio framework for Paper, Fabric & Simple Voice Chat. Featuring soundproof acoustic physics (VoiceWall), 3D visualizer, spatial speakers, covert wiretaps, radio channels, playable audio cassettes, DSP filters & speech AI.
Оцените первым
144
3
Список изменений
Changelog 1.1.0
🔊 3D Spatial Audio & Speaker/Projection Enhancements
- Native 3D Positional Audio for In-Game Speakers:
- Migrated speaker audio playback from flat
StaticAudioChannelwith manual gain curves toLocationalAudioChannel. - Speakers now feature full 3D spatialization (OpenAL / HRTF, stereo panning, pitch, and distance roll-off) centered directly on the speaker's in-game block location.
- Migrated speaker audio playback from flat
- Native 3D Positional Audio for Voice Projections (Body Anchors):
- Upgraded voice projections (
routeOwnerVoiceToAnchorListeners) toLocationalAudioChannelpositioned at the projection's anchor location. - Players standing around an active projection/anchor (e.g. security cameras, drones, intercoms) now hear the projected voice with accurate 3D spatialization and attenuation.
- Upgraded voice projections (
- Elimination of Multi-Channel Audio Crackling & Popping:
- Resolved Opus filter corruption occurring when multiple speakers or projections transmit concurrently.
- Replaced shared/global
OpusEncoderinstances with discrete, stateful stream encoders keyed per(Source : Sender : Listener)pipeline. - Deterministic channel UUIDs (
UUID.nameUUIDFromBytes) ensure each unique audio stream retains its own independent Opus prediction state without inter-channel bleed. - Added automatic encoder lifecycle cleanup on player disconnect and inactivity timeouts (30 seconds).
⚙️ Configuration & Live Reload Synchronization
- Fixed Live Config Reload (
/dreamvoice reload config):- Fixed an issue where reloading the configuration reloaded
Codexin memory but failed to notify or update the activeVoiceWallService. /dreamvoice reload confignow dynamically applies changes toVoiceWallactive state (enabled), modes (STRICT_BLOCK,REALISTIC, etc.) andairDampinglive without requiring a server reboot.- Updated
Codex.VoiceWall.getEffectiveMode()so disabling VoiceWall ("enabled": false) properly forcesVoiceWallMode.OFFeven if an explicit mode string is present in the configuration.
- Fixed an issue where reloading the configuration reloaded
- Modernized Default
config.jsonTemplate:- Aligned default
config.jsonwith the full modernCodexobject graph (includingdiffraction,categories,overrides,reverb, andairDamping). - Strict JSON handling in
CodexServiceImpl: eliminates stale fallback behaviors and ensures consistency between file configuration and in-game diagnostic commands (/voicewall info).
- Aligned default
🧱 VoiceWall & Acoustic Physics
- Fixed Wall Attenuation Gain Inversion & Clipping Elimination:
- Fixed a critical DSP bug where wall attenuation formula
Math.pow(10.0, totalDbLoss / 20.0)amplified audio signals (e.g. +15 dB to +40 dB boost, up to 100x magnification) instead of attenuating them (-totalDbLoss / 20.0). - Added sample clamping
Math.clamp(..., Short.MIN_VALUE, Short.MAX_VALUE)and soft-knee anti-clipping limiting (AudioLimiter) to prevent digital saturation crackling/popping when voice passes through walls. - Full 3D Spatialization Intact: Retained native Simple Voice Chat
EntitySoundPackettransmission, preserving client-side OpenAL HRTF, angle, distance, and 3D spatial panning.
- Fixed a critical DSP bug where wall attenuation formula
- Dedicated Stream Codecs for VoiceWall Audio:
- Replaced shared receiver codecs with isolated
OpusDecoderandOpusEncoderpipelines keyed per(senderUuid : receiverUUID)stream. - Prevents Opus Linear Predictive Coding (LPC) state desynchronization when multiple speakers talk simultaneously or within wall attenuation fields.
- Added automatic cleanup of inactive stream codecs upon player quit and inactivity timeouts (30s).
- Replaced shared receiver codecs with isolated
- Acoustic Raycast Partial Attenuation:
- Updated speaker and projection wall occlusion checks from binary block checks (
ray.isBlocked()) to line-of-sight analysis (!ray.lineOfSight()). - Allows material-based sound dampening and wall absorption through blocks instead of completely cutting off audio prematurely.
- Updated speaker and projection wall occlusion checks from binary block checks (
- Codex Data Mutability:
- Removed
finalfromCodex.distanceand added@Setter/@AllArgsConstructorannotations to support runtime updates and proper deserialization.
- Removed
🎙️ Global Audio Codec Isolation & Crackling Elimination
- Wiretaps & Hidden Bugs (
VoiceWiretapService):- Isolated Opus encoders per
(wiretapUuid : senderUuid)stream to eliminate multi-speaker corruption around listening bugs. - Deterministic channel UUIDs (
UUID.nameUUIDFromBytes) ensure channel stability across player reconnections. - Automatic stream encoder disposal on player quit and inactivity.
- Isolated Opus encoders per
- Walkie-Talkie Radio (
VoiceRadioService):- Isolated radio Opus encoders per sender to prevent frame predictor corruption between radio broadcasts and other audio features.
- Fixed Roger Beep audio injection: temporary tone generator encoder is cleanly closed without colliding with ongoing player voice streams.
- Deterministic channel UUIDs for static radio channels.
- Point-to-Point Transmitters (
VoiceTransmitterService):- Dedicated transmitter encoders per speaker and deterministic static channel IDs.
- Complete lifecycle tracking with automatic inactivity cleanup.
- Voice Cassette Recording (
VoiceRecordingService):- Dedicated recording encoders per speaker protected by
AudioLimiter. - Guaranteed safe native Opus decoder closure in
finallyblocks during cassette playback frame stitching.
- Dedicated recording encoders per speaker protected by
Файлы
DreamVoice.jar(7.78 MiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
1.1.0
Загрузчики
PaperPurpurSpigot
Версии игры
26.1.2
Загрузок
1
Дата публикации
05.09.2026
