Tech Stack
Kotlin
JavaFX
Concurrent Programming
Software Testing
Kotlin Coroutines
Kotlin Serialization
Description
music-commons is a modular, reactive Kotlin library extracted from the Musicott desktop application to provide reusable, persistence-agnostic components for audio file management. It is published to Maven Central under net.transgressoft and built on top of lirp for its reactive entity framework and event-driven architecture.
Domain state changes — metadata edits, imports, removals — propagate automatically to every dependent view: artist catalogs, album and genre projections, playlists, waveforms and JavaFX bindings, with no manual wiring. The goal was a foundation that could power not just Musicott, but any Java or Kotlin project that manages audio files in an event-driven way.
- Reactive audio library with live artist, album and genre projections that update incrementally as items change.
- Split into opt-in modules — api, core, fx and media — plus mapping-only persistence modules, so consumers pick in-memory, JSON or SQL persistence.
- Headless playback engine over JavaSound decoders (MP3, FLAC, OGG Vorbis/Opus, AAC/ALAC-M4A, WAV) with cached waveform generation and a JavaFX bridge exposing observable properties.
- Guards its public ABI with a Binary Compatibility Validator apiCheck task and ships a CycloneDX SBOM with SHA-256 dependency verification.
