SPORCH takes as its input parameters a source sound file and a specification for a group of instruments. Any instruments may be included, as long as sample recordings of pitches at various dynamic levels over their entire ranges are available.
Before the program can be run, a database containing spectral analyses of all instruments must be built. The user must first supply all of the sound samples and create a “database specification file” that supplies acoustic data and tells the program how it should analyze the instrument samples. SPORCH automatically interpolates missing data within a reasonable distance if all pitches or dynamics are not available. An instrument may have several techniques associated with it (for example, a string instrument can have separate data for both arco and pizz. playing techniques). Percussion and other non-pitched instruments may also be included—the default analysis procedure (extracting peaks over the entire frequency range of the spectrum) handles both pitched and non-pitched sound sources.
The compiled database contains the following information for each instrument and technique:
The bulk of SPORCH's code is dedicated to building this database and interpolating the large amount of data. The user controls several analysis parameters so that the data can come from either the steady state portions of the tones or the attack portions if this is more appropriate (as in staccato articulations, for example).
To get from digital sound samples to sets of peaks, sporchdb, SPORCH's database compiling program, uses the following procedure:
Several post-analysis modifications may be done. For example, peaks may be tuned to certain fundamental frequency (necessary for some of the free sample databases that are available) and/or amplified. The same entire procedure is also used when the program is run and a sound source is analyzed.