JSyn - modular synthesis API for Java.
JMSL - Java Music Specification Language
PortAudio - cross platform audio I/O API for 'C'

Java Music Software - Synthesis | Composition | MIDI

If you have a music related project in Java that you would like to add then please contact us.

This list originally compiled by Tom Erbe.

name & webpage description Author/Contact other
AGENTBEATS AGENTBEATS is a java application used to generate progressive evolving beats or melodic sequences using interactively guided evolution of genetics based agents, engaged in some kind of artificial life simulations, representing beat-pieces; BEATAGENTS. Mikkel Bertelsen Freeware
CodeSounding Sonifies the execution of Java code based on the frequency of occurence of variaous operators. Roberto Mannai Freeware
Dolet Dolet for Finale is a plug-in for the Finale music notation program that reads and writes MusicXML files on Windows and Macintosh OS X. The plug-in is written in Java 1.4, plus some JNI code to interface with the Finale plug-in developer kit's C++ API. Michael Good Commercial, 30 day demo. Mac and Windows.
Frinika Frinika is a complete music workstation software containing sequencer, midi support, soft synthesizers, audio recorder, piano roll/tracker/notation editing and more. Running on Linux, Mac OSX and Windows and other. Written 100% in Java   GPL
Impro-Visor Impro-Visor is music notation software that assists the user in constructing jazz solos. It can also be used for lead sheets, transcription, exercises, etc. Bob Keller GPL
JFugue JFugue is a set of Java classes for music programming. It uses simple strings to represent musical data, including notes, chords, and instrument changes. JFugue also allows you to define music using patterns, and you can do interesting transformations on those patterns to come up with new musical segments that are derived from existing pieces of music. JFugue can write MIDI files. Dave Koelle freeware and open source
JamP JamP is a skinnable, pure Java MP3 player with playlists. Jens Hohl Freeware
JASS JASS (Java Audio Synthesis System) is a unit generator based audio synthesis programming environment written in pure Java. The environment is based on a foundation structure consisting of a small number of Java interfaces and abstract classes, which implement the functionality needed to create filter-graphs, or "patches". Unit generators are created by extending the abstract classes and implementing a single method. Patches are created by linking together unit generators in arbitrary complex graph structures. Patches can be rendered in real-time with special unit generators that communicate with the audio hardware, which have been implemented using the JavaSound API and through JNI for some platforms. Kees van den Doel Freeware
JavaMIDI JavaMIDI is a set of classes and a library that let you use a platform's MIDI capabilities from Java. JavaMIDI supports MIDI input and output and arbitrary-length system exclusive packets for Win32 platforms (Win95 and NT) and the Macintosh. The Mac version uses Opcode Systems' OMS. Robert Marsanyi
Java MIDI Kit The Java MIDI Kit is a set of Java classes designed to serve as the basis for platform-independent and OS-independent real-time interactive MIDI applications. The base classes may be used to build small, fixed configuration, stand-alone MIDI processing apps, or they may be used to build a MIDI-processing network server, which may be programmed and configured dynamically by a client application running on the same computer, or any computer on the same network. Michael McNabb GNU General Public License
jMax is a graphical programming environment for developing interactive real-time audio applications.  Free software/GNU LGPL
jMusic As a library of classes for generating and manipulating music, jMusic provides a solid framework for musical composition in Java. jMusic supports music composition with its music data structure based upon note events, and methods for working with that musical data. jMusic can read and write MIDI files, its own .jm files, and audio files. Andrew Sorensen and Andrew Brown GPL
JMSL - Java Music Specification Language JMSL is a Java API for experiments in interactive performance, composition, and intelligent instrument design. With JMSL, the composer/programmer can create stand-alone musical applications or deploy applets on the web. JMSL supports JSyn, MidiShare, MidiPort, and JavaSound.  Nick Didkovsky
Phil Burk
JSyn Real-time modular audio synthesis API for Java. JSyn has over 100 unit generators including band-limited oscillators, envelopes, filters, effects, etc. JSyn is open source on GitHub. Phil Burk Apache License V2
jVSTwRapper Write VST style plugins in Java. Wrap them with this tool and use them with your favorite host music application. Also support AU and LADSPA hosts across multiple platforms without recompiling. Daniel Freeware
KangaSound Editot Sound editor with support for editing of harmonic and enharmonic partials. KangaSound Freeware
LAoE LAoE means "Layer-based AudiO Editor" and it is an audiosample-editor suitable for manipulate sound, such as filtering, retouching, resampling, and effects, like reverb, echo, compress, expand, pitch-shift, time-stretch, and much more...  olivier gäumann  
Liquid Notes "The songwriting assistant that offers a controllable range of alternatives for chords and harmonies in a MIDI arrangement." Re-Compose Commercial
MidiFork Experimental controller for QuickTime musical instruments Ryan Francesconi Freeware, OS X, Windows
MIDIShare/Java The MidiShare/Java package is a set of Java classes which give access to most of MidiShare functions. It allows to develop Midi applications and Midi applets which can be embeded in Web pages. Midi applets/applications will be able to send and receive Midi events, schedules tasks and communicate in real-time with other Java Midi applets/applications or with non-Java MidiShare applications. Stéphane LETZ Freeware
NoSuch MIDI NoSuch MIDI is a set of Java classes and native methods for doing MIDI on win32 systems. It is capable of MIDI device input, systemexclusives, realtime scheduling of output, and reading/writing of Standard MIDI Files. Tim Thompson Free for non-commercial use
SoundHelix Algorithmic music generator. Plays using JavaSound MIDI. Thomas Schuerger GPL
SoundHackJava Soundfile filtering and utilities; a Java port of the Macintosh application. Tom Erbe
Sean Rooney
tritonus tritonus is an implementation of the JavaSound API. It is currently based on JavaSound 0.86. What you see here is a very rudimentary implementation for Linux i386, but it is intended to implement the full API and to support different platforms.  Matthias Pfisterer GNU LGPL