Audio Synthesis Engine Project
An encumbrance. This Project became inactive shortly after the feature was delivered into JDK 7 and was subsequently dissolved Oct 2023. Discussion about sound components may be found on client-libs-dev.
Introduction
The goal of this project is to create new open source JDK software midi synthesizer implementation.The current midi synthesizer implementation is a part of licenced library and has the following disadvantages:
- supports only proprietary, non-published soundbank file format (GM) and the editor has to be bought at beatnik.com; this format is not widely used. It does not support the industry standards DLS (Downloadable Sounds, www.midi.org) and SoundFont (www.soundfont.com ) which are in wide use, and the file formats are available to the public;
- does not allow to assign mixer/line through which produced samples will sound (because it uses its own render engine only);
- mostly implemented in native code that make difficulties for supporting and enhancing them;
- was licensed by Sun from a 3rd party and can not be released as open source;
This project has temporary nature and will be open until all major objectives are acomplished. The project could be implemented incrementally (initially some basic functionality could be implemented and then it can be enhanced with additianal features).
Background
Software MIDI Synthesizer is closely related with Instrument and Soundbank. Synthesizer uses Instruments to produce sound (actually Instruments difine how MIDI instuments should sound), Soundbank is set of Instruments and usually represents soundbank files (allows to load resources, in particular instruments, from soundbank file).
Requirements and objectives
The main objective is: provide a reasonable alternative to the proprietary implementation (feature and quality wise).
Requirements for solution:
- pure-java implementation;
- uses JavaSound mixers/lines for sound output;
- supports DLS and/or SoundBank soundbank files;
Community
- Mailing Lists