Links
Tags
Creators
Details
Licensed LGPL-3.0-or-later
Published 5 months ago
Updated 5 months ago
All versions
3.0.0-alpha
Alpha
AudioEnginePlus 3.0-alpha5 months ago 31
Compatibility
Minecraft: Java Edition
1.21.1–1.21.11
Platform
Fabric
Supported environments
Client-side
Changes
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
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:NkAfJVb8:DMK4NfSD"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:NkAfJVb8:DMK4NfSD"
}

