Real-time audio synthesis using JASS

JASS Version 1.25
Build date: Mon Jan 25 15:55:27 PST 2010

Author: Kees van den Doel

Download SDK

Download SDK without data files


Conference paper on JASS

JASS (Java Audio Synthesis System) is a unit generator based audio synthesis programming environment written in pure Java. Java 1.5 is required. 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.

As an alternative to JavaSound, low latency synthesis has been implemented through native methods. As of Java 1.5 most javasound implementations will suffice. This is currently implemented for LINUX (ALSA and OSS), Macintosh (OS/X), and Windows (DirectX, ASIO blocking API, ASIO callback API). All native implementations except ASIO callback use RtAudio, a realtime audio i/o C++ class written by Gary P. Scavone.

JASS with full source code is freely available for non commercial use. If you find a bug, let me know what it is. Please include the release you were using from the info.txt file included with your release.

The JASS system has been used to design algorithms to automatically generate soundtracks for dynamics simulations with contacts. The resulting system, FoleyAutomatic, is described in a SIGGRAPH 2001 paper: Click here to download paper. The results are demonstrated with a video clip of real-time dynamical simulations using JASS to create the sound-effects.

Online Demos

Below are the online Java Applets, with source code, from the JASS SDK demonstrating various real-time audio synthesis algorithms. These Applets can be run from any Java 5 enabled web browser such as Netscape 6 and up (tested on Windows and LINUX), Internet Explorer 6 and up (tested on Windows) , or Opera 5.11 (tested on Windows).

A few demos below use mike input which may or may not work in your browser, depending on your security configuration which may or may not allow applets to listen to your mike input.

Hello World sound


Morph between 2 sound models

Combustion engine

Filter white noise through a small reson bank

Software reverb. Mike input is optional.

Filter white noise through a BIG reson bank

Simple delay loop string sound

Shortest program: a sawtooth generator

A real-time echo effect using mike input

Creaking sounds with a simple stick-slip

Some kindof proto-granular synthesis

Fool around with tone and noise masking

This project is made possible through a grant from the Peter Wall Institute for Advanced Studies. Funded by the Peter Wall Institute for Advanced Studies, UBC, Canada