SMINSTBUILDER(1)

πŸ“¦ version 0.6.1, in arch rolling, nixos 26.05, nixpkgs unstable

πŸŽ€ 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