# Forest ambience sound sources

These assets use field recordings released under
[CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/) (public domain).
Each primary source page's CC0 link was checked when its public high-quality
MP3 preview was downloaded on September 30, 2026. The previews, rather than
the original uploads, are the source audio used here.

| File | Recording | Author | Source excerpt | Public HQ preview |
| --- | --- | --- | --- | --- |
| `bird-1.ogg` | [Robin singing](https://freesound.org/people/freemaster2/sounds/704646/) | freemaster2 | 8.1–10.9 s | [704646_334103-hq.mp3](https://cdn.freesound.org/previews/704/704646_334103-hq.mp3) |
| `bird-2.ogg` | [Black Capped Chickadee bird call](https://freesound.org/people/nfrae/sounds/703254/) | nfrae | 0.0–1.4 s | [703254_1540717-hq.mp3](https://cdn.freesound.org/previews/703/703254_1540717-hq.mp3) |
| `bird-3.ogg` | [Wren singing](https://freesound.org/people/freemaster2/sounds/849624/) | freemaster2 | 2.3–5.3 s | [849624_334103-hq.mp3](https://cdn.freesound.org/previews/849/849624_334103-hq.mp3) |
| `insects.ogg` | [cricket](https://freesound.org/people/FunkApache/sounds/393389/) | FunkApache | 8.0–26.0 s | [393389_3261030-hq.mp3](https://cdn.freesound.org/previews/393/393389_3261030-hq.mp3) |
| `leaves.ogg` | [Leafs in wind](https://freesound.org/people/Sadiquecat/sounds/827366/) | Sadiquecat | 0.2–15.2 s | [827366_5287430-hq.mp3](https://cdn.freesound.org/previews/827/827366_5287430-hq.mp3) |

[`scripts/build-forest-audio.py`](../../../scripts/build-forest-audio.py)
holds the complete processing recipe. Each source is downmixed to mono and
resampled to 32 kHz. A fourth-order spectral high-pass removes low rumble:
1,600 Hz for the robin, 1,100 Hz for the chickadee, 1,400 Hz for the wren,
1,300 Hz for the cricket, and 90 Hz for the leaves. Bird phrases have 40 ms
cosine fades on their edges; the short chickadee call is padded with 300 ms
of silence on each side. The robin and wren cuts retain separate complete
phrases with quiet space at their boundaries.

The cricket excerpt overlaps its final 2 seconds with its first 2 seconds
using complementary cosine weights, making a 16-second loop. The leaves
excerpt uses a 1-second overlap, making a 14-second loop. Filtering these
loops in the frequency domain preserves periodicity. Their phase is
rotated to place a quiet adjacent sample pair at the codec boundary.

All files are peak-normalised to -6 dBFS and encoded as Ogg Vorbis at FFmpeg
quality 3. Each encoded file is decoded and checked for its expected mono
format, sample rate, duration and peak. Encoder input is reduced if needed
to keep the lossy decode at or below -6 dBFS. The total encoded audio is
304,897 bytes.

| File | Duration | Decoded RMS | Decoded peak |
| --- | ---: | ---: | ---: |
| `bird-1.ogg` | 2.8 s | -24.27 dBFS | -6.05 dBFS |
| `bird-2.ogg` | 2.0 s | -26.39 dBFS | -6.65 dBFS |
| `bird-3.ogg` | 3.0 s | -24.64 dBFS | -6.86 dBFS |
| `insects.ogg` | 16.0 s | -19.36 dBFS | -6.10 dBFS |
| `leaves.ogg` | 14.0 s | -26.44 dBFS | -6.77 dBFS |

At runtime `src/cricket-chorus.ts` splits `insects.ogg` into its separate
chirps by their envelope and re-sequences them for several individual
crickets, so a replacement cricket recording must stay a clean, close
recording with silence between chirps. Two detuned copies of the whole loop
form the distant chorus, and two copies of `leaves.ogg` at unrelated speeds
keep the foliage from repeating audibly.

The bird sources contain ordinary woodland songbirds, the cricket source
is a close field recording without a background soundscape, and the leaves
source records wind rattling leaves under a tree in France. No music or
generated sound is mixed into these assets.
