AudioEnginePlus 3.0.0-alpha для Minecraft 1.21.11 (Fabric)
Это не последняя версия. Последняя для 1.21.11 · Fabric — 4.0.0-alphaОткрыть 4.0.0-alpha →
Тестовая версия — возможны ошибки.
Файлы · 1
Что изменилось
v3.0 Alpha — Phase 5, Occlusion 2.0 & Stability
✨ New
- Phase 5 — PCM fast path —
MemoryAudioStreamreplays pre-decoded PCM per play with an independent cursor; fixes sharedOggAudioStreamcorruption on repeat playback - AsyncStreamer — fully wired into
SoundLoadermixins 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
PcmBufferCacheviaMemoryAudioStream - 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 —
SoundPreloaderdirect-memory limits and OOM guards - Native memory —
SessionSoundCachereload accounting and native buffer lifecycle fixes; prematurememFreerisk reduced - LOD —
LodPcmGenerator/LodBufferLibraryrefinements; silent buffer for culled sounds
🔧 Changes
- Removed:
SoundInstancePool(fully); smart pooling usesSmartChannelAccessonly - Removed: unused Caffeine dependency
- Updated:
AEPConfig— addedphase5andsoundBlacklist; Phase 5 settings moved out of Phase 4 - Updated:
audioengineplus.mixins.json— addedClientWorldBlockChangeMixin - 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
OggAudioStreamcorruption 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
globalRayBudgetPerTickor dedup thresholds