AudioEnginePlus is a client-side Fabric mod for Minecraft 1.21.1 that reduces audio CPU and memory overhead while improving stability in busy soundscapes. It layers five optimization phases on top of vanilla's SoundSystem: pooling, deduplication, PCM caching, async updates, LOD/occlusion, and cached PCM replay.
Current release line: 5.0-alpha — feature-complete for core phases; expect tuning in heavy modpacks.
- Minecraft 1.21.1
- Fabric Loader 0.16+
- Fabric API
- Cloth Config (required for config)
- Java 21 (for building from source)
- ModMenu (optional, in-game settings)
| Area | What it does |
|---|---|
| Smart pooling | Category-priority source tracking and eviction when near OpenAL limits |
| Deduplication | Merges redundant identical sounds in the same chunk section |
| PCM caching | LRU decode cache and session StaticSound cache with native memory tracking |
| Async processing | Off-thread tick computations and optional per-category volume scaling |
| Audio LOD | Distance-based quality: full → mono/downsampled → culled |
| 3D occlusion | DDA voxel raycasting with incremental world snapshots and global ray budget |
| PCM fast path | Replays cached PCM via MemoryAudioStream without re-decoding OGG per play |
| Sound blacklist | Regex patterns to exclude sounds from dedup, occlusion, or LOD |
| Compatibility | Disables built-in occlusion when Sound Physics Remastered is present |
- Install Fabric Loader for Minecraft 1.21.1.
- Add Fabric API and Cloth Config to your
modsfolder. - Download AudioEnginePlus from releases and place the JAR in
mods. - (Optional) Install ModMenu for the configuration screen.
Open ModMenu → AudioEnginePlus (Cloth Config). Main sections:
- Phase 1 — Smart pool limits, deduplication threshold and distance
- Phase 2 — PCM cache size (MB), critical sound preloading
- Phase 3 — Async worker threads, category volume scaling
- Phase 4 — Audio LOD, occlusion rays, cache lifetime, global ray budget
- Phase 5 — Streaming/static PCM thresholds and preload limits
- Sound blacklist — Regex patterns (e.g.
minecraft:entity.player.*)
Defaults are tuned for vanilla-like play; large farms or PvP may benefit from lowering globalRayBudgetPerTick or dedup thresholds.
./gradlew build # produces JAR in build/libs/
./gradlew runClient # dev clientSee project_map.md for architecture, mixin map, and shutdown order. See AGENTS.md for agent/CI-oriented notes.
| Component | Status |
|---|---|
| Phases 1–4 | Integrated and active |
| Phase 5 (PCM cache replay) | Active via AsyncStreamer / MemoryAudioStream |
Phase 5 (StreamingBufferQueue) |
Not yet connected to the sound loader |
| Automated tests | None — manual in-game validation |
LGPL-3.0 — see LICENSE.
Developed by Winterus