SpectMorph - Documentation - smenc 0.1.1

smenc - SpectMorph encoder


smenc - Program to encode a wav file into a SpectMorph model


smenc [OPTIONS] WAV-File [ SM-File ]


smenc is a command line tool to create SpectMorph models from audio files. Usually the input file should contain a single note of some instrument, like a single C4 note. Since lower notes require different analysis parameters than higher notes, its usually a good idea to use the -m option to let the encoding algorithm know which note is being encoded.

There is also a quality / time tradeoff, which means you can use the -O0, -O1 or -O2 option to specify how accurate the analysis should be, with higher numbers meaning better quality, but longer analysis time.

For multi-channel inputs, each channel is encoded seperately. If you do not specify the output filename, the encoder will for instance create piano-ch0.sm and piano-ch1.sm from the stereo file piano.wav. If you do specify an output filename, you need to include a %c into the name, like piano-ch%c.sm, which will be substituted with the channel number.


smenc follows the usual GNU command line syntax, with long options starting with two dashes ('-').

  • -h, --help
    Shows a brief help message.
  • -v, --version
    Prints out smenc version.
  • -f <frequency>
    Specify fundamental frequency in Hz - this information is optional, but should be supplied when known, to increase the accuracy of the model. It is equivalent to specifying the midi note; only one of -m and -f should be used.
  • -m <midi-note>
    Specify the midi note of the input; this will be used to set the fundamental frequency in Hz. Adding this information is not required, but increases the accuracy of the analysis algorithm. Only one of -m and -f should be used.
  • -O <level>
    For all frames of the input file, once smenc has found out which sine waves can be used to describe the frame, it needs to estimate the magnitude and phase of each sine wave for this frame. The optimization level chooses the algorithm used for finding the magnitude and phase; the higher the level, the more accurate the result will be. However, it defaults to -O0, since this is the fastest algorithm: estimating the magnitude/phase from the FFT result. A good choice is -O1, which is somewhat slower, but also somewhat better.
  • -s
    Right now, smenc defaults to including lots of information in the output .sm file, that is helpful for debugging smenc, but not essential for replaying the file. Therefore the files created by smenc are very large by default. To limit the file size, using the -s option instruct smenc to create a "stripped" model, that contains only the information needed to play it. These stripped models are usually much smaller than unstripped models.
Valid HTML 4.01 Transitional