jMusic

jMusic provides a library of classes for generating and manipulating music, and is a solid framework for computer assisted composition in Java. jMusic supports composers by providing a music data structure based upon note/sound events, and methods for working with that musical data. jMusic can read and write MIDI files, audio files, and its own .jm files. jMusic is designed to be extendible, encouraging you to build upon the functionality of jMusic by programming in Java to create your own music composition tools.

Recent releases

Release Notes: This release adds major updates to the realtime audio infrastructure;
see the general tutorial and one about parameter passing. There are now
non-realtime audio file reading and writing methods that support .wav
and .aiff as well as .au files; see the tutorial on them. There are
new classes for fuzzy logic and an associated tutorial. This release
features a four-fold increase in MIDI file writing performance. There
are updates to the jmms package and a new tutorial for using MidiShare
with jMusic.

Release Notes: This release included a new compressor audio object, better handling of frequency pitches when writing MIDI files, audio envelopes that can cope with extremely short notes, additional real-time instruments, and a few bugfixes.

Release Notes: This release fixes bugs in jMusic 1.4 relating to the correct saving of instruments to MIDI files and the correct rendering of audioObjects that extend beyond the note duration (such as delay and ADSR).

Release Notes: Additions include a new audio waveform viewer, additional audio objects, support for MIDIShare I/O in the new msjm package, and the ability to link phrases by relative position with the Anchor class. Significant improvements include widespread support for note pitch as frequency and for XML score files, CPN display of multiple parts, improved QuickTime MIDI playback range and accuracy, more accessible JavaSound MIDI and Audio playback, overhauls of almost every GUI utility (especially the HelperGUI), and additional Mod methods.

Release Notes: New and updated audio objects, pitch specification as a fractional frequency in hertz, extended music notation features, removal of a number of unused older classes, and numerous bugfixes.