# Craft Strike audio credits

## Original material Foley

`client/src/surface-audio.js` synthesizes three variations of sand, earth, wood, stone, metal and glass footsteps, mining, breaks, placements and impacts. `audio.js` synthesizes the short distant-gunshot reverberation impulse. These new sounds are original procedural synthesis released under CC0 1.0; no third-party samples are used. Remote steps retain HRTF and remain audible through cover, with reduced gain/filtering. Walking and crouching reduce volume. Historical clip credits below remain applicable to the shipped recordings.

Edited recorded firearm reports replace the earlier synthetic rifle sounds. These are independent game effects, not Valve's Counter-Strike recordings. Three takes per weapon avoid consecutive identical shots. Reload length matches the server (AK 2.45 s, M4 3.05 s, sniper 2.5 s, Glock 2.3 s, other pistols 2.2 s).

Rebuild: `node scripts/build-combat-audio.mjs` with FFmpeg/FFprobe on PATH. Source hashes are written to `artifacts/audio-sources/manifest.json`.

| Sound | Recording / source | License |
|---|---|---|
| `ts-rifle-a-v*.wav` | AK-47 C_28P, The Free Firearm Sound Library | CC0 1.0 |
| `ts-rifle-b-v*.wav`, `ts-pistol-v*.wav` | AR-15 D_24P from the same library; pistol reports are shortened/EQ edits | CC0 1.0 |
| `ts-sniper-v*.wav` | B_16P rifle report from the same library, EQ edit | CC0 1.0 |
| `ts-reload-*.wav`, `ts-bolt.wav` | SpringySpringo's Gun reload sounds, time stretched | CC0 1.0 |
| `ts-dry-fire.wav` | rubberduck, 100 CC0 Metal and Wood SFX / misc_17 | CC0 1.0 |
| `ts-ricochet.wav` | cedarstudios, Bullet impacts / Freesound 148827 | CC0 1.0 |

The firearm library was recorded by Ben Jaszczak, Brian Nelson, Kevin Heras and Matthew Nanney. We use the prepared cuts distributed by Jarno van der Kolk in OpenSpades Free Assets, pinned to `1e6b28721a2e5e51f84a572d101079bf186c66d5`.

Sources and notices:
- https://opengameart.org/content/the-free-firearm-sound-library
- https://opengameart.org/content/gun-reload-sounds
- https://opengameart.org/content/100-cc0-metal-and-wood-sfx
- https://freesound.org/people/cedarstudios/sounds/148827/
- https://github.com/DeathByDenim/openspades-free-pak/blob/1e6b28721a2e5e51f84a572d101079bf186c66d5/License/Credits-pak001-Free.md
- https://creativecommons.org/publicdomain/zero/1.0/

Unused legacy synthetic footstep/body clips and the remaining generic impact cues come from `scripts/gen-sounds.mjs`; current tactical and objective recordings are identified below. Older numbered Freesound clips retain the notices in the site's Credits page. Zimbot's explosion (209984) is CC BY 4.0. No new voice imitation or Counter-Strike voice samples were added.

## Tactical audio v13

Rebuild the 12 new recordings with `node scripts/build-tactical-audio.mjs`. It uses the same pinned OpenSpades Free Assets revision above. Sources and SHA-256 hashes are saved to `artifacts/audio-sources/tactical/manifest.json`. Changes are trimming, mono conversion, EQ, gain, resampling and short fades. Source credits retain their original licenses.

