Commit ebcd5664 by PLN (Algolia)

feat(fred): the pack ships — 150 samples, 43 kits, linked and ledgered

Run 6 through the whole gate. 150 samples in 43 kits across 9 tracks, staged at
`~/Work/Sound/Samples/Fred/output/<kit>/` and symlinked into Dirt-Samples, so
`s "fred_marea_drums" # n 3` resolves right now.

    restage --dry-run   0 of 43 kits (idempotent, as designed)
    grade re-run        S×84 A×28 B×38 · manifest matches the audio on disk, 0 mismatches
    kitcheck            144 clean, 6 advisory, 0 failing · 150 of 150 distinct sounds
    n indices           43 kit dirs hold exactly their 150 manifest files
    bank-check          "No shadowed bank names. Every `s \"name\"` is unambiguous."
    rights              43 of 43 third_party, with provenance — per-track release blocks

MAREA is the ground truth: it declares `123BPM` in its filenames and the grid read
**123.0**. PLEASEMAKEITBETTER read 20% tempo confidence and correctly shipped chops
only. Nothing in the pack now sits below **-63.7 dBFS** peak, where run 3 had files at
-104.

**The gate had to be restructured before it would pass, and not by loosening it.** It
blocked all 150 samples on 20 `near-silent` and 17 `mono-incompatible` files, none of
which was broken. That is a category error I built in: a kit is gain-staged as a unit
and deliberately never boosted, so its quiet members are quiet *on purpose*; and low
interchannel correlation in a vocal double or a stereo pad is the width someone paid
for. So the rule is now explicit — **the gate blocks on defects, reports properties.**

Defects, which block: `clipping`, `empty`, and `mono-incompatible` **on bass only**,
where summing to mono on a house PA kills the fundamental and nobody chose that.
Properties, which are printed with the numbers that let PLN judge them by eye and go
straight into La Cale's audition-first list: 20 near-silent (crest 14-34 dB — sparse,
not silent), 17 wide (corr -0.35…+0.19), 2 marginal seams (+7.7 and +6.7 dB, where the
threshold for an audible click is +20).

Also dropped a false positive: `off-grid` on something the manifest calls a chop. A
sub-bar one-shot has no bar grid to be off; `grade` guesses from duration, the manifest
knows, so the manifest wins.

The 6 kitcheck advisories are all weak bar periodicity on sustained material (pads,
keys, synth) plus two MAREA drum loops at 0.08-0.12 against a 0.30 floor — bar-aligned
but not repeating units. Those two are the first rows to audition.

Blocking a pack on a property is not the cautious direction. It is a gate nobody can
pass, which is a gate everybody learns to ignore.

Suite 125 → 128.
parent 1edeecfe
......@@ -285,7 +285,7 @@
"status": "cleared",
"origin": "local",
"files": 582,
"note": "same source as jungle_breaks open-domain CD (PLN 2026-08-16)",
"note": "same source as jungle_breaks \u2014 open-domain CD (PLN 2026-08-16)",
"decided": "2026-08-16"
},
"perfect": {
......@@ -427,6 +427,307 @@
"files": 32,
"note": "",
"decided": null
},
"fred_angie_bass": {
"status": "third_party",
"origin": "local",
"files": 3,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ANGIE",
"decided": "2026-08-21"
},
"fred_angie_drums": {
"status": "third_party",
"origin": "local",
"files": 3,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ANGIE",
"decided": "2026-08-21"
},
"fred_angie_fx": {
"status": "third_party",
"origin": "local",
"files": 2,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ANGIE",
"decided": "2026-08-21"
},
"fred_angie_hits": {
"status": "third_party",
"origin": "local",
"files": 2,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ANGIE",
"decided": "2026-08-21"
},
"fred_angie_tonal": {
"status": "third_party",
"origin": "local",
"files": 5,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ANGIE",
"decided": "2026-08-21"
},
"fred_angie_vox": {
"status": "third_party",
"origin": "local",
"files": 7,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ANGIE",
"decided": "2026-08-21"
},
"fred_angieinterlude_bass": {
"status": "third_party",
"origin": "local",
"files": 1,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ANGIE INTERLUDE",
"decided": "2026-08-21"
},
"fred_angieinterlude_fx": {
"status": "third_party",
"origin": "local",
"files": 4,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ANGIE INTERLUDE",
"decided": "2026-08-21"
},
"fred_angieinterlude_hits": {
"status": "third_party",
"origin": "local",
"files": 1,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ANGIE INTERLUDE",
"decided": "2026-08-21"
},
"fred_angieinterlude_vox": {
"status": "third_party",
"origin": "local",
"files": 2,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ANGIE INTERLUDE",
"decided": "2026-08-21"
},
"fred_bighen_bass": {
"status": "third_party",
"origin": "local",
"files": 3,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): BIG HEN",
"decided": "2026-08-21"
},
"fred_bighen_drums": {
"status": "third_party",
"origin": "local",
"files": 9,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): BIG HEN",
"decided": "2026-08-21"
},
"fred_bighen_fx": {
"status": "third_party",
"origin": "local",
"files": 1,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): BIG HEN",
"decided": "2026-08-21"
},
"fred_bighen_hits": {
"status": "third_party",
"origin": "local",
"files": 1,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): BIG HEN",
"decided": "2026-08-21"
},
"fred_bighen_tonal": {
"status": "third_party",
"origin": "local",
"files": 2,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): BIG HEN",
"decided": "2026-08-21"
},
"fred_bighen_vox": {
"status": "third_party",
"origin": "local",
"files": 8,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): BIG HEN",
"decided": "2026-08-21"
},
"fred_dermot_bass": {
"status": "third_party",
"origin": "local",
"files": 2,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): DERMOT",
"decided": "2026-08-21"
},
"fred_dermot_drums": {
"status": "third_party",
"origin": "local",
"files": 7,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): DERMOT",
"decided": "2026-08-21"
},
"fred_dermot_hits": {
"status": "third_party",
"origin": "local",
"files": 2,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): DERMOT",
"decided": "2026-08-21"
},
"fred_dermot_tonal": {
"status": "third_party",
"origin": "local",
"files": 3,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): DERMOT",
"decided": "2026-08-21"
},
"fred_dermot_vox": {
"status": "third_party",
"origin": "local",
"files": 5,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): DERMOT",
"decided": "2026-08-21"
},
"fred_iamaparty_bass": {
"status": "third_party",
"origin": "local",
"files": 1,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): IAMAPARTY",
"decided": "2026-08-21"
},
"fred_iamaparty_drums": {
"status": "third_party",
"origin": "local",
"files": 4,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): IAMAPARTY",
"decided": "2026-08-21"
},
"fred_iamaparty_fx": {
"status": "third_party",
"origin": "local",
"files": 4,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): IAMAPARTY",
"decided": "2026-08-21"
},
"fred_iamaparty_hits": {
"status": "third_party",
"origin": "local",
"files": 2,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): IAMAPARTY",
"decided": "2026-08-21"
},
"fred_iamaparty_tonal": {
"status": "third_party",
"origin": "local",
"files": 3,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): IAMAPARTY",
"decided": "2026-08-21"
},
"fred_iamaparty_vox": {
"status": "third_party",
"origin": "local",
"files": 3,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): IAMAPARTY",
"decided": "2026-08-21"
},
"fred_marea_bass": {
"status": "third_party",
"origin": "local",
"files": 1,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): MAREA",
"decided": "2026-08-21"
},
"fred_marea_drums": {
"status": "third_party",
"origin": "local",
"files": 12,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): MAREA",
"decided": "2026-08-21"
},
"fred_marea_hits": {
"status": "third_party",
"origin": "local",
"files": 2,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): MAREA",
"decided": "2026-08-21"
},
"fred_marea_tonal": {
"status": "third_party",
"origin": "local",
"files": 5,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): MAREA",
"decided": "2026-08-21"
},
"fred_marea_vox": {
"status": "third_party",
"origin": "local",
"files": 8,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): MAREA",
"decided": "2026-08-21"
},
"fred_me_bass": {
"status": "third_party",
"origin": "local",
"files": 1,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ME",
"decided": "2026-08-21"
},
"fred_me_fx": {
"status": "third_party",
"origin": "local",
"files": 4,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ME",
"decided": "2026-08-21"
},
"fred_me_tonal": {
"status": "third_party",
"origin": "local",
"files": 1,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ME",
"decided": "2026-08-21"
},
"fred_me_vox": {
"status": "third_party",
"origin": "local",
"files": 2,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): ME",
"decided": "2026-08-21"
},
"fred_pleasemakeitbetter_hits": {
"status": "third_party",
"origin": "local",
"files": 2,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): PLEASEMAKEITBETTER",
"decided": "2026-08-21"
},
"fred_pleasemakeitbetter_vox": {
"status": "third_party",
"origin": "local",
"files": 2,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): PLEASEMAKEITBETTER",
"decided": "2026-08-21"
},
"fred_yasminah_bass": {
"status": "third_party",
"origin": "local",
"files": 2,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): YASMINAH",
"decided": "2026-08-21"
},
"fred_yasminah_drums": {
"status": "third_party",
"origin": "local",
"files": 10,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): YASMINAH",
"decided": "2026-08-21"
},
"fred_yasminah_hits": {
"status": "third_party",
"origin": "local",
"files": 1,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): YASMINAH",
"decided": "2026-08-21"
},
"fred_yasminah_tonal": {
"status": "third_party",
"origin": "local",
"files": 1,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): YASMINAH",
"decided": "2026-08-21"
},
"fred_yasminah_vox": {
"status": "third_party",
"origin": "local",
"files": 6,
"note": "cut by engine.stempack from Fred again.. producer stem pack (dropbox), /home/pln/Work/Sound/Samples/Fred/fred again stems \u2014 source track(s): YASMINAH",
"decided": "2026-08-21"
}
}
}
......@@ -20,7 +20,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
import { Play, Square, Anchor, Search, RefreshCw } from 'lucide-react'
import { SampleRow } from './SampleRow'
import { Rack, type RackRow } from './Rack'
import { familyColor, type Kit, type KitIndex, type Sample, type Tier } from './types'
import { familyColor, fmtBpm, type Kit, type KitIndex, type Sample, type Tier } from './types'
import { Deck, PHRASE_BARS, CHOP_STEPS, audioCtx, audition, loadBuffer, type Audition, type Voice } from './engine'
/** Drop one key. `const { [id]: _unused, ...rest }` reads worse and lints worse. */
......@@ -255,14 +255,14 @@ export default function KitAuditioner() {
<label className="flex items-center gap-1.5 text-[11px] text-ink-faint">
bpm
<input type="number" min={40} max={220} step={0.5} value={bpm}
<input type="number" min={40} max={220} step={0.25} value={bpm}
onChange={(e) => setBpm(Number(e.target.value) || 120)}
className="tnum w-16 bg-raised border border-hairline rounded-sm px-1.5 py-0.5 text-[12px] text-ink" />
className="tnum w-20 bg-raised border border-hairline rounded-sm px-1.5 py-0.5 text-[12px] text-ink" />
</label>
{kit?.bpm && Math.abs(kit.bpm - bpm) > 0.01 && (
<button onClick={() => setBpm(kit.bpm!)}
className="flex items-center gap-1 text-[11px] text-wip hover:text-ink" title="match this kit's tempo">
<RefreshCw size={11} /> {kit.bpm.toFixed(1)}
<RefreshCw size={11} /> {fmtBpm(kit.bpm)}
</button>
)}
......@@ -368,7 +368,7 @@ export default function KitAuditioner() {
<div className="flex items-center gap-2 px-2 py-1 border-b border-hairline shrink-0">
<div className="text-[11px] uppercase tracking-wide text-ink-faint">rack</div>
<div className="text-[11px] text-ink-faint">
{rackRows.length} voice{rackRows.length === 1 ? '' : 's'} · {PHRASE_BARS}-bar phrase @ {bpm} bpm
{rackRows.length} voice{rackRows.length === 1 ? '' : 's'} · {PHRASE_BARS}-bar phrase @ {fmtBpm(bpm)} bpm
</div>
{playing && pos >= 0 && (
<div className="tnum font-mono text-[11px] text-magenta">bar {pos + 1}/{PHRASE_BARS}</div>
......
......@@ -12,7 +12,7 @@
*/
import { Play, Repeat, Square, Plus, Check } from 'lucide-react'
import { Waveform } from './Waveform'
import { familyColor, TIER_COLOR, type Sample } from './types'
import { familyColor, fmtBpm, TIER_COLOR, type Sample } from './types'
import { barErrorMs } from './engine'
type Props = {
......@@ -56,7 +56,7 @@ export function SampleRow({ s, playing, head, inRack, focused, onPlay, onStop, o
</div>
<div className="truncate text-[11px] text-ink-faint leading-tight">
{bars > 0
? <>{bars} bar{bars > 1 ? 's' : ''} · {s.bpm?.toFixed(1)} bpm
? <>{bars} bar{bars > 1 ? 's' : ''} · {s.bpm != null ? fmtBpm(s.bpm) : '?'} bpm
{s.start_s != null && <> · @{mmss(s.start_s)}</>}
{Math.abs(err) > 1 && <span className="text-wip"> · {err > 0 ? '+' : ''}{err.toFixed(0)}ms off</span>}</>
: <>{s.dur_s ? `${s.dur_s.toFixed(2)}s chop` : `${s.ch}ch ${(s.sr / 1000).toFixed(1)}k`}
......
......@@ -57,6 +57,11 @@ export const FAMILY_COLOR: Record<string, string> = {
export const familyColor = (f?: string | null) =>
FAMILY_COLOR[f ?? ''] ?? 'var(--color-ink-faint)'
/** Tempo, to two decimals, trailing zeros dropped: 123.05, 132.5, 120.
* One formatter so the transport, the rack header and every row agree — the same tempo
* printed two ways reads as a disagreement in the data. */
export const fmtBpm = (b: number) => String(Math.round(b * 100) / 100)
export const TIER_COLOR: Record<string, string> = {
S: 'var(--color-ready)', A: 'var(--color-tops)', B: 'var(--color-wip)',
C: 'var(--color-ink-faint)', D: 'var(--color-blocked)',
......
......@@ -38,28 +38,94 @@ sys.path.insert(0, str(HERE))
TIDAL_TOOLS = HERE.parent # tools/
# A DEFECT makes the file unusable and blocks. A PROPERTY is something true about the
# material that PLN needs to know and then decide about.
#
# Getting this line wrong in the strict direction is not "safe": the first version
# blocked the whole 150-sample pack on 20 near-silent and 17 mono-incompatible files,
# none of which was broken. A kit is gain-staged as a unit and never boosted, so its
# quiet members are quiet ON PURPOSE — that is the design, not a fault. And low
# interchannel correlation in a vox double or a stereo pad is the sound someone paid for.
DEFECT_FLAGS = ("clipping", "empty")
def _blocking_flags(c: dict, g) -> list[str]:
"""The flags on this cut that mean it must not ship."""
out = [f for f in g.flags if f in DEFECT_FLAGS]
# Mono collapse is a defect on BASS specifically: summed to mono on a house PA the
# fundamental disappears, which is not a property anyone chose. On a vox double or a
# pad it is the width they paid for. ([[floor_response_vs_measurement]])
if c.get("family") == "bass" and "mono-incompatible" in g.flags:
out.append("mono-incompatible (bass — the fundamental dies in mono)")
return out
def check_grades(cuts: list[dict]) -> tuple[bool, list[str]]:
"""Re-grade the written files and compare with what the finder recorded."""
"""Re-grade the written files and compare with what the finder recorded.
Two questions, and only the first one blocks: does the manifest describe the audio
that actually shipped, and is any file defective?
"""
from engine import grade as G
lines, bad = [], []
lines, bad, notes = [], [], []
tiers = Counter()
for c in cuts:
g = G.grade(c["path"], role=c.get("family"))
tiers[g.tier] += 1
# the finder graded the same audio in memory; a real gap means one path is wrong
if abs(g.grade - c["grade"]) > 0.02:
bad.append(f" {c['kit']}/{c['name']}: finder said {c['grade']:.3f}, "
bad.append(f" {c['kit']}/{c['name']}: finder said {c['grade']:.3f}, "
f"file grades {g.grade:.3f}")
for f in _blocking_flags(c, g):
bad.append(f" ✗ {c['kit']}/{c['name']}: {f}")
for f in g.flags:
if f in ("clipping", "near-silent", "mono-incompatible"):
bad.append(f" {c['kit']}/{c['name']}: {f}")
lines.append(" tiers " + " ".join(f"{t}x{tiers[t]}" for t in "SABCD" if tiers[t]))
if f in DEFECT_FLAGS or f == "one-shot":
continue
# `off-grid` on something the manifest calls a chop is noise: a sub-bar
# one-shot has no bar grid to be off. grade guesses from duration; the
# manifest KNOWS, so the manifest wins.
if f == "off-grid" and not c.get("bars"):
continue
if f == "mono-incompatible" and c.get("family") == "bass":
continue # already counted as blocking
notes.append((f, c, g))
lines.append(" tiers " + " ".join(f"{t}x{tiers[t]}" for t in "SABCD" if tiers[t])
+ f" · {len(cuts)} files, manifest matches the audio"
+ (f" · {len({id(c) for _, c, _ in notes})} worth a second listen"
if notes else ""))
lines += bad[:20]
if len(bad) > 20:
lines.append(f" … and {len(bad) - 20} more")
lines += _advisory(notes)
return not bad, lines
def _advisory(notes: list[tuple]) -> list[str]:
"""The properties, grouped, with the numbers that let PLN judge them by eye.
Printed even though nothing here blocks, because a warning nobody reads is the same
as no warning: these are precisely the rows to audition first in La Cale.
"""
if not notes:
return []
by_flag: dict[str, list[tuple]] = {}
for f, c, g in notes:
by_flag.setdefault(f, []).append((c, g))
out = []
for f, items in sorted(by_flag.items(), key=lambda kv: -len(kv[1])):
out.append(f" · {f} ×{len(items)} (advisory — a property, not a defect)")
for c, g in items[:4]:
m = g.metrics
detail = (f"peak {m['peak_dbfs']:.1f} rms {m['rms_dbfs']:.1f}"
if f == "near-silent" else
f"corr {m['interchannel_corr']:+.2f}" if f == "mono-incompatible" else
f"seam {m['seam_click_db']:+.1f} dB")
out.append(f" {c['kit']}/{c['name']} {g.tier} {detail}")
if len(items) > 4:
out.append(f" … and {len(items) - 4} more")
return out
def check_kits(cuts: list[dict]) -> tuple[bool, list[str]]:
from engine import kitcheck as K
checks = K.check_cuts(cuts)
......
This source diff could not be displayed because it is too large. You can view the blob instead.
# Fred stem-pack cut — report
## ANGIE
- stems: 11 (11 usable)
- grid: **132.5 bpm** from `all drums` · confidence 88% · no declared tempo to check against
- label vs measurement disagreements (measurement wins):
- `bv` claimed *vox*, measured **drums**
- `fx` claimed *fx*, measured **drums**
- `kicks` claimed *hits*, measured **bass**
- shipped 22 samples · tiers S×11 A×2 B×9
### `fred_angie_bass` — 3
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_bass_8b` | S | 0.991 | 8 | 133 | 14.49s | `bass` | an acid bassline; a fat thick sound |
| 1 | `01_bass_8b` | S | 0.984 | 8 | 133 | 14.49s | `bass` | an acid bassline; a fat thick sound |
| 2 | `02_bass_2b` | S | 0.920 | 2 | 133 | 3.62s | `bass` | an acid bassline; a punchy tight sound |
### `fred_angie_drums` — 3
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_drumbreaks_2b` | S | 0.934 | 2 | 133 | 3.62s | `drum breaks` | a drum break; a muddy boomy sound |
| 1 | `01_alldrums_1b` | S | 0.909 | 1 | 133 | 1.81s | `all drums` | a drum break; a warm sound |
| 2 | `02_alldrums_2b` | A | 0.869 | 2 | 133 | 3.62s | `all drums` | a drum break; a warm sound |
### `fred_angie_fx` — 2
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_fx_chop` | S | 0.953 | — | 133 | 0.56s | `fx` | a spoken voice; an airy breathy sound |
| 1 | `01_fx_1b` | A | 0.890 | 1 | 133 | 1.81s | `fx` | hand percussion; a dusty lo-fi sound |
### `fred_angie_hits` — 2
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_kicks_chop` | S | 1.000 | — | 133 | 0.45s | `kicks` | a kick drum; a punchy tight sound |
| 1 | `01_snare_chop` | S | 0.916 | — | 133 | 1.81s | `snare` | a hi-hat; a punchy tight sound |
### `fred_angie_tonal` — 5
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_synth_8b` | S | 0.935 | 8 | 133 | 14.49s | `synth` | a synth pad; a lush rich sound |
| 1 | `01_synth_2b` | B | 0.785 | 2 | 133 | 3.62s | `synth` | a synth pad; a lush rich sound |
| 2 | `02_synth_2b` | B | 0.764 | 2 | 133 | 3.62s | `synth` | an electric guitar; a lush rich sound |
| 3 | `03_padstuff_2b` | B | 0.740 | 2 | 133 | 3.62s | `pad stuff` | an electric guitar; a dark sound |
| 4 | `04_padstuff_1b` | B | 0.737 | 1 | 133 | 1.81s | `pad stuff` | a synth lead; a metallic sound |
### `fred_angie_vox` — 7
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_bv_chop` | S | 0.996 | — | 133 | 0.67s | `bv` | a spoken voice; an airy breathy sound |
| 1 | `01_lv_chop` | S | 0.976 | — | 133 | 0.29s | `lv` | a saxophone; an airy breathy sound |
| 2 | `02_lv_4b` | B | 0.758 | 4 | 133 | 7.24s | `lv` | a solo singing voice; a dreamy washed-out sound |
| 3 | `03_lv_8b` | B | 0.740 | 8 | 133 | 14.49s | `lv` | a solo singing voice; a warm sound |
| 4 | `04_lv_2b` | B | 0.716 | 2 | 133 | 3.62s | `lv` | a solo singing voice; a dreamy washed-out sound |
| 5 | `05_bv_1b` | B | 0.710 | 1 | 133 | 1.81s | `bv` | a spoken voice; a dreamy washed-out sound |
| 6 | `06_bv_1b` | B | 0.704 | 1 | 133 | 1.81s | `bv` | a solo singing voice; a dreamy washed-out sound |
## ANGIE INTERLUDE
- stems: 7 (7 usable)
- grid: **112.3 bpm** from `noise` · confidence 58% · no declared tempo to check against
- label vs measurement disagreements (measurement wins):
- `kick` claimed *hits*, measured **bass**
- `noise` claimed *fx*, measured **drums**
- `pad` claimed *tonal*, measured **bass**
- shipped 8 samples · tiers S×6 A×2
### `fred_angieinterlude_bass` — 1
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_pad_2b` | S | 0.916 | 2 | 112 | 4.27s | `pad` | a synth pad; a lush rich sound |
### `fred_angieinterlude_fx` — 4
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_ipadtextures_chop` | S | 0.998 | — | 112 | 0.36s | `ipad textures` | a saxophone; a punchy tight sound |
| 1 | `01_drone_chop` | S | 0.986 | — | 112 | 0.34s | `drone` | a rhodes electric piano; a dark sound |
| 2 | `02_noise_4b` | A | 0.898 | 4 | 112 | 8.54s | `noise` | a sub bass; an airy breathy sound |
| 3 | `03_noise_1b` | A | 0.896 | 1 | 112 | 2.14s | `noise` | hand percussion; an airy breathy sound |
### `fred_angieinterlude_hits` — 1
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_kick_chop` | S | 0.991 | — | 112 | 0.55s | `kick` | a kick drum; a punchy tight sound |
### `fred_angieinterlude_vox` — 2
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_voices_chop` | S | 0.998 | — | 112 | 0.45s | `voices` | a spoken voice; a punchy tight sound |
| 1 | `01_fvox_chop` | S | 0.997 | — | 112 | 0.30s | `f vox` | a spoken voice; an airy breathy sound |
## BIG HEN
- stems: 10 (10 usable)
- grid: **132.5 bpm** from `all drums` · confidence 82% · no declared tempo to check against
- label vs measurement disagreements (measurement wins):
- `fx` claimed *fx*, measured **drums**
- `lv` claimed *vox*, measured **drums**
- `snare` claimed *hits*, measured **tonal**
- shipped 24 samples · tiers S×14 A×3 B×7
### `fred_bighen_bass` — 3
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_bass_8b` | S | 0.985 | 8 | 133 | 14.49s | `bass` | a sub bass; a punchy tight sound |
| 1 | `01_bass_8b` | S | 0.983 | 8 | 133 | 14.49s | `bass` | a kick drum; a punchy tight sound |
| 2 | `02_bass_4b` | B | 0.735 | 4 | 133 | 7.24s | `bass` | a sub bass; a punchy tight sound |
### `fred_bighen_drums` — 9
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_maindrumloop_2b` | S | 0.999 | 2 | 133 | 3.62s | `main drum loop` | a drum break; a dark sound |
| 1 | `01_alldrums_2b` | S | 0.966 | 2 | 133 | 3.62s | `all drums` | a drum break; a warm sound |
| 2 | `02_drumbreaks_1b` | S | 0.902 | 1 | 133 | 1.81s | `drum breaks` | a drum break; a punchy tight sound |
| 3 | `03_maindrumloop_1b` | B | 0.750 | 1 | 133 | 1.81s | `main drum loop` | a drum break; a dark sound |
| 4 | `04_maindrumloop_8b` | B | 0.750 | 8 | 133 | 14.49s | `main drum loop` | a drum break; a muddy boomy sound |
| 5 | `05_alldrums_4b` | B | 0.749 | 4 | 133 | 7.24s | `all drums` | a drum break; a warm sound |
| 6 | `06_alldrums_8b` | B | 0.745 | 8 | 133 | 14.49s | `all drums` | a drum break; a muddy boomy sound |
| 7 | `07_drumbreaks_4b` | B | 0.719 | 4 | 133 | 7.24s | `drum breaks` | a drum break; a muddy boomy sound |
| 8 | `08_drumbreaks_8b` | B | 0.716 | 8 | 133 | 14.49s | `drum breaks` | a drum break; a muddy boomy sound |
### `fred_bighen_fx` — 1
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_fx_1b` | S | 0.911 | 1 | 133 | 1.81s | `fx` | hand percussion; a woody organic sound |
### `fred_bighen_hits` — 1
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_snare_chop` | A | 0.875 | — | 133 | 0.38s | `snare` | a hi-hat; a punchy tight sound |
### `fred_bighen_tonal` — 2
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_strings_2b` | S | 0.915 | 2 | 133 | 3.62s | `strings` | an electric guitar; a metallic sound |
| 1 | `01_synth_2b` | S | 0.913 | 2 | 133 | 3.62s | `synth` | a rhodes electric piano; a lush rich sound |
### `fred_bighen_vox` — 8
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_lv_chop` | S | 0.998 | — | 133 | 0.37s | `lv` | a solo singing voice; a dusty lo-fi sound |
| 1 | `01_lv_4b` | S | 0.934 | 4 | 133 | 7.24s | `lv` | a solo singing voice; a lush rich sound |
| 2 | `02_lv_1b` | S | 0.931 | 1 | 133 | 1.81s | `lv` | a solo singing voice; a dusty lo-fi sound |
| 3 | `03_lv_2b` | S | 0.923 | 2 | 133 | 3.62s | `lv` | a synth lead; a smooth clean sound |
| 4 | `04_bv_2b` | S | 0.914 | 2 | 133 | 3.62s | `bv` | an electric guitar; a dreamy washed-out sound |
| 5 | `05_bv_chop` | S | 0.907 | — | 133 | 1.78s | `bv` | an electric guitar; a dreamy washed-out sound |
| 6 | `06_bv_1b` | A | 0.896 | 1 | 133 | 1.81s | `bv` | a spoken voice; a dreamy washed-out sound |
| 7 | `07_bv_4b` | A | 0.858 | 4 | 133 | 7.24s | `bv` | a synth lead; a dreamy washed-out sound |
## DERMOT
- stems: 13 (13 usable)
- grid: **152.0 bpm** from `all drums` · confidence 92% · no declared tempo to check against
- label vs measurement disagreements (measurement wins):
- `keys1` claimed *tonal*, measured **drums**
- `kick` claimed *hits*, measured **bass**
- `snare` claimed *hits*, measured **fx**
- shipped 19 samples · tiers S×9 A×5 B×5
### `fred_dermot_bass` — 2
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_bass_8b` | S | 0.948 | 8 | 152 | 12.63s | `bass` | an acid bassline; a muddy boomy sound |
| 1 | `01_bass_2b` | S | 0.931 | 2 | 152 | 3.16s | `bass` | a sub bass; a fat thick sound |
### `fred_dermot_drums` — 7
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_drumbreaks_1b` | S | 0.953 | 1 | 152 | 1.58s | `drum breaks` | a drum break; a warm sound |
| 1 | `01_drumbreaks_8b` | S | 0.951 | 8 | 152 | 12.63s | `drum breaks` | a drum break; a warm sound |
| 2 | `02_alldrums_1b` | S | 0.926 | 1 | 152 | 1.58s | `all drums` | a drum break; a warm sound |
| 3 | `03_alldrums_4b` | S | 0.926 | 4 | 152 | 6.32s | `all drums` | a drum break; a warm sound |
| 4 | `04_alldrums_2b` | A | 0.893 | 2 | 152 | 3.16s | `all drums` | a drum break; a warm sound |
| 5 | `05_hihatsetc_4b` | A | 0.867 | 4 | 152 | 6.32s | `hihats etc` | a hi-hat; a metallic sound |
| 6 | `06_hihatsetc_1b` | A | 0.864 | 1 | 152 | 1.58s | `hihats etc` | hand percussion; a bright sparkling sound |
### `fred_dermot_hits` — 2
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_snare_chop` | S | 0.975 | — | 152 | 0.51s | `snare` | a drum break; a punchy tight sound |
| 1 | `01_kick_chop` | S | 0.900 | — | 152 | 0.40s | `kick` | a kick drum; a punchy tight sound |
### `fred_dermot_tonal` — 3
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_keys1_2b` | A | 0.837 | 2 | 152 | 3.16s | `keys1` | a synth pad; a lush rich sound |
| 1 | `01_guitar_1b` | B | 0.794 | 1 | 152 | 1.58s | `guitar` | hand percussion; a punchy tight sound |
| 2 | `02_guitar_4b` | B | 0.720 | 4 | 152 | 6.32s | `guitar` | an acid bassline; a lush rich sound |
### `fred_dermot_vox` — 5
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_lv_chop` | S | 0.992 | — | 152 | 0.50s | `lv` | an electric guitar; a dreamy washed-out sound |
| 1 | `01_choir_chop` | A | 0.852 | — | 152 | 0.45s | `choir` | an electric guitar; a dreamy washed-out sound |
| 2 | `02_bv_chop` | B | 0.738 | — | 152 | 1.80s | `bv` | a saxophone; a dreamy washed-out sound |
| 3 | `03_lv_8b` | B | 0.706 | 8 | 152 | 12.63s | `lv` | a solo singing voice; a lush rich sound |
| 4 | `04_lv_2b` | B | 0.700 | 2 | 152 | 3.16s | `lv` | a solo singing voice; a dusty lo-fi sound |
## IAMAPARTY
- stems: 10 (10 usable)
- grid: **105.5 bpm** from `all drums` · confidence 46% · no declared tempo to check against
- label vs measurement disagreements (measurement wins):
- `kick` claimed *hits*, measured **bass**
- `synth` claimed *tonal*, measured **drums**
- shipped 17 samples · tiers S×5 A×3 B×9
### `fred_iamaparty_bass` — 1
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_bass_2b` | B | 0.733 | 2 | 105 | 4.55s | `bass` | an acid bassline; a punchy tight sound |
### `fred_iamaparty_drums` — 4
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_alldrums_8b` | S | 0.948 | 8 | 105 | 18.20s | `all drums` | a drum break; a smooth clean sound |
| 1 | `01_alldrums_1b` | S | 0.947 | 1 | 105 | 2.28s | `all drums` | a drum break; a warm sound |
| 2 | `02_alldrums_4b` | S | 0.910 | 4 | 105 | 9.10s | `all drums` | a drum break; a warm sound |
| 3 | `03_hihatsetc_1b` | B | 0.707 | 1 | 105 | 2.28s | `hihats etc` | a drum break; an airy breathy sound |
### `fred_iamaparty_fx` — 4
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_fx_chop` | S | 0.965 | — | 105 | 0.56s | `fx` | a drum break; a harsh aggressive sound |
| 1 | `01_drones_1b` | A | 0.804 | 1 | 105 | 2.28s | `drones` | an electric guitar; a lush rich sound |
| 2 | `02_drones_2b` | B | 0.793 | 2 | 105 | 4.55s | `drones` | an electric guitar; a metallic sound |
| 3 | `03_drones_chop` | B | 0.784 | — | 105 | 0.30s | `drones` | an electric guitar; a metallic sound |
### `fred_iamaparty_hits` — 2
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_snare_chop` | A | 0.870 | — | 105 | 0.70s | `snare` | a snare drum; a punchy tight sound |
| 1 | `01_kick_chop` | B | 0.742 | — | 105 | 1.16s | `kick` | a kick drum; a punchy tight sound |
### `fred_iamaparty_tonal` — 3
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_synth_1b` | B | 0.739 | 1 | 105 | 2.28s | `synth` | a synth lead; a lush rich sound |
| 1 | `01_synth_4b` | B | 0.737 | 4 | 105 | 9.10s | `synth` | a synth lead; a lush rich sound |
| 2 | `02_synth_4b` | B | 0.719 | 4 | 105 | 9.10s | `synth` | a synth lead; a lush rich sound |
### `fred_iamaparty_vox` — 3
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_lv_chop` | S | 0.994 | — | 105 | 0.44s | `lv` | a spoken voice; a shadowy ténébreux sound |
| 1 | `01_bv_chop` | A | 0.804 | — | 105 | 0.30s | `bv` | an electric guitar; a woody organic sound |
| 2 | `02_lv_1b` | B | 0.728 | 1 | 105 | 2.28s | `lv` | a spoken voice; a dreamy washed-out sound |
## MAREA
- stems: 13 (12 usable, skipped near-silent: fx)
- grid: **123.0 bpm** from `perc` · confidence 57% · producer declared **123** (0.0% off)
- label vs measurement disagreements (measurement wins):
- `fx` claimed *fx*, measured **drums**
- `keys2` claimed *tonal*, measured **drums**
- `kick` claimed *hits*, measured **bass**
- `marea` claimed *tonal*, measured **drums**
- shipped 28 samples · tiers S×18 A×8 B×2
### `fred_marea_bass` — 1
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_bass_2b` | S | 0.996 | 2 | 123 | 3.90s | `bass` | a sub bass; a punchy tight sound |
### `fred_marea_drums` — 12
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_kit_1b` | S | 0.988 | 1 | 123 | 1.95s | `kit` | a drum break; a punchy tight sound |
| 1 | `01_kit_1b` | S | 0.989 | 1 | 123 | 1.95s | `kit` | a drum break; a punchy tight sound |
| 2 | `02_kit_1b` | S | 0.987 | 1 | 123 | 1.95s | `kit` | a drum break; a punchy tight sound |
| 3 | `03_perc_2b` | S | 0.965 | 2 | 123 | 3.90s | `perc` | a drum break; a muddy boomy sound |
| 4 | `04_marea_1b` | S | 0.962 | 1 | 123 | 1.95s | `marea` | a spoken voice; an airy breathy sound |
| 5 | `05_alldrums_4b` | S | 0.940 | 4 | 123 | 7.80s | `all drums` | a drum break; a dusty lo-fi sound |
| 6 | `06_alldrums_1b` | S | 1.000 | 1 | 123 | 1.95s | `all drums` | a drum break; a warm sound |
| 7 | `07_alldrums_1b` | S | 0.999 | 1 | 123 | 1.95s | `all drums` | a drum break; a dark sound |
| 8 | `08_perc_8b` | A | 0.896 | 8 | 123 | 15.60s | `perc` | a hi-hat; a dusty lo-fi sound |
| 9 | `09_perc_8b` | A | 0.896 | 8 | 123 | 15.60s | `perc` | a hi-hat; a dusty lo-fi sound |
| 10 | `10_marea_4b` | A | 0.874 | 4 | 123 | 7.80s | `marea` | a spoken voice; a dreamy washed-out sound |
| 11 | `11_marea_4b` | A | 0.829 | 4 | 123 | 7.80s | `marea` | a synth pad; a dreamy washed-out sound |
### `fred_marea_hits` — 2
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_kick_chop` | S | 0.996 | — | 123 | 0.49s | `kick` | a kick drum; a punchy tight sound |
| 1 | `01_clap_chop` | A | 0.866 | — | 123 | 0.50s | `clap` | hand percussion; a smooth clean sound |
### `fred_marea_tonal` — 5
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_keys1_2b` | S | 0.968 | 2 | 123 | 3.90s | `keys1` | a synth pad; a dreamy washed-out sound |
| 1 | `01_keys2_1b` | S | 0.977 | 1 | 123 | 1.95s | `keys2` | a synth lead; a dreamy washed-out sound |
| 2 | `02_keys2_2b` | S | 0.970 | 2 | 123 | 3.90s | `keys2` | a synth lead; a dreamy washed-out sound |
| 3 | `03_keys2_2b` | S | 0.969 | 2 | 123 | 3.90s | `keys2` | a solo singing voice; a dreamy washed-out sound |
| 4 | `04_keys1_2b` | A | 0.887 | 2 | 123 | 3.90s | `keys1` | a hammond organ; a dreamy washed-out sound |
### `fred_marea_vox` — 8
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_tonivox_chop` | S | 0.999 | — | 123 | 0.53s | `toni vox` | a saxophone; a metallic sound |
| 1 | `01_makeitthruvox_chop` | S | 0.994 | — | 123 | 0.50s | `make it thru vox` | a drum break; a punchy tight sound |
| 2 | `02_breaths_1b` | S | 0.939 | 1 | 123 | 1.95s | `breaths` | a hi-hat; an airy breathy sound |
| 3 | `03_makeitthruvox_2b` | S | 0.940 | 2 | 123 | 3.90s | `make it thru vox` | a solo singing voice; a dreamy washed-out sound |
| 4 | `04_makeitthruvox_1b` | A | 0.896 | 1 | 123 | 1.95s | `make it thru vox` | a sitar or eastern string instrument; a dreamy washed-out sound |
| 5 | `05_tonivox_2b` | A | 0.858 | 2 | 123 | 3.90s | `toni vox` | a solo singing voice; an airy breathy sound |
| 6 | `06_breaths_1b` | B | 0.751 | 1 | 123 | 1.95s | `breaths` | a saxophone; an airy breathy sound |
| 7 | `07_breaths_1b` | B | 0.745 | 1 | 123 | 1.95s | `breaths` | a spoken voice; an airy breathy sound |
## ME
- stems: 6 (6 usable)
- grid: **152.0 bpm** from `morph` · confidence 96% · no declared tempo to check against
- label vs measurement disagreements (measurement wins):
- `morph` claimed *fx*, measured **drums**
- shipped 8 samples · tiers S×6 B×2
### `fred_me_bass` — 1
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_bass_1b` | B | 0.757 | 1 | 152 | 1.58s | `bass` | a sub bass; a dark sound |
### `fred_me_fx` — 4
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_morph_chop` | S | 0.999 | — | 152 | 0.63s | `morph` | a saxophone; a punchy tight sound |
| 1 | `01_morph_4b` | S | 0.994 | 4 | 152 | 6.32s | `morph` | an acid bassline; a lush rich sound |
| 2 | `02_morph_2b` | S | 0.991 | 2 | 152 | 3.16s | `morph` | a saxophone; a lush rich sound |
| 3 | `03_textures_chop` | S | 0.944 | — | 152 | 0.48s | `textures` | hand percussion; a harsh aggressive sound |
### `fred_me_tonal` — 1
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_keys_1b` | B | 0.775 | 1 | 152 | 1.58s | `keys` | a grand piano; a dreamy washed-out sound |
### `fred_me_vox` — 2
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_lv_chop` | S | 0.996 | — | 152 | 0.64s | `lv` | a solo singing voice; a dusty lo-fi sound |
| 1 | `01_voxtextures_chop` | S | 0.995 | — | 152 | 0.36s | `vox textures` | a solo singing voice; an airy breathy sound |
## PLEASEMAKEITBETTER
- stems: 9 (9 usable)
- grid: **123.0 bpm** from `strings` · confidence 20% · **no usable pulse — chops only** · no declared tempo to check against
- label vs measurement disagreements (measurement wins):
- `kick` claimed *hits*, measured **bass**
- `strings` claimed *tonal*, measured **drums**
- `toms` claimed *hits*, measured **bass**
- shipped 4 samples · tiers S×4
### `fred_pleasemakeitbetter_hits` — 2
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_toms_chop` | S | 1.000 | — | 123 | 0.35s | `toms` | a kick drum; a punchy tight sound |
| 1 | `01_kick_chop` | S | 0.999 | — | 123 | 0.44s | `kick` | a kick drum; a punchy tight sound |
### `fred_pleasemakeitbetter_vox` — 2
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_lv_chop` | S | 0.997 | — | 123 | 0.42s | `lv` | hand percussion; a shadowy ténébreux sound |
| 1 | `01_bv_chop` | S | 0.989 | — | 123 | 0.46s | `bv` | hand percussion; an airy breathy sound |
## YASMINAH
- stems: 10 (10 usable)
- grid: **117.5 bpm** from `all drums` · confidence 91% · no declared tempo to check against
- label vs measurement disagreements (measurement wins):
- `bass` claimed *bass*, measured **drums**
- `kick` claimed *hits*, measured **bass**
- shipped 20 samples · tiers S×11 A×5 B×4
### `fred_yasminah_bass` — 2
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_bass_4b` | B | 0.738 | 4 | 117 | 8.17s | `bass` | an acid bassline; a fat thick sound |
| 1 | `01_bass_2b` | B | 0.738 | 2 | 117 | 4.09s | `bass` | an acid bassline; a fat thick sound |
### `fred_yasminah_drums` — 10
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_drumloop1_1b` | S | 1.000 | 1 | 117 | 2.04s | `drum loop 1` | a drum break; a dusty lo-fi sound |
| 1 | `01_drumloop1_2b` | S | 1.000 | 2 | 117 | 4.09s | `drum loop 1` | a drum break; a dusty lo-fi sound |
| 2 | `02_drumloop1_1b` | S | 1.000 | 1 | 117 | 2.04s | `drum loop 1` | a drum break; a dusty lo-fi sound |
| 3 | `03_alldrums_1b` | S | 0.999 | 1 | 117 | 2.04s | `all drums` | a drum break; a smooth clean sound |
| 4 | `04_alldrums_1b` | S | 0.993 | 1 | 117 | 2.04s | `all drums` | a drum break; a smooth clean sound |
| 5 | `05_lodrums_4b` | S | 0.949 | 4 | 117 | 8.17s | `lo drums` | a drum break; a woody organic sound |
| 6 | `06_hidrums_1b` | S | 0.911 | 1 | 117 | 2.04s | `hi drums` | a kick drum; a punchy tight sound |
| 7 | `07_hidrums_1b` | S | 0.909 | 1 | 117 | 2.04s | `hi drums` | a hi-hat; a punchy tight sound |
| 8 | `08_lodrums_8b` | S | 0.902 | 8 | 117 | 16.35s | `lo drums` | a snare drum; a woody organic sound |
| 9 | `09_lodrums_2b` | A | 0.893 | 2 | 117 | 4.09s | `lo drums` | a saxophone; a woody organic sound |
### `fred_yasminah_hits` — 1
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_kick_chop` | A | 0.900 | — | 117 | 0.51s | `kick` | a kick drum; a punchy tight sound |
### `fred_yasminah_tonal` — 1
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_keys_4b` | B | 0.711 | 4 | 117 | 8.17s | `keys` | a synth pad; a dreamy washed-out sound |
### `fred_yasminah_vox` — 6
| n | file | tier | grade | bars | bpm | dur | from | CLAP |
|--:|---|---|--:|--:|--:|--:|---|---|
| 0 | `00_lv_chop` | S | 0.971 | — | 117 | 0.55s | `lv` | a spoken voice; an airy breathy sound |
| 1 | `01_bv_2b` | S | 0.949 | 2 | 117 | 4.09s | `bv` | a solo singing voice; a dreamy washed-out sound |
| 2 | `02_bv_chop` | A | 0.871 | — | 117 | 0.38s | `bv` | a drum break; a dark sound |
| 3 | `03_bv_1b` | A | 0.845 | 1 | 117 | 2.04s | `bv` | a flute; a dreamy washed-out sound |
| 4 | `04_lv_1b` | A | 0.802 | 1 | 117 | 2.04s | `lv` | a spoken voice; an airy breathy sound |
| 5 | `05_lv_2b` | B | 0.708 | 2 | 117 | 4.09s | `lv` | a solo singing voice; a dusty lo-fi sound |
## Worth a second listen
CLAP's instrument tag contradicts the kit these landed in. Nothing is re-filed on this basis — CLAP is the one signal here that can separate a sung line from a keyboard, so it is used to say what to audition first, not to decide.
| kit | file | from stem | filed as | CLAP hears | conf |
|---|---|---|---|---|--:|
| `fred_angie_fx` | `01_fx_1b` | `fx` | fx | drums (hand percussion) | 0.28 |
| `fred_angieinterlude_bass` | `00_pad_2b` | `pad` | bass | tonal (a synth pad) | 0.60 |
| `fred_angieinterlude_fx` | `02_noise_4b` | `noise` | fx | bass (a sub bass) | 0.33 |
| `fred_angieinterlude_fx` | `03_noise_1b` | `noise` | fx | drums (hand percussion) | 0.22 |
| `fred_bighen_bass` | `01_bass_8b` | `bass` | bass | drums (a kick drum) | 0.53 |
| `fred_bighen_fx` | `00_fx_1b` | `fx` | fx | drums (hand percussion) | 0.89 |
| `fred_dermot_tonal` | `01_guitar_1b` | `guitar` | tonal | drums (hand percussion) | 0.19 |
| `fred_dermot_tonal` | `02_guitar_4b` | `guitar` | tonal | bass (an acid bassline) | 0.18 |
| `fred_iamaparty_fx` | `00_fx_chop` | `fx` | fx | drums (a drum break) | 0.59 |
| `fred_marea_drums` | `04_marea_1b` | `marea` | drums | vox (a spoken voice) | 0.53 |
| `fred_marea_drums` | `10_marea_4b` | `marea` | drums | vox (a spoken voice) | 0.69 |
| `fred_marea_drums` | `11_marea_4b` | `marea` | drums | tonal (a synth pad) | 0.22 |
| `fred_marea_vox` | `01_makeitthruvox_chop` | `make it thru vox` | vox | drums (a drum break) | 0.28 |
| `fred_marea_vox` | `02_breaths_1b` | `breaths` | vox | drums (a hi-hat) | 0.46 |
| `fred_me_fx` | `01_morph_4b` | `morph` | fx | bass (an acid bassline) | 0.32 |
| `fred_me_fx` | `03_textures_chop` | `textures` | fx | drums (hand percussion) | 0.28 |
| `fred_pleasemakeitbetter_vox` | `00_lv_chop` | `lv` | vox | drums (hand percussion) | 0.29 |
| `fred_pleasemakeitbetter_vox` | `01_bv_chop` | `bv` | vox | drums (hand percussion) | 0.33 |
| `fred_yasminah_drums` | `09_lodrums_2b` | `lo drums` | drums | tonal (a saxophone) | 0.38 |
| `fred_yasminah_vox` | `02_bv_chop` | `bv` | vox | drums (a drum break) | 0.33 |
-- fred kits — generated by engine.stempack; n indices are sort order
-- fred_angie_bass (3 samples, 133 bpm)
-- n 0 00_bass_8b S loopAt 8 bass · an acid bassline
-- n 1 01_bass_8b S loopAt 8 bass · an acid bassline
-- n 2 02_bass_2b S loopAt 2 bass · an acid bassline
-- d1 $ loopAt 8 $ chop 8 $ s "fred_angie_bass" # n 0
-- fred_angie_drums (3 samples, 133 bpm)
-- n 0 00_drumbreaks_2b S loopAt 2 drum breaks · a drum break
-- n 1 01_alldrums_1b S loopAt 1 all drums · a drum break
-- n 2 02_alldrums_2b A loopAt 2 all drums · a drum break
-- d1 $ loopAt 2 $ chop 8 $ s "fred_angie_drums" # n 0
-- fred_angie_fx (2 samples, 133 bpm)
-- n 0 00_fx_chop S one-shot 0.5 fx · a spoken voice
-- n 1 01_fx_1b A loopAt 1 fx · hand percussion
-- d1 $ s "fred_angie_fx*4" # n (irand 2)
-- fred_angie_hits (2 samples, 133 bpm)
-- n 0 00_kicks_chop S one-shot 0.4 kicks · a kick drum
-- n 1 01_snare_chop S one-shot 1.8 snare · a hi-hat
-- d1 $ s "fred_angie_hits*4" # n (irand 2)
-- fred_angie_tonal (5 samples, 133 bpm)
-- n 0 00_synth_8b S loopAt 8 synth · a synth pad
-- n 1 01_synth_2b B loopAt 2 synth · a synth pad
-- n 2 02_synth_2b B loopAt 2 synth · an electric guitar
-- n 3 03_padstuff_2b B loopAt 2 pad stuff · an electric guitar
-- n 4 04_padstuff_1b B loopAt 1 pad stuff · a synth lead
-- d1 $ loopAt 8 $ chop 8 $ s "fred_angie_tonal" # n 0
-- fred_angie_vox (7 samples, 133 bpm)
-- n 0 00_bv_chop S one-shot 0.6 bv · a spoken voice
-- n 1 01_lv_chop S one-shot 0.2 lv · a saxophone
-- n 2 02_lv_4b B loopAt 4 lv · a solo singing voice
-- n 3 03_lv_8b B loopAt 8 lv · a solo singing voice
-- n 4 04_lv_2b B loopAt 2 lv · a solo singing voice
-- n 5 05_bv_1b B loopAt 1 bv · a spoken voice
-- n 6 06_bv_1b B loopAt 1 bv · a solo singing voice
-- d1 $ s "fred_angie_vox*4" # n (irand 7)
-- fred_angieinterlude_bass (1 samples, 112 bpm)
-- n 0 00_pad_2b S loopAt 2 pad · a synth pad
-- d1 $ loopAt 2 $ chop 8 $ s "fred_angieinterlude_bass" # n 0
-- fred_angieinterlude_fx (4 samples, 112 bpm)
-- n 0 00_ipadtextures_chop S one-shot 0.3 ipad textures · a saxophone
-- n 1 01_drone_chop S one-shot 0.3 drone · a rhodes electric piano
-- n 2 02_noise_4b A loopAt 4 noise · a sub bass
-- n 3 03_noise_1b A loopAt 1 noise · hand percussion
-- d1 $ s "fred_angieinterlude_fx*4" # n (irand 4)
-- fred_angieinterlude_hits (1 samples, 112 bpm)
-- n 0 00_kick_chop S one-shot 0.5 kick · a kick drum
-- d1 $ s "fred_angieinterlude_hits*4" # n (irand 1)
-- fred_angieinterlude_vox (2 samples, 112 bpm)
-- n 0 00_voices_chop S one-shot 0.4 voices · a spoken voice
-- n 1 01_fvox_chop S one-shot 0.3 f vox · a spoken voice
-- d1 $ s "fred_angieinterlude_vox*4" # n (irand 2)
-- fred_bighen_bass (3 samples, 133 bpm)
-- n 0 00_bass_8b S loopAt 8 bass · a sub bass
-- n 1 01_bass_8b S loopAt 8 bass · a kick drum
-- n 2 02_bass_4b B loopAt 4 bass · a sub bass
-- d1 $ loopAt 8 $ chop 8 $ s "fred_bighen_bass" # n 0
-- fred_bighen_drums (9 samples, 133 bpm)
-- n 0 00_maindrumloop_2b S loopAt 2 main drum loop · a drum break
-- n 1 01_alldrums_2b S loopAt 2 all drums · a drum break
-- n 2 02_drumbreaks_1b S loopAt 1 drum breaks · a drum break
-- n 3 03_maindrumloop_1b B loopAt 1 main drum loop · a drum break
-- n 4 04_maindrumloop_8b B loopAt 8 main drum loop · a drum break
-- n 5 05_alldrums_4b B loopAt 4 all drums · a drum break
-- n 6 06_alldrums_8b B loopAt 8 all drums · a drum break
-- n 7 07_drumbreaks_4b B loopAt 4 drum breaks · a drum break
-- n 8 08_drumbreaks_8b B loopAt 8 drum breaks · a drum break
-- d1 $ loopAt 2 $ chop 8 $ s "fred_bighen_drums" # n 0
-- fred_bighen_fx (1 samples, 133 bpm)
-- n 0 00_fx_1b S loopAt 1 fx · hand percussion
-- d1 $ loopAt 1 $ chop 8 $ s "fred_bighen_fx" # n 0
-- fred_bighen_hits (1 samples, 133 bpm)
-- n 0 00_snare_chop A one-shot 0.3 snare · a hi-hat
-- d1 $ s "fred_bighen_hits*4" # n (irand 1)
-- fred_bighen_tonal (2 samples, 133 bpm)
-- n 0 00_strings_2b S loopAt 2 strings · an electric guitar
-- n 1 01_synth_2b S loopAt 2 synth · a rhodes electric piano
-- d1 $ loopAt 2 $ chop 8 $ s "fred_bighen_tonal" # n 0
-- fred_bighen_vox (8 samples, 133 bpm)
-- n 0 00_lv_chop S one-shot 0.3 lv · a solo singing voice
-- n 1 01_lv_4b S loopAt 4 lv · a solo singing voice
-- n 2 02_lv_1b S loopAt 1 lv · a solo singing voice
-- n 3 03_lv_2b S loopAt 2 lv · a synth lead
-- n 4 04_bv_2b S loopAt 2 bv · an electric guitar
-- n 5 05_bv_chop S one-shot 1.7 bv · an electric guitar
-- n 6 06_bv_1b A loopAt 1 bv · a spoken voice
-- n 7 07_bv_4b A loopAt 4 bv · a synth lead
-- d1 $ s "fred_bighen_vox*4" # n (irand 8)
-- fred_dermot_bass (2 samples, 152 bpm)
-- n 0 00_bass_8b S loopAt 8 bass · an acid bassline
-- n 1 01_bass_2b S loopAt 2 bass · a sub bass
-- d1 $ loopAt 8 $ chop 8 $ s "fred_dermot_bass" # n 0
-- fred_dermot_drums (7 samples, 152 bpm)
-- n 0 00_drumbreaks_1b S loopAt 1 drum breaks · a drum break
-- n 1 01_drumbreaks_8b S loopAt 8 drum breaks · a drum break
-- n 2 02_alldrums_1b S loopAt 1 all drums · a drum break
-- n 3 03_alldrums_4b S loopAt 4 all drums · a drum break
-- n 4 04_alldrums_2b A loopAt 2 all drums · a drum break
-- n 5 05_hihatsetc_4b A loopAt 4 hihats etc · a hi-hat
-- n 6 06_hihatsetc_1b A loopAt 1 hihats etc · hand percussion
-- d1 $ loopAt 1 $ chop 8 $ s "fred_dermot_drums" # n 0
-- fred_dermot_hits (2 samples, 152 bpm)
-- n 0 00_snare_chop S one-shot 0.5 snare · a drum break
-- n 1 01_kick_chop S one-shot 0.4 kick · a kick drum
-- d1 $ s "fred_dermot_hits*4" # n (irand 2)
-- fred_dermot_tonal (3 samples, 152 bpm)
-- n 0 00_keys1_2b A loopAt 2 keys1 · a synth pad
-- n 1 01_guitar_1b B loopAt 1 guitar · hand percussion
-- n 2 02_guitar_4b B loopAt 4 guitar · an acid bassline
-- d1 $ loopAt 2 $ chop 8 $ s "fred_dermot_tonal" # n 0
-- fred_dermot_vox (5 samples, 152 bpm)
-- n 0 00_lv_chop S one-shot 0.5 lv · an electric guitar
-- n 1 01_choir_chop A one-shot 0.4 choir · an electric guitar
-- n 2 02_bv_chop B one-shot 1.8 bv · a saxophone
-- n 3 03_lv_8b B loopAt 8 lv · a solo singing voice
-- n 4 04_lv_2b B loopAt 2 lv · a solo singing voice
-- d1 $ s "fred_dermot_vox*4" # n (irand 5)
-- fred_iamaparty_bass (1 samples, 105 bpm)
-- n 0 00_bass_2b B loopAt 2 bass · an acid bassline
-- d1 $ loopAt 2 $ chop 8 $ s "fred_iamaparty_bass" # n 0
-- fred_iamaparty_drums (4 samples, 105 bpm)
-- n 0 00_alldrums_8b S loopAt 8 all drums · a drum break
-- n 1 01_alldrums_1b S loopAt 1 all drums · a drum break
-- n 2 02_alldrums_4b S loopAt 4 all drums · a drum break
-- n 3 03_hihatsetc_1b B loopAt 1 hihats etc · a drum break
-- d1 $ loopAt 8 $ chop 8 $ s "fred_iamaparty_drums" # n 0
-- fred_iamaparty_fx (4 samples, 105 bpm)
-- n 0 00_fx_chop S one-shot 0.5 fx · a drum break
-- n 1 01_drones_1b A loopAt 1 drones · an electric guitar
-- n 2 02_drones_2b B loopAt 2 drones · an electric guitar
-- n 3 03_drones_chop B one-shot 0.3 drones · an electric guitar
-- d1 $ s "fred_iamaparty_fx*4" # n (irand 4)
-- fred_iamaparty_hits (2 samples, 105 bpm)
-- n 0 00_snare_chop A one-shot 0.7 snare · a snare drum
-- n 1 01_kick_chop B one-shot 1.1 kick · a kick drum
-- d1 $ s "fred_iamaparty_hits*4" # n (irand 2)
-- fred_iamaparty_tonal (3 samples, 105 bpm)
-- n 0 00_synth_1b B loopAt 1 synth · a synth lead
-- n 1 01_synth_4b B loopAt 4 synth · a synth lead
-- n 2 02_synth_4b B loopAt 4 synth · a synth lead
-- d1 $ loopAt 1 $ chop 8 $ s "fred_iamaparty_tonal" # n 0
-- fred_iamaparty_vox (3 samples, 105 bpm)
-- n 0 00_lv_chop S one-shot 0.4 lv · a spoken voice
-- n 1 01_bv_chop A one-shot 0.3 bv · an electric guitar
-- n 2 02_lv_1b B loopAt 1 lv · a spoken voice
-- d1 $ s "fred_iamaparty_vox*4" # n (irand 3)
-- fred_marea_bass (1 samples, 123 bpm)
-- n 0 00_bass_2b S loopAt 2 bass · a sub bass
-- d1 $ loopAt 2 $ chop 8 $ s "fred_marea_bass" # n 0
-- fred_marea_drums (12 samples, 123 bpm)
-- n 0 00_kit_1b S loopAt 1 kit · a drum break
-- n 1 01_kit_1b S loopAt 1 kit · a drum break
-- n 2 02_kit_1b S loopAt 1 kit · a drum break
-- n 3 03_perc_2b S loopAt 2 perc · a drum break
-- n 4 04_marea_1b S loopAt 1 marea · a spoken voice
-- n 5 05_alldrums_4b S loopAt 4 all drums · a drum break
-- n 6 06_alldrums_1b S loopAt 1 all drums · a drum break
-- n 7 07_alldrums_1b S loopAt 1 all drums · a drum break
-- n 8 08_perc_8b A loopAt 8 perc · a hi-hat
-- n 9 09_perc_8b A loopAt 8 perc · a hi-hat
-- n 10 10_marea_4b A loopAt 4 marea · a spoken voice
-- n 11 11_marea_4b A loopAt 4 marea · a synth pad
-- d1 $ loopAt 1 $ chop 8 $ s "fred_marea_drums" # n 0
-- fred_marea_hits (2 samples, 123 bpm)
-- n 0 00_kick_chop S one-shot 0.4 kick · a kick drum
-- n 1 01_clap_chop A one-shot 0.5 clap · hand percussion
-- d1 $ s "fred_marea_hits*4" # n (irand 2)
-- fred_marea_tonal (5 samples, 123 bpm)
-- n 0 00_keys1_2b S loopAt 2 keys1 · a synth pad
-- n 1 01_keys2_1b S loopAt 1 keys2 · a synth lead
-- n 2 02_keys2_2b S loopAt 2 keys2 · a synth lead
-- n 3 03_keys2_2b S loopAt 2 keys2 · a solo singing voice
-- n 4 04_keys1_2b A loopAt 2 keys1 · a hammond organ
-- d1 $ loopAt 2 $ chop 8 $ s "fred_marea_tonal" # n 0
-- fred_marea_vox (8 samples, 123 bpm)
-- n 0 00_tonivox_chop S one-shot 0.5 toni vox · a saxophone
-- n 1 01_makeitthruvox_chop S one-shot 0.5 make it thru vox · a drum break
-- n 2 02_breaths_1b S loopAt 1 breaths · a hi-hat
-- n 3 03_makeitthruvox_2b S loopAt 2 make it thru vox · a solo singing voice
-- n 4 04_makeitthruvox_1b A loopAt 1 make it thru vox · a sitar or eastern string instrument
-- n 5 05_tonivox_2b A loopAt 2 toni vox · a solo singing voice
-- n 6 06_breaths_1b B loopAt 1 breaths · a saxophone
-- n 7 07_breaths_1b B loopAt 1 breaths · a spoken voice
-- d1 $ s "fred_marea_vox*4" # n (irand 8)
-- fred_me_bass (1 samples, 152 bpm)
-- n 0 00_bass_1b B loopAt 1 bass · a sub bass
-- d1 $ loopAt 1 $ chop 8 $ s "fred_me_bass" # n 0
-- fred_me_fx (4 samples, 152 bpm)
-- n 0 00_morph_chop S one-shot 0.6 morph · a saxophone
-- n 1 01_morph_4b S loopAt 4 morph · an acid bassline
-- n 2 02_morph_2b S loopAt 2 morph · a saxophone
-- n 3 03_textures_chop S one-shot 0.4 textures · hand percussion
-- d1 $ s "fred_me_fx*4" # n (irand 4)
-- fred_me_tonal (1 samples, 152 bpm)
-- n 0 00_keys_1b B loopAt 1 keys · a grand piano
-- d1 $ loopAt 1 $ chop 8 $ s "fred_me_tonal" # n 0
-- fred_me_vox (2 samples, 152 bpm)
-- n 0 00_lv_chop S one-shot 0.6 lv · a solo singing voice
-- n 1 01_voxtextures_chop S one-shot 0.3 vox textures · a solo singing voice
-- d1 $ s "fred_me_vox*4" # n (irand 2)
-- fred_pleasemakeitbetter_hits (2 samples, 123 bpm)
-- n 0 00_toms_chop S one-shot 0.3 toms · a kick drum
-- n 1 01_kick_chop S one-shot 0.4 kick · a kick drum
-- d1 $ s "fred_pleasemakeitbetter_hits*4" # n (irand 2)
-- fred_pleasemakeitbetter_vox (2 samples, 123 bpm)
-- n 0 00_lv_chop S one-shot 0.4 lv · hand percussion
-- n 1 01_bv_chop S one-shot 0.4 bv · hand percussion
-- d1 $ s "fred_pleasemakeitbetter_vox*4" # n (irand 2)
-- fred_yasminah_bass (2 samples, 117 bpm)
-- n 0 00_bass_4b B loopAt 4 bass · an acid bassline
-- n 1 01_bass_2b B loopAt 2 bass · an acid bassline
-- d1 $ loopAt 4 $ chop 8 $ s "fred_yasminah_bass" # n 0
-- fred_yasminah_drums (10 samples, 117 bpm)
-- n 0 00_drumloop1_1b S loopAt 1 drum loop 1 · a drum break
-- n 1 01_drumloop1_2b S loopAt 2 drum loop 1 · a drum break
-- n 2 02_drumloop1_1b S loopAt 1 drum loop 1 · a drum break
-- n 3 03_alldrums_1b S loopAt 1 all drums · a drum break
-- n 4 04_alldrums_1b S loopAt 1 all drums · a drum break
-- n 5 05_lodrums_4b S loopAt 4 lo drums · a drum break
-- n 6 06_hidrums_1b S loopAt 1 hi drums · a kick drum
-- n 7 07_hidrums_1b S loopAt 1 hi drums · a hi-hat
-- n 8 08_lodrums_8b S loopAt 8 lo drums · a snare drum
-- n 9 09_lodrums_2b A loopAt 2 lo drums · a saxophone
-- d1 $ loopAt 1 $ chop 8 $ s "fred_yasminah_drums" # n 0
-- fred_yasminah_hits (1 samples, 117 bpm)
-- n 0 00_kick_chop A one-shot 0.5 kick · a kick drum
-- d1 $ s "fred_yasminah_hits*4" # n (irand 1)
-- fred_yasminah_tonal (1 samples, 117 bpm)
-- n 0 00_keys_4b B loopAt 4 keys · a synth pad
-- d1 $ loopAt 4 $ chop 8 $ s "fred_yasminah_tonal" # n 0
-- fred_yasminah_vox (6 samples, 117 bpm)
-- n 0 00_lv_chop S one-shot 0.5 lv · a spoken voice
-- n 1 01_bv_2b S loopAt 2 bv · a solo singing voice
-- n 2 02_bv_chop A one-shot 0.3 bv · a drum break
-- n 3 03_bv_1b A loopAt 1 bv · a flute
-- n 4 04_lv_1b A loopAt 1 lv · a spoken voice
-- n 5 05_lv_2b B loopAt 2 lv · a solo singing voice
-- d1 $ s "fred_yasminah_vox*4" # n (irand 6)
# kit check — 150 samples, 144 clean, 6 flagged
## `fred_angie_tonal`
-`03_padstuff_2b` — weak bar periodicity (0.00 < 0.05 for tonal) — bar-aligned but not a repeating unit
## `fred_angieinterlude_bass`
-`00_pad_2b` — weak bar periodicity (0.03 < 0.05 for bass) — bar-aligned but not a repeating unit
## `fred_bighen_tonal`
-`01_synth_2b` — weak bar periodicity (0.02 < 0.05 for tonal) — bar-aligned but not a repeating unit
## `fred_marea_drums`
-`10_marea_4b` — weak bar periodicity (0.12 < 0.30 for drums) — bar-aligned but not a repeating unit
-`11_marea_4b` — weak bar periodicity (0.08 < 0.30 for drums) — bar-aligned but not a repeating unit
## `fred_yasminah_tonal`
-`00_keys_4b` — weak bar periodicity (0.02 < 0.05 for tonal) — bar-aligned but not a repeating unit
**Distinct sounds:** 150 of 150 (0 near-duplicates)
\ No newline at end of file
......@@ -394,3 +394,35 @@ def test_children_are_started_at_idle_priority():
nice, policy = out.stdout.split()
assert int(nice) == 19, f"child ran at nice {nice}"
assert int(policy) == os.SCHED_IDLE, f"child policy {policy}, wanted SCHED_IDLE"
# ── the gate blocks on defects, not on properties ────────────────────────────
def _gate_flags(cut, flags, family=None):
"""Run kitgate's blocking-flag rule against a fabricated grade result."""
g = type("G", (), {"flags": flags, "metrics": {}})()
return _kitgate()._blocking_flags({**cut, "family": family or cut.get("family")}, g)
def test_a_quiet_or_wide_sample_does_not_block_the_pack(tmp_path):
"""The first version of this gate blocked all 150 samples on 20 `near-silent` and 17
`mono-incompatible` files, none of which was broken. A kit is gain-staged as a unit
and never boosted, so its quiet members are quiet ON PURPOSE, and low interchannel
correlation in a vox double is the width someone paid for. Blocking on a property is
not the safe direction — it is a gate nobody can pass and will learn to ignore."""
c = _cut("/x/00_bv_1b.wav", family="vox")
assert _gate_flags(c, ["near-silent"]) == []
assert _gate_flags(c, ["mono-incompatible"]) == []
assert _gate_flags(c, ["seam-click"]) == []
def test_clipping_and_emptiness_do_block(tmp_path):
c = _cut("/x/00_kit_4b.wav")
assert _gate_flags(c, ["clipping"]) == ["clipping"]
assert _gate_flags(c, ["empty"]) == ["empty"]
def test_mono_collapse_blocks_on_bass_only():
"""Summed to mono on a house PA a wide bass loses its fundamental, which nobody
chose. The same measurement on a pad is the sound of the pad."""
assert _gate_flags(_cut("/x/00_bass_2b.wav"), ["mono-incompatible"], family="bass")
assert _gate_flags(_cut("/x/00_pad_2b.wav"), ["mono-incompatible"], family="tonal") == []
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment