Links
Tags
Creators
Details
Licensed LGPL-3.0-or-later
Published 5 months ago
Updated 5 months ago
All versions
2.0.0-alpha
Alpha
AudioEnginePlus 2.0.0-alpha5 months ago 59
Compatibility
Minecraft: Java Edition
1.21.1–1.21.11
Platform
Fabric
Supported environments
Client-side
Changes
AudioEnginePlus v2.0 Alpha — Changelog
v2.0 Alpha — Performance & Stability Overhaul
✨ New
SessionSoundCache— new session-scoped sound cache with lifecycle managementAsyncAudioWorkerManager— centralized async worker lifecycle managerLodBufferLibrary— full LOD buffer library with distance-based PCM generationNativeMemoryTracker— improved native memory tracking and ByteBuffer managementStreamingBufferQueue— streaming audio buffer queue for continuous playbackRayLodStrategy— 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:
ByteBufferNativeAccessrefactored for direct buffer allocation, zero-copy patterns, and proper deallocation - Async audio worker: complete rewrite with
AsyncAudioWorkerManagerfor better worker pool lifecycle - Occlusion engine:
OcclusionCacherewritten with world-tick-based reset,ChunkSnapshotfor thread-safe chunk access,DdaRaycasteroptimizations - Sound deduplication:
SoundDeduplicatorrefactored for O(1) lookup with eviction,SoundEventKeystreamlined - PCM buffer cache: improved caching strategy, async preloading enhancements, resource reload listener support
- Source pooling:
SmartChannelAccessandSourceEvictionPolicyoptimized 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,AEPConfigvalidation,AudioEnginePlusCliententry point withCLIENT_STOPPINGhandler - Config:
AEPConfigsections aligned to phases 1–4 with proper clamping invalidate()
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:Up0a3n8A"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:NkAfJVb8:Up0a3n8A"
}

