JFugue is an open-source Java API for programming music without the complexities of MIDI.
JFugue makes programming music this easy:
- Music Strings let you specify notes, chords, instruments, tracks. More...
- Music can be played at runtime, or saved to and opened from MIDI files
- Music can be sent to and received from external devices: keyboards, mixers, etc.
- A "Pattern" of music can be transformed and manipulated in interesting ways
- Support for microtonal music, intuitive rhythm tracks, anticipating musical events
- Other music parsers and renderers can be easily integrated into the JFugue architecture
JFugue is ideal for applications in which music is generated at run-time, such as:
- Algorithmic, generative, aleatoric, or evolutionary music
- Music editors, beat boxes, drum machines
- Jazz improvisers, mimicking classical composers, AI in music
- Procedural synthesis, virtual instruments, interactive software playthings
- Dynamic mood setting, adaptive music, music that depends on game state, games that require musical skill
- ...And much more, limited only by your imagination!
Using JFugue is also a great way to inspire future programmers, and to experiment with music theory and composition.