COWMODSКаталог модов
AudioEnginePlus

ВЕРСИИ (4)

alpha

AudioEnginePlus 4.0-alpha

4.0.0-alpha
4 июн. 2026 г.359Minecraft: 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11fabric
Скачать
Что нового
# v4.0 Alpha — Weather Audio, Occlusion Polish & Stability --- ## ✨ New - **Weather-safe streaming** — `MemoryAudioStream` **loops PCM** when the buffer ends instead of returning `null` (avoids OpenAL reload overlap) - **Continuous ambient bypass** — `AsyncStreamer.isContinuousAmbientStream()` keeps **rain, weather, and cave ambients** on vanilla `OggAudioStream` (no Phase 5 PCM cache for those paths) - **Occlusion 2.1** — **provisional cache** + async refine; **player-centric raycasting** (`phase4.playerCentricRaycasting`, default on); smoothed gain via `OcclusionState` / `writeSmoothedGain` - **LOOP_FAR priority** — distant ambient/weather loops (>32 blocks) use `SourcePriority.LOOP_FAR` with shared `maxAmbientSources` budget - **Reload generation guards** — `reloadGeneration` on `SoundPreloader`, `AsyncStreamer`, and `SoundReloadListener` so in-flight preloads/decode do not write after resource reload - **OcclusionApi** — `getOcclusionFromProvider()` hook for external occlusion mods/providers - **Cloth Config lang** — `en_us.json` tooltip for deprecated `asyncWorkerThreads` --- ## ⚡ Performance - **PCM replay** — seamless loop for cached stream segments; fewer redundant OGG decodes on short repeatable streams - **Occlusion tick** — invalidates stale pending futures when source/listener block moves; sync fallback before async refine; normalized cache path for player-centric mode - **OcclusionCache** — tick-based TTL retained; provisional entries reduce “silent until ray completes” gaps - **Smart pool** — deferred eviction queue (`aep$deferredEvictions`); `getEffectiveCount()` / pending-eviction accounting; position tracking with 0.01-block epsilon - **Dedup** — greedy centroid clustering retained; **weather** path exempt so global loops are not merged/delayed - **LOD** — `LodPcmGenerator` **Lanczos resampler** (anti-alias) replaces box filter; correct **native byte-order** on `ByteBuffer.duplicate()` (fixes distant mob LOD crackle) - **Preload** — direct-memory headroom checks and generation-stamped async work in `SoundPreloader` - **Phase 3** — async tick work stays **sync on render thread** (~μs per sound); `asyncWorkerThreads` marked unused in config --- ## 🔧 Changes - **Updated:** `gradle.properties` / docs — release line **3.0-alpha → 4.0-alpha** - **Updated:** `SoundEngineMixinPhase4` — occlusion apply order; category scaling after occlusion; **WEATHER** and **relative** sounds skip occlusion processing - **Updated:** `SoundDeduplicator` — `weather` added to dedup-exempt patterns (with block interaction sounds) - **Updated:** `SoundReloadListener` — coordinated cache clear: PCM, session static, LOD, occlusion state, dedup/pool, `AsyncStreamer.reset()` - **Updated:** `SoundPhysicsRemasteredCompat` — runtime occlusion disable when SPR is present (unchanged behavior, refined checks) - **Unchanged from 3.0:** `StreamingBufferQueue` still not wired; `SoundInstancePool` still removed; Caffeine still absent --- ## 🐛 Fixes - **Duplicate rain / weather layer** — second rain heard while moving or standing (PCM stream end → reload overlap + occlusion gain on listener-bound loops) - **Shared `OggAudioStream` corruption** — per-play `MemoryAudioStream` with independent cursor (carried from 3.0; loop rewind completes the fix for repeatable streams) - **LOD crackle** on distant sounds — wrong endian on duplicated PCM views in `LodPcmGenerator` - **Stale occlusion** after movement — cancel pending futures and refresh cache when source/listener block changes - **Dedup replay** — `MergedSoundInstance` never re-deferred; key counts cleared on flush - **Resource reload races** — blacklist pattern swap, native buffer ownership, and in-flight preload abandonment - **Smart pool double-register** — merged sounds only registered via `play()` injection path --- ## ⚠️ Known limitations (alpha) - **`StreamingBufferQueue`** — implemented but **not connected** to `SoundLoader`; true decode-while-playing pipeline is future work - **Weather PCM cache** — if manually cached via blacklist/config edge cases, prefer vanilla path; continuous ambients are excluded by default - **No automated tests** — heavy farms/PvP may need lower `globalRayBudgetPerTick`, `dedupThreshold`, or category limits in Phase 1 - **Phase 5 static path** — `enableStaticCaching` still limited by `staticCacheThresholdBytes`; long streamed ambients should stay on OGG --- ## 📦 Upgrade from 3.0-alpha | If you had… | In 4.0… | |-------------|---------| | Rain/weather “ghost” audio | Fixed by default (no config toggle required) | | Distant mob LOD noise | Improved resampler + byte-order fix | | Occlusion pumping while walking | Reduced; weather/relative loops excluded | | Same `phase5` / `phase4` config keys | Compatible; new: `playerCentricRaycasting` |
alpha

