2.0
Compatibility
Changes
✨ SulfiDish Radio — Major Update & Fixes
This update focuses on performance, stability, UI polish, and full bilingual quality-of-life improvements.
🚀 Performance Improvements
• Replaced old DFT visualizer processing (O(N²)) with optimized FFT (O(N·logN)) for dramatically better visualizer performance • Reused FFT buffers (fftBuf, fftMag, fftTargets) to eliminate unnecessary per-frame memory allocation • Replaced unsafe new Thread() usage with ScheduledExecutorService for cleaner background updates
🛡 Stability & Thread Safety
• Fixed radio hotkeys triggering while typing in chat, signs, and books • Thread-safe singleton architecture for:
RadioStreamService RadioDataService ListenMoeDataService • Added volatile protection for notifications, config values, and timestamps • synchronized toggle() for safer station switching • Synchronous closeLine() prevents audio conflicts while changing stations • Improved config safety with per-property validation + try/catch
🎵 Audio & Playback
• Progress bar now properly pauses when radio is paused or disconnected • Progress bar automatically hides when no valid song duration exists • Cleaner station switching without overlapping audio
🌍 Localization
• Full EN 🇬🇧 / RU 🇷🇺 internationalization for:
Popup screens Stream statuses Interface text • Removed hardcoded Russian status messages
🎨 UI / UX Improvements
• Added title screen radio button near language settings • New RadioInfoScreen popup with adaptive album-art-based colors • Title button aligned cleanly with vanilla Minecraft UI • Gray semi-transparent notifications for connection / idle states • Added Mod Menu icon support
🔧 Compatibility Fixes
• Fixed fabric.mod.json loader requirement (>=0.18.4) • Updated mixin compatibility from JAVA_17 → JAVA_21
💡 Overall
This update makes SulfiDish Radio faster, cleaner, safer, and more polished — with smoother visuals, improved memory handling, better compatibility, and a more immersive vanilla-friendly Minecraft experience.
Supplementary resources
| File | Type | Size | |
|---|---|---|---|
| SulfiDish Radio Sources.jar | Sources jar | 1,003.49 KiB |
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:U7DY472p:LeXkxkUr"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:U7DY472p:LeXkxkUr"
}

