# QuietLoop
An adaptive muffler for repetitive sounds.
You know the problem. You build a nice automatic farm next to your base, and now your world sounds like a machine shop. Turning down the Blocks slider kills every block sound in the game — including the ones you actually want to hear.
QuietLoop fixes it the narrow way: it finds the *specific* sound that keeps looping in one *specific* place, and quietly turns that one down. Everything else stays exactly as loud as it was.
## What it does
- Detects sounds repeating near you: piston clocks, dispensers, droppers, portals, automatic farms.
- Fades them down gradually — never to silence, never below **25%**.
- Restores full volume when the sound stops, or when you walk away.
- **Never touches your volume sliders.** Only the individual playback is scaled.
## How it decides
Sounds are grouped by **identifier + world zone** (an 8-block grid cell). That pairing matters: a piston farm 40 blocks away and a piston you just placed at your feet are *different groups*, so silencing the farm never silences the piston in your hand.
A group becomes repetitive after **5 plays within 5 seconds**. From there the volume drops gradually:
| Plays in 5s | Volume |
|---|---|
| 4 or fewer | 100% |
| 5 | 85% |
| 6 | 70% |
| 7 | 55% |
| 8 | 40% |
| 9 or more | **25%** (floor) |
It goes back to 100% after **10 seconds** without repeating, or once you are more than **16 blocks** from the zone.
## What it will never touch
Only **Blocks**, **Neutral** and **Ambient** sounds are analysed. Music, records, UI, voice, player sounds, hostile mobs and weather are excluded outright.
Categories alone aren't enough for a few important warnings, so there is a small, documented denylist:
- Primed TNT
- Village bells (`block.bell.use`, `block.bell.resonate`)
- Respawn anchor depletion
- Wither spawn, ender dragon growl
- Any sound whose id contains `hurt`, `death` or `explode` — this covers damage and death sounds of neutral mobs, which are in the Neutral category
If a horde is coming, the bell still rings at full volume.
## Usage
Enabled by default. Press **N** to toggle it (rebindable under *Options → Controls → Miscellaneous*).
You get a brief message above your hotbar when you toggle it, and a one-time `QuietLoop: attenuating <sound id>` the first time a given sound is dimmed — so you always know what it decided to quiet down. It won't nag you about the same sound again for a minute.
The on/off state persists between sessions.
## Configuration
No config menu, no dependencies on config libraries. Just `config/quietloop.properties`:
```properties
enabled=true
repetitions=5
window_seconds=5.0
group_radius=8.0
min_volume=0.25
restore_seconds=10.0
restore_distance=16.0
show_notices=true