Given a chord progression and a music style, JChordBox generates a song. It is a library tool that can generate backing tracks from a chord progression and a music style. It contains several command line processes detailed in the user guide. It also contains a MIDI song player that can loop, play, pause, stop, rewind, forward, mute, or solo tracks, display transport information, and much more. It runs in a terminal.
Immutables allows you to embrace immutablity to tackle complexity and concurrency challenges. To get the benefits of immutability in Java, there's an annotation processor to easily create simple and consistent value objects. You can think of it as Guava's Immutable Collections but for regular objects. It includes support for JSON marshaling, MongoDB repositories, and JAX-RS.