JFugue Logo

Music Programming for Java™ and JVM Languages

With JFugue, writing programs that create music is fun and easy!


Create music in seconds

JFugue's "Hello World" in two lines of code:

Player player = new Player();
player.play("C D E F G A B");

Add voices, instruments, chords, and more using human-readable music strings:

player.play("V0 I[Piano] C6majW");

Built with music theory

Intervals, scales, chords, and notes form the foundation of JFugue's API.

Chord[] chords = new
   ChordProgression("I IV V")
   .setRoot("C").getChords();

for (Chord chord : chord) {
   Note[] n = chord.getNotes();
}

Extensible, enjoyable, and powerful

Convert between music formats, create rhythms, make microtones, extend the API...

MidiParser mp = new MidiParser();
MusicXmlParserListener mxpl =
   new MusicXmlParserListener();
mp.addParserListener(mxpl);
mp.parse(sequence);
String xml = mxpl.getMusicXml();

Learn more about JFugue:

October 1, 2020: Now taking suggestions for JFugue 6