Four rounds of synthesis — and the recording won
· sound · game
Pipfold makes exactly two noises: a flap striking wood, a die landing. Both came from the shared mana toolkit until this point and sounded like a menu tone — right for a menu, wrong for an object made of wood.
So: build them. For four rounds.
Round 1: four tuned sines sound like an instrument
Twelve candidates, all built the same way: a sum of sines plus a noise burst. Of the twelve, the two that survived listening were exactly the ones with the highest noise content.
That is not chance, that is the finding. A stack of tuned sines sounds like an instrument, not like a thing. You pick out the individual tones, and the moment you do, it stops being wood.
Round 2: four things a real impact has
The construction was replaced. Instead of stacking tones, what actually happens when two bodies collide was rebuilt:
- A contact pulse instead of a noise burst. Two bodies do not touch in zero time — the force rises and falls over 0.3 to 1.5 ms. That shape (a raised cosine) determines the timbre of the strike. It rolls off gently above 1/T instead of hissing like white noise.
- Thirty to forty modes instead of four. A wooden plate has densely spaced, inharmonic eigenmodes. You pick four out individually; forty merge into material.
- Damping from the loss factor. Wood has η ≈ 0.01–0.02, so Q = 1/η and τ = Q/(π·f). High modes therefore die by themselves faster — which is precisely what separates “wood” from “bell”. Hand-tuned decay times never land on that.
- A room. That was the biggest giveaway: every sound from round 1 stood in a vacuum. Seven early reflections between 4 and 22 ms plus a short, dark tail. Very quiet — but without them everything sounds “computed”.
Depending on the candidate, add a body as a second, lower mode bank (the hollow box under the flap, the tray under the die), rattle chains with geometrically narrowing intervals — that is how a tile really clatters — and friction as grainy noise with a jagged envelope.
Round 3 layered the dice sounds and put a low layer underneath. Round 4 straightened the levels.
That is honest work, and it does sound considerably better than round 1.
And then this
In parallel, a stack of CC0 recordings lay next to it for comparison — a real die on a real table, a real flap. Listening settled it in two minutes. Till’s verdict: “real 2 for the die and real 5 for the flap are the best.”
Hear for yourself. On the left the best of four rounds of synthesis, on the right what shipped:
click83.wav), OpenGameArt, CC0. This is what runs in the game today.With that, Pipfold has external game assets for the first time.
HERKUNFT.md lists both with source and licence, and echt_holen.py verifies
CC0 on the page and aborts otherwise — a platform’s search filter is
metadata and does not count as evidence.
Two things still had to be done to the recordings
- The flap recording had 17.7 ms of lead-in. In the game that is an audible delay between the moment the flap lands and the sound. Trimmed, content unchanged.
- The dice recording still sat at −34 dBFS at the end and needed a longer fade.
Both were pulled to the same energy as the synthetic ones had been, so the
levels in klang.gd (−17 / −15 dB) still hold.
And a trap that has nothing to do with sound design: Godot imports WAV
lossily by default (compress/mode=2, QOA). audio/*.wav.import now carries
compress/mode=0, and a guard in tools/pruefe_kerne.gd checks format, sample
rate, silence, clipping and decay of all three files. Otherwise you spend four
rounds filing at modes and lose the result on import.
The victory wave keeps the synthetic sound — measured, not felt
The obvious move would have been to use the new flap sound for the victory wave too. Eighteen strikes, a scale up and back down — the same flap, just often.
My worry was that the strikes would merge into a rattle with the drier “Klapper”. That worry was unfounded — the sequence stays even more clearly separated with Klapper. It fails on something else:
So audio/welle.wav is the old sound (196 / 337 / 611 Hz) — it was too
tonal for a single flap, and that is exactly why it is right here: the wave is
the one place in the game where a pitch says something.
A sound that was too musical as a strike is exactly right as a melody. You could have guessed that; you only knew it after the measurement.
What remains of the four rounds
The lost rounds still sit in tools/klang/ — not as a headstone. The traps in
them apply to every next sound this house builds: contact pulse, mode phase,
body level, room normalisation, the measurement trap in the Hann window, the
levelling of low frequencies.
And without them the recording would not have been chosen correctly. It was the
measurement against the synthetic candidates that showed which of the found
dice sounds was usable — before that they were twenty indistinguishable files
with names like roll_03.wav.
Still open: our own recordings. Something is missing at the top of the
found dice files — the band edge sits at 12–15 kHz, which means a lossy source.
What is needed: 15–20 individual impacts with half a second of silence
between them, the flap additionally lowered slowly by hand and dropped,
microphone 20–30 cm above the box, 48 kHz / 24 bit, peak at −12 dB, not
normalised. Installing them is then a file swap in audio/.
The lesson is uncomfortable for anyone who likes to compute: four rounds of physics lost, and they were not wasted anyway. Just not for what they were built for.