# Choose sounds and shape your loop

Start with a few parts that leave room for each other. Choose an instrument, listen in context, then adjust the mix. These suggestions are starting points you can change to suit your music. The current fixed sound release is MuseScore General 0.2.0 through SpessaSynth with 12 layered drum kits and 40 sampled melodic overrides.

## Voices that carry a loop

The instrument picker includes sounds such as Wurlitzer EP200, Black Fingered Bass, Etherealwinds Harp, and VSCO strings, brass, and winds. The instrument picker displays and searches those names as well as the GM catalog. Filter by family, pause playback, then use arrow keys to preview and Enter to choose. Bass previews use a low register; pipe instruments use a higher one. The first preview may need to fetch its sound.

| Role | First choice | Alternatives |
| --- | --- | --- |
| Bass | gm:34 Electric Bass (finger) | gm:39 Synth Bass 1, gm:40 Synth Bass 2, gm:33 Acoustic Bass |
| Chords | gm:5 Electric Piano 1 | gm:1 Acoustic Grand, gm:17 Drawbar Organ, gm:90 Pad 2 (warm) |
| Pad | gm:90 Pad 2 (warm) | gm:89 Pad 1, gm:92 Pad 4, gm:51 Synth Strings 1 |
| Strings | gm:49 String Ensemble 1 | gm:50 String Ensemble 2, gm:45 Tremolo Strings |
| Lead | gm:82 Lead 2 (sawtooth) with cutoff 4,000 to 7,000 | gm:81 Lead 1 (square), gm:74 Flute, gm:57 Trumpet |
| Stabs | gm:63 Synth Brass 1 | gm:62 Brass Section, gm:6 Electric Piano 2 |

These are starting points, not quality measurements. Many solo strings, saxophones, brass, and guitars now use sampled overrides; the earlier base-bank ratings do not describe those replacements. Audition in context. `gm:N` is the conventional 1-based General MIDI number; the stored program is N − 1. Current sampled voices and complete catalog: [gm-programs.md](https://sound.fish/skills/soundfish/reference/gm-programs.md).

## Drum kits

Choose from twelve drum kits. Their CLI program numbers are: Acoustic 0, Room 8, Lo-fi 9, Breaks 10, Techno 11, House 13, Rock 16, Electronic 24, 808 25, 909 30, Orchestra 48, Ethnic 49. Every kit answers on every percussion pitch 35 to 81, and closed, pedal, and open hi-hat (42, 44, 46) choke each other. Percussion map, kit sources, and default rows: [drums.md](https://sound.fish/skills/soundfish/reference/drums.md).

## Loop size and limits

- BPM 40 to 240; pitch 0 to 127 (C4 is 60); velocity 1 to 127; bars 1 to 16; 16 steps per bar; swing 0 to 100.
- At most 16 tracks (15 notes tracks), 512 events per track, 832 per loop.
- Canonical bytes are the binding limit: 24493 per loop. `soundfish analyze` prints bytes used and `lint` warns above 80%. Dense automation, long names, and lineage cost bytes before events do.

## Loop or song

A loop is one idea that repeats: 1 to 16 bars, one key, one groove. A song (`#a1`) is sections that differ in arrangement, built from loops that share one tempo, one swing, and one track roster with `song build`. Do not force an arrangement into a sixteen-bar loop.

## Balance the parts

Try alternating strong and soft hi-hats, keeping bass below the chords, and changing one part near the end of the loop. Lower track volumes if the mix feels crowded. Keep reverb and delay light on kick and bass. These are musical suggestions, not requirements. `soundfish lint` checks the mechanical half (`identical-bars`, `empty-bar`, `empty-track`, `bass-register`, `chord-register`, `flat-hats`, `low-end-send`, `delay-feedback`, `volume-headroom`, `byte-budget`, plus `bass-band`, `sub-band-crowding`, and `mix-clipping` with render statistics). Full rubric: [critique.md](https://sound.fish/skills/soundfish/reference/critique.md).

## Mix numbers

- Reverb send 2,000 to 3,500 on keys and pads, 1,500 to 2,500 on leads, 0 on kick and bass; delay send 1,500 to 3,000 on leads and stabs.
- Delay time in milli-beats: 250 sixteenth, 333 triplet eighth, 500 eighth (default), 750 dotted eighth, 1,000 quarter.
- Pan 0 left to 10,000 right; keep kick, snare, bass, and the lead centered. Cutoff is a 200 Hz to 20 kHz log low-pass: 2,500 is about 630 Hz, 5,000 is 2 kHz, 7,500 about 6.3 kHz; pads 5,000 to 7,000, leads 4,000 to 8,000.
- Swing 15 to 35 loosens boom-bap and breaks; 55 to 66 is a shuffle or triplet feel.

Details: [mixing.md](https://sound.fish/skills/soundfish/reference/mixing.md).

## The working loop

For an existing loop, inspect and verify its exact URL first and preserve unrelated tracks and lineage. For new music, start from a template (`soundfish templates list`, `soundfish templates apply grooves/house-basic --key Am --bpm 124`), write or edit compose text, compile it with `soundfish compose`, read `lint` and `analyze`, fix with transforms (`fill`, `variation`, `accent`, `humanize`, `duck`, `transpose`, `set-volume`, `set-send`, `set-cutoff`, `thin`), then save the final CLI URL output and use `handoff` to generate and check the actual reply against it. From a repository checkout, `render --dry` adds per-track band statistics. The compose grammar is in the [API reference](https://sound.fish/docs/api.md#compose).

## Genres

- [house](https://sound.fish/skills/soundfish/reference/genres/house.md): House: a compose skeleton, a before-and-after transform pair, and the stage order.
- [boom-bap](https://sound.fish/skills/soundfish/reference/genres/boom-bap.md): Boom bap: a compose skeleton, a before-and-after transform pair, and the stage order.
- [half-time](https://sound.fish/skills/soundfish/reference/genres/half-time.md): Half time: a compose skeleton, a before-and-after transform pair, and the stage order.
- [breakbeat](https://sound.fish/skills/soundfish/reference/genres/breakbeat.md): Breakbeat and jungle: a compose skeleton, a before-and-after transform pair, and the stage order.
- [jazz](https://sound.fish/skills/soundfish/reference/genres/jazz.md): Jazz: a compose skeleton, a before-and-after transform pair, and the stage order.
- [orchestral](https://sound.fish/skills/soundfish/reference/genres/orchestral.md): Orchestral: a compose skeleton, a before-and-after transform pair, and the stage order.

Each genre file is under 600 words with one compose skeleton, a before-and-after transform pair, and the order to build the parts in. The CLI procedure (exit codes, stdin, songs, export, import) is [cli.md](https://sound.fish/skills/soundfish/reference/cli.md).
