FINAL PROPOSAL: Free Software synthesizer implemention for the OpenJDK project

Karl Helgason kalli at midverk.is
Sun Mar 2 16:10:42 PST 2008


FINAL PROPOSAL

Free Software synthesizer implementation for the OpenJDK project

Karl Helgason
kalli(at)midverk.is

Summary
=======

The current software synthesizer for JDK (Beatnik) is part of encumbered
code which can not be released open source. It is also mostly written in
native code which makes support and enhancements difficult. Furthermore
the current software synthesizer does only support its own proprietary
soundbank file format.

Thus we need a new synthesizer engine for JDK which can be released
open source and which supports open and widely used soundbank formats
(such as DLS and SoundFonts). We also need that the new synthesizer will
work in a similar manner to the current one in JDK so compatibility with
older applications will be maintained.

Finally, by writing the new synthesizer engine in Java it will be easer
to support and make enhancement to the engine in the future.
This will also mean safer and more portable code.

Goals
=====

The goal is to create an open source software MIDI synthesizer which can
be integrated into the openJDK project. We need a high quality synthesizer
with support for universal and open soundbank formats like
SoundFont (http://www.soundblaster.com/soundfont/) and
DLS (Downloadable Sounds, http://www.midi.org).

The Audio Engine Project gave these requirements for solution:
* Pure-Java implementation.
* Uses JavaSound mixers/lines for sound output.
* Supports DLS and/or SoundFont soundbank files.

In addition to the base requireaments the engine will have support for:
* General Midi Level 2
* Downloadable Sounds Level 2.2
* Midi Tuning Standard
* SoundFont 2.04

These requests for enhancement will also be resolved with this proposal:
 Bug ID: 4705306 RFE: Adding Microtonal support to Java Sound API
 Bug ID: 4666912 RFE: Add support for soundbanks contained
                      in SoundFont and DLS files.

Development
===========

Development takes place at the Audio Synthesis Engine Project:
 http://openjdk.java.net/projects/audio-engine/
All communications regarding this project
are done at the audio-engine-dev mailing list.
Access to source code is at: https://gervill.dev.java.net/

Dependencies on Sun
===================

Creating the software synthesizer engine itself will not require any
assistance from Sun.
Integration into the OpenJDK 6 and OpenJDK 7 will be handled by Sun.
However, the software engine will also work standalone without
any work from Sun.

Developer
=========

Karl Helgason is the developer for this project and has previously
created  the SoundFont engine for the RasmusDSP project:
  http://sourceforge.net/projects/rasmusdsp,
he is also a member of the Frinika project which is a complete music
workstation written in Java.
  http://sourceforge.net/projects/frinika



More information about the challenge-discuss mailing list