# Gervill - Software Synthesizer

Download page
API Documentation

"Gervill" is a software sound synthesizer which was created as a proposal for the Audio Synthesis Engine Project.

## Features

- Downloadable Sound Level 2.2
- General Midi Level 2
- MIDI Tuning Standard
- SoundFonts 2.04 (24 bit)
- Use Audio files (AIFF, AU and WAV) as SoundBanks
- Drumkits can be used on any channel
- Sinc interpolation with anti-aliasing
- Uses JavaSound mixers/lines for sound output
- Pure-Java implementation
- Emergency soundbank included

MIDI Implementation Chart

## Usages

Gervill was designed to be generic synthesizer for Java.
By adding gervill.jar to your classpath you should be able to load SoundFonts/DLS files using MidiSystem.getSoundBank().
And MidiSystem.getSynthesizer() should return instance of Gervill Synthesizer.

Advanced features of Gervill are accessed thru the AudioSynthesizer interface.
Warning! This interface may change or be moved in future.

Gervill has been tested successfully with these applications:

- Java Sound API: Java Sound Demo
- jlGui - Music Player
- LAoE - Audio Editor
- Frinika
- JFugue - Java API for Music Programming

## Project Overview

Gervill project mainly consists of 3 modules:

- The SoundBank Readers/Writers

  Made of these classes:
  com.sun.media.sound.DLS*
  com.sun.media.sound.SF2*
  com.sun.media.sound.AudioFileSoundbankReader

  There is a one SoundBank reader/writer for each soundbank format which Gervill supports.
  Currently there are 2+ formats supported:
  DLS, SoundFonts and Audio Files.

- The Internal Instrument Model

  Made of these classes:
  com.sun.media.sound.Model*

  All the soundbank readers above implements the internal instrument model.

- The Synthesizer

  Made of these classes:
  com.sun.media.sound.Soft*

  The heart of the code. Here is where we have resamplers, filters, mixing, tuning,
  voice/channel managament, control routing, midi messages parsers.

## Contributions / Community

Currently this project mostly needs testing and debugging.

## CVS Access

You can checkout the sources via CVS by issuing the following command:

cvs -d :pserver:username@cvs.dev.java.net:/cvs login
cvs -d :pserver:username@cvs.dev.java.net:/cvs checkout gervill

## License

Gervill is distributed under the terms of the GNU General Public License v2 with "Classpath" exception.
See http://www.gnu.org/software/classpath/license.html