Sound Font Compressor

General Description

This Project aims to successfully compress the extensive libraries of musical instrument sounds that are contained in desktop music notation software suites to a size that is adequate for mobile devices with often less than 2 gigabytes of available space across the whole phone. This is accomplished through a mathematical approximation of the original files by means of a representative function.

Solutions to the wave equation with string like boundary conditions gives solutions in the form of a series of descrete functions. Due to this, The fourier spectra of the input signal can be well modeled as a fourier series with time dependent amplitudes.

  1. the program searches through the spectra to find an adequate root frequency. it does so by measuring the ratio of the 2 strongest frequency peaks, and rounding to the nearest fraction of digits.
  2. the time dependent fourier series is then taken. this is done by means of a window function integrated across the entire spectra.
  3. the output amplitudes and relative delta values it then curve fitted to a series of functions that represent a variety of effects such as : pitch bend, vibrato, decay attack and release.
  4. the function or combination of functions with the smallest sum of squared differences value is then output. Step 3 is repeated itoratively until all of the series terms are curve fitted to a desired accuracy.
  5. the final set of functions can be played back to verify accurate fitting has been produced and saved as an xml file to be loaded later.