# Boom bap

Boom bap sits at 84 to 96 BPM with swing 20 to 35. The kick lands on 1 and
the and of 2 (or later), the snare on 2 and 4 with a ghost before the
turnaround, hats on swung eighths at two velocities, a fingered bass that
bounces with the kick, and dusty keys chords held for a bar. Use the Lo-fi kit
(9) or Room (8), gm:34 for bass, gm:5 or gm:1 for keys with `cut` 7,000 for
warmth, and reverb send 2,500 to 3,000 on the keys only.

## Skeleton

```compose
title Boom bap skeleton
bpm 90
bars 4
key C minor
genre boom-bap
swing 28

drums 9
vol 9000
kick:  x.....x...x..... | x.....x.x.......
snare: ....x.......x... | ....x.......x..o
hh:    x.o.x.o.x.o.x.o. | x.o.x.o.x.o.x.oo @65/92

bass gm:34
vol 8000
vel 100
C2@1>3 C2@4>2 Bb1@7>2 C2@9>3 G1@13>2 Bb1@15>2 | C2@1>3 C2@4>2 Eb2@7>2 C2@9>3 G1@13>2 F2@15>2

keys gm:5
vol 6500 rev 3000 cut 7000
C4+Eb4+G4+Bb4@1>16 | Ab4+C5+Eb5+G5@1>16 | C4+Eb4+G4+Bb4@1>16 | Bb4+D5+F5@1>8 G4+B4+D5+F5@9>8
```

Templates: `grooves/boom-bap-basic`, `boom-bap-laid-back`,
`boom-bap-double-kick`, `boom-bap-rimshot`, `boom-bap-fill`;
`bass/boom-bap-bounce`, `pedal-passing`; `progressions/soul-Imaj7-iii7-vi7-ii7-V7`;
`songs/boom-bap-verse-hook`.

## Before and after

Before: the skeleton's hats carry two velocities and the drums alternate bars,
so `lint` is quiet. What it lacks is motion: every row uses two
velocities and every kick is the same weight, which `analyze` shows as
`distinct 4` on the drums velocity row with a histogram in three buckets.

```sh
soundfish humanize '<url>' trk_drums --velocity 12 --seed 7 --operation op_loose
soundfish variation '<url>' trk_drums --bars 4 --density -20 --seed 5 --operation op_air
```

After: the velocity histogram spreads across four buckets, and bar 4 loses a
fifth of its hits, so the loop breathes before the repeat instead of ending
with a fill. If `lint` then reports `empty-bar` on a row, that is the point of
the variation; keep it. Follow with `set-swing '<url>' 32` if the hats still
feel straight against the kick.

## Stage order

1. Drums first, and get the swing right before anything else: compile, listen,
   change `swing` by 4 at a time.
2. Bass against the kick: roots on the kick's steps, a flat seventh or fifth
   below the root as the pickup.
3. Keys held a bar at a time, voiced above C4, low-passed.
4. One ear-catching sample-like part if the loop needs it: a rim row, a
   shaker, a short vibraphone line (gm:12) high up.
5. `humanize`, then `variation` on the last bar, then `lint`.
