sminstbuilder - program to build .smset instruments from samples
sminstbuilder is a script which automatically performs all steps required to build an .smset instrument (to be used with SpectMorph morph plans) from samples. It is possible to do all the steps sminstbuilder does by hand, using smenc, smwavset, smtool, imiscutter and smsampleedit, but sminstbuilder makes the process to build an instrument much more convenient.
The main idea is to have one directory per instrument, and in each directory one file named "config". Everything that sminstbuilder needs to know about the instrument goes into the "config" file. The commands are documented below in the CONFIG section.
sminstbuilder takes a list of one or more instrument directories as input. Each instrument needs to have a "config" file.
reads the file "sminstbuilder.cfg" on startup.
This file contains non-instrument-specific options. These
While building instruments, it may be necessary to encode the same sample again and again (while changing other parameters). Since smenc is slow, this can take a long time. If cache is set to 1, sminstbuilder will use smenccache for encoding, and if the same sample was encoded previously, the result will be taken from ~/.smenccache, which is a lot faster than rerunning smenc.
Since encoding is expensive, distributing the encoder jobs on multi-core-cpus is usually desired. If you have a multi-core-cpu, set n_jobs to the number of cores (i.e. 1 for single-core, 2 for dual-core, ...)
After sucessfully building an instrument, sminstbuilder will copy the instrument to this directory. It should be specified using an absolute path (not relative path).
Set a one frame loop that starts and ends at the same point (given by <percent>).
Tune instrument using the (40%..60%) data to extract the actual frequency.
Normalize audio volume, using the volume around <percent> as reference.
Normalize audio volume, using the volume of the looped part as reference.
Set data directory relative to instrument directory.
sample <midi-note> <filename>
Add sample from file <filename> to instrument. The <midi-note> should be set to the note that was recorded, as number between 0 and 127.
samples <start-midi-note> <end-midi-note>
Add a set of samples to instrument. The sample files should be named note-<N>.wav, where <N> is the midi-note, counting from <start-midi-note> to <end-midi-note>.
Set markers from marker file.
Tune each frame of the instrument. This will discard minimal changes in frequency which are normal for most instruments, so it might sound artificial.
smenc.1 <https://testbit.eu/wiki/Smenc.1>, smtool.1 <https://testbit.eu/wiki/Smtool.1>, smwavset.1 <https://testbit.eu/wiki/Smwavset.1>