SMINSTBUILDER(1)
π NAME π
sminstbuilder is literally the program that builds .smset instruments from samples. Welcome to the SMINSTBUILDER(1) manual page, bestie β we're gonna get you comfy with it. π
β¨ SYNOPSIS β¨
# πΈ DESCRIPTION πΈ
`sminstbuilder` is a script that automatically performs <italic>all</italic> the steps required to build an `.smset` instrument from samples β and that instrument is meant to be used with SpectMorph morph plans. You <bold>can</bold> do every step by hand with `smenc`, `smwavset`, `smtool`, `imiscutter` and `smsampleedit`, but `sminstbuilder` makes the process to build an instrument <hotpink>so much more convenient</hotpink>. Periodt. π
The main character idea is: one directory per instrument, and inside each directory, one file named `config`. Everything that `sminstbuilder` needs to know about the instrument goes into that `config` file. The commands are documented below in the <purple>CONFIG</purple> section. π«Ά
# π
OPTIONS π
`sminstbuilder` takes a list of one or more instrument directories as input. Each instrument needs to have a `config` file. No cap. β¨
# π¦ BUILDER CONFIG π¦
On startup, `sminstbuilder` reads the file `sminstbuilder.cfg`. That file contains the non-instrument-specific options. These are:
- **`cache 0/1`** β 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`. π₯
- **`jobs n_jobs`** β 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, ...). π
- **`output-dir directory`** β After sucessfully building an instrument, `sminstbuilder` will copy the instrument to this directory. It should be specified using an absolute path (not relative path). π
# π CONFIG π
- **`auto-loop <percent>`** β Set a one frame loop that starts and ends at the same point (given by `<percent>`). π
- **`auto-tune`** β Tune instrument using the (40%..60%) data to extract the actual frequency. π―
- **`auto-volume <percent>`** β Normalize audio volume, using the volume around `<percent>` as reference. π
- **`auto-volume-from-loop`** β Normalize audio volume, using the volume of the looped part as reference. π
- **`cut`** β that's it, bestie, no extra description here. βοΈ
- **`dir`** β 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`** β Set markers from marker file. π
- **`tune-all-frames`** β Tune each frame of the instrument. This will discard minimal changes in frequency which are normal for most instruments, so it might sound artificial. β οΈ
# π SEE ALSO π
- `smenc.1 <https://testbit.eu/wiki/Smenc.1>`
- `smtool.1 <https://testbit.eu/wiki/Smtool.1>`
- `smwavset.1 <https://testbit.eu/wiki/Smwavset.1>`
---
Laterz, bestie β this `sminstbuilder` manual page is Revision 601 and it's dated 2011-08-05. byeee ππβ¨
π¦ where this page comes from
- arch rolling: spectmorph-tools 0.6.1-2 Β· LGPL-2.1-or-later
- nixos 26.05: spectmorph 0.6.1
- nixpkgs unstable: spectmorph 0.6.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms