What this SFZ auditor checks
SFZ instruments are plain text, but a single wrong letter in a sample path silently mutes a key range. This auditor tokenizes the instrument the way common players do—headers, opcode=value pairs whose values may contain spaces, // and block comments, #define variables and textual #include files—then applies <global> → <master> → <group> → <region> inheritance and the active <control> default_path, note_offset and octave_offset. Every region gets an effective sample, key range, pitch center, velocity range, trigger and condition set with file and line provenance.
Missing, miscased and moved samples
Sample paths resolve relative to the top-level .sfz file, even inside included files. With a selected folder, each reference is classified as found, case mismatch (loads on Windows and default macOS volumes, fails on Linux), moved (only a same-name file elsewhere matches), ambiguous, or missing. Absolute paths such as C:\Samples\… or /Users/… are flagged as nonportable, paths that climb above the instrument folder are warned about because archives omit them, and unreferenced audio in the folder is listed so you can prune or restore it.
Reading the key / velocity map
Note names follow the SFZ convention where c4 is MIDI 60. Gaps are reported per keyswitch context between the lowest and highest mapped key, so an intentionally unmapped region outside the instrument’s range is not noise. Overlaps consider trigger class, sw_last/sw_down/sw_previous, seq_position, lorand/hirand and locc/hicc ranges, and a round-robin check reports missing seq_position steps that would play silence.
Validation boundary
This is a read-only preflight, not an SFZ player. Players differ in supported opcodes, default values, file formats and edge-case parsing. The auditor does not play audio, decode sample data, evaluate crossfade curves, amplitude envelopes, filters, polyphony groups, CC-triggered (on_locc) regions or scripts, and it applies only documented common behavior for the listed constructs. Header reads describe containers; they do not prove a file decodes cleanly. Test the instrument in each target player—such as sfizz, ARIA/Sforzando or your DAW sampler—after fixing findings.
Frequently asked questions
Why does an SFZ sample load on Windows but not on Linux?
Windows and default macOS volumes ignore letter case, so sample=Piano.wav finds piano.wav. Linux and case-sensitive volumes do not. The auditor marks these as case mismatches, and the rewrite uses the exact case of the selected file.
Are overlapping SFZ regions always a mistake?
No. Layers, round robins and crossfades overlap on purpose. The auditor separates identical duplicates and one-key or one-velocity boundary overlaps—usually accidental—from broader layers that need human review.
Does the auditor upload my samples?
No. Text, file names and audio headers are read in your browser. Only small header and trailing-chunk slices of located samples are read to report format, rate, bit depth, channels, length and WAV loop points.
Why are my samples “unchecked”?
No folder or files were selected. A web page cannot search your disk on its own; choose the instrument folder so paths can be compared.
Authoritative references
The community SFZ format documentation describes headers, opcodes, sample path rules, default_path and the header hierarchy, including #include and #define. The open-source sfizz player documents its implementation status for individual opcodes.
Browse music-production tools · Audit BWF/RF64 delivery files