Fart sound generator
Nothing in here is a recording: every parp is synthesised in your browser, milliseconds before you hear it.
- Engine
- —
- Measured pitch
- —
- Flaps
- —
- Length
- —
Completely free: no model, no metering, no credits, no sign-in.
What each control does
- Length
- How long the whole noise lasts, from first flap to last echo.
- Pitch
- The fundamental of the buzz. Low is a tuba, high is a balloon neck.
- Tightness
- How narrow each pulse is, and how sharply the body resonates. Loose is a flap; tight is a squeak.
- Wetness
- Broadband noise against periodic buzz. Dry is a trumpet; wet is a splutter.
- Burstiness
- One sustained note at zero; a stuttering run of short flaps with uneven gaps at one. It reshapes the rhythm rather than adding a tremolo.
- Glide
- Pitch travel over the noise. Negative falls away; positive rises, which is the funnier one.
- Room
- How much space it happens in. Zero is a cupboard; one is a cathedral. A Schroeder delay network supplies it.
- Grit
- Saturation. Adds harmonics and squares off the peaks - rude, in the audio-engineering sense.
Every one of the eight controls changes the sound audibly; none of them is decoration. Randomise picks a character first and then samples inside it, so repeated presses stay interesting rather than producing eight variations on one noise. The seed beside it is what makes any of this repeatable: every parp is a pure function of the eight parameters, the engine and the seed, and none of the randomness comes from the browser. The eight presets are exactly reproducible for the same reason - each is pinned to a fixed seed. The waveform above is drawn from the rendered samples, not from an illustration of them.
How the two engines are built, and why only one takes a pitch
This is a genuine synthesiser rather than a soundboard, and the two engines differ in mechanism, not in preset. The buzz engine is a variable-width pulse train mixed with a gated noise bed and driven through a resonant state-variable filter standing in for a body cavity. The flap engine is a stick-slip relaxation oscillator: pressure builds against a membrane until tension gives way, air escapes, pressure drops and the membrane recloses. Its frequency is never commanded - it emerges from the pressure and the tension, and drifts as the pressure sags.
So pitch is an input to one engine and an emergent output of the other. Rather than faking a shared control, the app disables Pitch on the flap engine and reports the frequency it measured back out of the finished audio, as a band rather than a single number. A Schroeder delay network supplies the room on both.
What happens when a link is broken or the browser says no
Partial recovery. A share code that arrives truncated or mangled - a chat client eating the last few characters is the usual cause - is not thrown away. The decoder keeps every setting that parsed, falls back on the rest, and says so: the results are reported as a note naming which settings fell back rather than a blank page and a shrug. A code asking for more than the ceiling allows is clamped, and the adjustment is reported too.
The autoplay policy, handled honestly. Browsers keep audio switched off until you interact with the page. Rather than failing silently, this app creates its audio device only on your first press and puts the state on screen, with the explanation in the questions above. A file dropped in that is not a recipe is refused with a reason, never ignored.
Questions people ask
Are these recordings of real sounds?
No, and there is not a single audio file in the download. Every noise is computed from scratch in your browser: an oscillator or a membrane model generates a waveform, a resonant filter shapes it, a saturator adds harmonics and a delay network adds the room. What reaches your speakers is arithmetic that finished a few milliseconds ago. Nothing was recorded, and nothing belonging to anybody else is being played back.
What is the difference between the two engines?
How the sound is made, not which preset it starts from. The buzz engine runs a pulse train at whatever pitch you set and pushes it through a resonant body - predictable and tuneful. The flap engine models a membrane: pressure builds until tension gives way, air escapes, pressure falls, the membrane recloses. Nothing tells it a frequency. The frequency is however long that cycle takes, which means it drifts downward as the pressure sags and goes genuinely irregular when driven hard.
Why can I not set the pitch on the flap engine?
Because on that engine pitch is a result, not a setting. The period comes out of the pressure and the tension in the model; forcing a requested frequency onto it would mean switching the model off and still calling it the model. So the Pitch control is disabled there and the app reports the pitch the model actually produced instead - as a range, because a single flap genuinely sweeps, in one measured case from 53 Hz to 150 Hz.
Why does nothing happen the first time I load the page?
Browsers keep audio switched off until you interact with the page, so a sound scheduled before your first click is silently discarded. Rather than looking broken, this app creates its audio device only on your first press and shows the state on screen: waiting for a click, then ready. The first press wakes the audio and plays the noise.
Can I get the same noise back later?
Yes. Every noise is a pure function of its settings and its seed, and none of the randomness comes from the browser, so the same code always gives the same samples. The code travels in the address bar, so a parp is a link. You can also download the recipe as JSON, or download the finished audio as a WAV file that your machine computes.
Does this cost credits or need an account?
No. There is no AI model behind this app, so there is no run to meter and nothing to charge for. It works signed out and costs nothing. Signing in is optional and does one thing: it keeps the noises you liked on your account so they follow you to another browser.
What this parp actually cost
- Credits for that parp
- 0 - there is no model to run
- Your device's CPU
- —
- Samples computed
- —
- Downloaded to run this
- —
This app has no AI model, so a parp costs nothing and there is no meter to show. That does not make it free of cost - it makes the cost yours, in milliseconds of arithmetic on your own processor. Those are the real numbers for the noise you just made, not an estimate.
Presets
Eight starting points, each pinned to a fixed seed so it is exactly the same every time.
Take it with you
Why a recipe rather than a sound file
The WAV is computed on your machine from the settings above - this app ships no audio files, so there is nothing to serve you but arithmetic. You can export the recipe and import it again: a small JSON object holding the engine, the eight values, the seed and the code, which reproduces the same noise anywhere this page runs at a fraction of the size of the same parp as samples. Both sizes on the line above are measured from the parp in front of you and printed, not claimed. Drop a recipe back in and it plays, and a code you assemble by hand works too as long as its first two characters are right.
Drop a recipe file here, or
Keep the good ones
Signed out they stay in this browser; signed in they are kept on your SkillSafe account and can be searched by meaning, not just by word.
Nothing saved yet. Make something silly and press Save.
Every branch this app can produce, ready to play
One button per output branch, plus the awkward ones - a link that got cut off, a link asking for more than the ceiling allows, and two that are not valid at all. Each says what it is going to do before it does it.