AudioEnginePlus 3.0-alpha

3.0.0-alpha
4 июн. 2026 г.35Minecraft: 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11fabric
Скачать
Что нового
## v3.0 Alpha — Phase 5, Occlusion 2.0 & Stability ### ✨ New - **Phase 5 — PCM fast path** — `MemoryAudioStream` replays pre-decoded PCM per play with an independent cursor; fixes shared `OggAudioStream` corruption on repeat playback - **AsyncStreamer** — fully wired into `SoundLoader` mixins for streamed/static sounds; separate **Phase 5** config section (`enableStreamingOptimization`, `enableStaticCaching`, size thresholds) - **SoundBlacklistManager** — regex-based sound blacklist with per-context rules (dedup, occlusion, LOD) - **IncrementalChunkSnapshot** — incremental 48³ fine grid + coarse layer world snapshot for occlusion; rebuilds on player movement and block changes - **GlobalRayBudget** — per-tick global ray cap with optional FPS-adaptive scaling - **OcclusionState** — per-sound occlusion/volume state extracted from mixins - **ClientWorldBlockChangeMixin** — invalidates dynamic occlusion cache on `setBlockState` - **CategoryScaleHolder** — per-category volume scaling in Phase 3 async pipeline - **project_map.md / README** — architecture reference, shutdown order, and phase status documented ### ⚡ Performance - **PCM replay** — small/medium sounds skip per-play OGG decode when served from `PcmBufferCache` via `MemoryAudioStream` - **Occlusion engine** — pending async futures fixed; dimension-change and chunk-unload cleanup; tick-based cache TTL (not full world-tick reset every tick) - **Sound deduplication** — centroid clustering, early flush, blacklist integration - **Source pooling** — improved category-priority and distance-based eviction in `SmartChannelAccess` / `SourceEvictionPolicy` - **Sound preloading** — `SoundPreloader` direct-memory limits and OOM guards - **Native memory** — `SessionSoundCache` reload accounting and native buffer lifecycle fixes; premature `memFree` risk reduced - **LOD** — `LodPcmGenerator` / `LodBufferLibrary` refinements; silent buffer for culled sounds ### 🔧 Changes - **Removed:** `SoundInstancePool` (fully); smart pooling uses `SmartChannelAccess` only - **Removed:** unused Caffeine dependency - **Updated:** `AEPConfig` — added `phase5` and `soundBlacklist`; Phase 5 settings moved out of Phase 4 - **Updated:** `audioengineplus.mixins.json` — added `ClientWorldBlockChangeMixin` - **Updated:** `gradle.properties` / release line — `3.0-alpha` - **Target:** Minecraft **1.21.1** (Fabric) — explicit version pin vs broad 1.21.x range on 2.0 ### 🐛 Fixes - Shared `OggAudioStream` corruption when the same sound plays multiple times - Stale occlusion cache entries after block changes and pending future handling - Dedup merge edge cases and blacklist race during config reload - Resource reload native cache accounting and buffer ownership on shutdown - Sound Physics Remastered: built-in occlusion still auto-disabled when SPR is loaded ### ⚠️ Known limitations (alpha) - **StreamingBufferQueue** — implemented but not yet connected to the sound loader; true decode-while-playing pipeline is future work - No automated tests; heavy farms/PvP may need lower `globalRayBudgetPerTick` or dedup thresholds
alpha