| Files | Original source / credit | License |
|---|---|---|
| `ts-step-v1..4.wav` | [Running on ground](https://freesound.org/people/Disagree/sounds/433725/) by Disagree, OpenSpades Run1..4 cuts | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) |
| `ts-flesh-v1..2.wav` | [522091](https://freesound.org/people/magnuswaker/sounds/522091/) by magnuswaker | CC0 |
| `ts-flesh-v3.wav` | [144015](https://freesound.org/people/satanicupsman/sounds/144015/) by satanicupsman | CC0 |
| `ts-land.wav` | [Jump landing sound](https://opengameart.org/content/jump-landing-sound) by MentalSanityOff | CC0 |
| `ts-draw.wav` | [Equipment clicks III](https://opengameart.org/content/equipment-clicks-iii) by LFA | CC0 |
| `ts-knife-swing.wav` | [Swish bamboo stick](https://opengameart.org/content/swish-bamboo-stick-weapon-swhoshes) by Iwan Gabovitch | CC0 |
| `ts-headshot.wav`, `ts-armor.wav` | [33 metal clang sounds](https://opengameart.org/content/33-metal-clang-sounds-cast-iron-pans) by bart; OpenSpades Spade/HitPlayer cut | CC0 |

Local weapon cues use centered audio; other-player cues use HRTF panning. Solid map cover applies lower gain and a 1.8 kHz low-pass at sound start; clear distant cues lose high frequencies progressively. Running footsteps have four non-repeating takes per player and an 18 m hearing bound, with quieter own footsteps. Walking and crouching remain silent under existing server rules. This is a simple audio approximation and does not alter sight or hit tests. Armor SFX uses the protection recorded at hit time, including a hit that destroys armor; unprotected legs use flesh impact.

## Handling and objective audio v15

Rebuild with `node scripts/build-objective-audio.mjs`. Pinned source hashes and notices are in `artifacts/audio-sources/objectives/manifest.json`. Grenade pin by [OwlishMedia](https://opengameart.org/content/87-clickety-clips), grenade throw by [artisticdude](https://opengameart.org/content/rpg-sound-pack), scope/bounce/defuse/arming edits by [LFA](https://opengameart.org/content/equipment-clicks-iii), and body-fall edit by [MentalSanityOff](https://opengameart.org/content/jump-landing-sound): all CC0 1.0. These are trimmed, resampled to mono, EQ/gain adjusted and faded. Four electronic bomb cues are original tapered sine-pulse synthesis, released under CC0 1.0. The AWP bolt recording is now scheduled 400 ms after a watched shot and cancels on weapon/spectator change, reload or death. Grenades no longer emit dry-fire clicks while in flight.

Reload duration references: ReGameDLL_CS `weapons.h` at revision `4a50c42e85fd3778c2b7d24731c7d30c83bbab01`. This aligns the stated timings; it does not claim the entire game duplicates GoldSrc behavior.

## Grenade effects v16

Rebuild with `node scripts/build-grenade-audio.mjs`. The source hashes and editing notice are in `artifacts/audio-sources/grenades/manifest.json`. Two short HE explosions and flash pop are edits of [2 High Quality Explosions](https://opengameart.org/content/2-high-quality-explosions) by Michel Baradari under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/), using the same pinned OpenSpades Free Assets revision above. Changes: trim, EQ, mono conversion, normalization/gain, limiting and a short fade. Three grenade bounce variants are edits of LFA equipment clicks under CC0. The quiet, tapered flash ring is original 2400 Hz sine synthesis under CC0. These effects do not use Valve recordings.

## Original heavy AWP layer

`client/src/awp-report.js` synthesizes a pressure crack, descending bass blast and diffuse noise tail from oscillators and seeded noise, released under CC0 1.0. It is mixed lazily with the three credited sniper recordings, with output peaks bounded to 0.92 before the existing volume and distance mixer. No third-party sound was added. Scout and Nova do not use this extra layer.

## Pistol identity v17

Nine new clips give Glock, USP and P250 separate reports instead of the previous rifle-derived pistol stem. They use the CC0 Free Firearm Sound Library by Ben Jaszczak, Brian Nelson, Kevin Heras and Matthew Nanney: Walther PPQ X_31P/X_39P (Glock proxy), 1911 A_34P/A_42P (USP proxy), Bersa F_41P/F_47P (P250 proxy). These are edited proxy recordings, not recordings of the named game guns or Valve effects. Changes: trim silence/tail, preserve the source sample rate before subtle pitch variants, EQ, mono conversion, resampling, gain/limiting and a short fade. Clips last 0.32/0.42/0.36 seconds respectively. Three variants per pistol do not repeat consecutively, and remote reports retain gunshot distance/cover mixing.

Source: https://opengameart.org/content/the-free-firearm-sound-library and its Prepared SFX Library.7z attachment (SHA-256 cc1ab5a99a0a365105c7c5dd783f4b0b1fe90938114d3ceec53856bfe005f7d6). Rebuild: install py7zr from PyPI, run `python scripts/fetch-pistol-audio.py`, then `node scripts/build-pistol-audio.mjs` with FFmpeg on PATH. Per-recording/output hashes and proxy notices are in `artifacts/audio-sources/pistols/manifest.json`.
