Date: 7/25/2002
To: Steven Ward
From: Robert C. Radcliffe
RE: Automatic Conversion of Audio Files to SoundFont Files
"SoundFont" is the name given by EMU/Creative Labs to their wavetable sample technology. It was originally developed for the EMU Proteus line of synthesizers and has been used in the EMU APS sound card and Creative Labs AWE, Live! and Audigy cards, as well as with third-party software synthesizers. Except for the AWE with on-board RAM, the samples are kept in system RAM.
Converters exist for translation to and from other sample formats such as Akai and GigaSampler. However EMU has published the entire SoundFont 2.1 Specification (which I have and have read) and a variety of free and low-cost utilities and tools are available. Yet many of the tools require tedious and error-prone manual effort.
I propose to investigate some automatic conversion techniques to aid creation of professional quality SoundFont sample files from raw audio files. These techniques should be applicable to other formats as well.
The Java programming language is appropriate for this project. It is relatively platform and operating system independent, and has built-in facilities for reading audio files. However I plan to do development on a Windows 98 system and use a WAVE (.WAV) format file for audio input.
A complementary pair of output files will be generated: along with the SoundFont (.SF2) file there will be a matching MIDI (.MID) file with exactly the Volume, Control, Velocity, Tempo, and other parameters to re-create the original audio, perhaps not exactly, but subjectively indistinguishable.
To keep the project manageable, I propose to experiment with drum samples only. This essentially removes processing for pitch and note length. I have two sample CDs that provide many useful files:
Each of the following phases refines the previous ones, and each produces a useful program. The first phase may be the hardest since I will be building a Java program from scratch. I have no idea how long each phase will take. It will be up to my advisor to determine an appropriate pace.
There should be a deliverable each week (x15), most likely a progress report with result files to date.