AudioEnginePlus 2.0.0-alpha

2.0.0-alpha
23 мая 2026 г.63Minecraft: 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11fabric
Скачать
Что нового
AudioEnginePlus v2.0 Alpha — Changelog ## v2.0 Alpha — Performance & Stability Overhaul ### ✨ New - `SessionSoundCache` — new session-scoped sound cache with lifecycle management - `AsyncAudioWorkerManager` — centralized async worker lifecycle manager - `LodBufferLibrary` — full LOD buffer library with distance-based PCM generation - `NativeMemoryTracker` — improved native memory tracking and ByteBuffer management - `StreamingBufferQueue` — streaming audio buffer queue for continuous playback - `RayLodStrategy` — integrated LOD-level selection in occlusion raycasting ### ⚡ Performance - **Thread-safety overhaul**: all critical paths (dedup, cache, async, occlusion) now use proper locking and concurrent data structures - **Shutdown safety**: graceful teardown with ordered subsystem shutdown sequence - **Native memory management**: `ByteBufferNativeAccess` refactored for direct buffer allocation, zero-copy patterns, and proper deallocation - **Async audio worker**: complete rewrite with `AsyncAudioWorkerManager` for better worker pool lifecycle - **Occlusion engine**: `OcclusionCache` rewritten with world-tick-based reset, `ChunkSnapshot` for thread-safe chunk access, `DdaRaycaster` optimizations - **Sound deduplication**: `SoundDeduplicator` refactored for O(1) lookup with eviction, `SoundEventKey` streamlined - **PCM buffer cache**: improved caching strategy, async preloading enhancements, resource reload listener support - **Source pooling**: `SmartChannelAccess` and `SourceEvictionPolicy` optimized for category-based priority eviction - **Sound Physics Remastered compat**: improved conditional integration ### 🔧 Changes - Removed: `ChannelAccessMixin` (Phase 1 mixin consolidated), `PooledSoundHandle` (replaced by pooled instance ref pattern) - Updated: `fabric.mod.json`, `AEPConfig` validation, `AudioEnginePlusClient` entry point with `CLIENT_STOPPING` handler - Config: `AEPConfig` sections aligned to phases 1–4 with proper clamping in `validate()`
alpha

AudioEnginePlus 1.0.0-alpha

1.0.0-alpha
14 мая 2026 г.50Minecraft: 1.21, 1.21.1fabric
Скачать
Что нового
AudioEnginePlus 1.0.0-alpha.1 - Initial Release Initial release of the advanced audio optimization engine! Smart Sound Pooling: Reuses sound handles to minimize native memory churn and GC pressure. Audio Deduplication: Intelligently merges identical sounds to reduce audio clutter and CPU overhead. PCM Caching: Off-thread audio decoding with efficient caching to eliminate frame stutters. Audio LOD (Level of Detail): Dynamically scales sound quality and processing based on distance. Native Memory Tracking: Advanced monitoring of OpenAL buffers and memory usage. Compatibility: Built-in compatibility layer for Sound Physics Remastered. Config Support: Fully integrated with ModMenu and Cloth Config.