real recordings · sliced, measured, shaped · no generated audio
real recordingsno generated audioCC0 / CC BY
I was looking for a really good pistol shot for a game I'm working on, and ended up building a small workshop around it. It hunts through real, openly licensed gunshot recordings, slices them into single shots, measures each one, scores how well it suits a snappy, punchy game pistol, and then shapes the best ones to be crisp and crunchy. Everything is classic signal processing. Nothing here is generated by an audio-generating model.
Turn your volume down a little: these are gunshots, and some of them are sharp.
Eight different shots, level-matched, rotating like a game would: crisp, crunchy and "arc" (crisp with a pitched-down sci-fi sweetener) from eight different real guns. Hit fire and hold Space, or tap rapidly.
Every single shot sliced out of the recordings, ranked by suitability. Click a row to hear the raw shot against its crisp, crunchy and arc versions, and to see exactly why it scored what it did.
| Score | Gun | Mic | Crisp | Crunch | Attack | Tail | Room |
|---|
Pick a shot on the left.
A live version of the idea. These sliders run a quick processing chain on whichever shot is selected so you can hear what each ingredient does. (The files you download were made by the careful offline chain, which also tames the tail and shapes the attack; this is a sketch for your ears.)
The score is a plain checklist, not a mystery. You can read it, disagree with it and change it.
Crisp is a clear, bright, quick transient: it speaks instantly, has a strong 2 to 6 kHz "crack", and doesn't smear. Crunchy is texture: dense, gritty harmonics in the 1 to 8 kHz range, the thing saturation adds, so the shot has teeth and not just a click. The numbers on this page are proxies for what you hear: crisp comes from brightness, attack and tail; crunch comes from how squashed the peak is (crest factor, kurtosis) and how dense the spectrum is.
If there's a pistol sound you want to get close to, record a short clip of it for your own reference and run python tools/match_reference.py yourclip.wav. It measures your clip the same way and lists which shots here are nearest. Nothing is uploaded and your clip is never copied into the pack. My target profile (a punchy, bright, dry, short pistol) is an approximation; a real reference replaces my guess with your ear.
All the raw audio is from real recordings by other people, shared openly. Thank you to them.
The "Gunshot Sounds" pack on OpenGameArt is labelled CC0 on its page, but the text bundled inside the download says Creative Commons Attribution 3.0 (Vincent Sevedge, 2009). To be safe, any shot from it (the CZ-52) is credited under CC BY 3.0 here. None of its shots were good enough to make the pack picks anyway.
Contains the 8 round-robin shots, every crisp / crunch / arc variant of the 14 pack picks (48 kHz, 16-bit mono WAV), the raw slices, LICENSES.txt and the tools to reproduce it. The tools need Python with numpy, scipy and soundfile.