In-ear monitors are usually far more sensitive than the earbuds or headphones a phone's volume curve was tuned around, often specified in decibels of output per milliwatt of input rather than the rougher "loud/quiet" range typical consumer earbuds are designed for. Bone conduction headphones have a different problem: at low volumes the vibration itself can feel uncomfortable in a way that's separate from perceived loudness. Both end up in the same place: the phone's lowest non-mute step is genuinely too much.
This isn't a flaw specific to your headphones. Android's volume steps are calibrated against the device's own maximum output level, not against whatever is actually plugged in. The lowest step is a fixed fraction of that maximum, and no amount of headphone sensitivity is factored into where that floor sits.
Granular Volume adds real attenuation steps below the hardware minimum, applied cleanly to the output before it reaches your headphones, wired or Bluetooth, IEMs or bone conduction, it doesn't matter which.
Why "more precise" volume apps don't solve this
The most common suggestion for this problem is an app that adds more volume steps: a hundred clicks instead of fifteen. That does two things: it smooths the transitions, and it lowers the first step a little, because Android places each step on a fixed attenuation curve according to its position in the range. On one configuration we measured, going from 15 steps to 100 bought about 5 dB. Then it stops, because the curve has a fixed bottom that no step count passes. On drivers sensitive enough that the stock first step is already too loud, a few dB often is not the gap you need to close.
What actually changes the floor
An attenuation effect applied through Android's own audio framework, rather than a remapped step count, genuinely produces output below what the hardware's own minimum step allows. It's a clean gain-reduction stage, not an equalizer or a compressor, so it doesn't reshape the signal your headphones receive, it just turns all of it down further than the phone's own slider is able to.
- Works identically for wired IEMs, USB-C DACs, and Bluetooth output, since the attenuation is applied before the signal reaches whichever output path is active.
- Doesn't touch your physical volume buttons. You still control the "normal" range exactly as before, this just adds headroom underneath it.
- No equalizer curve, no compression, so it doesn't change the tonal balance you're used to, only the overall level.
The quiet setting your phone doesn't have
Free, open source, no ads, no tracking, no account. A small floating dial you set once and forget, until you need to adjust it again.
FAQ
- Does this work with wired IEMs through a USB-C or 3.5mm DAC?
- Yes. The attenuation is applied to the audio session before it reaches whichever output path is active, wired DAC included, since it works at the operating system's audio effect layer rather than on a specific hardware output.
- Does it work with Bluetooth IEMs and TWS earbuds?
- Yes, the same way. Bluetooth output goes through the same global audio session as wired output, so the attenuation applies before the signal is sent to the Bluetooth stack.
- Does the attenuation introduce distortion or hiss at very low levels?
- It does not add hiss of its own. It's a clean gain-reduction stage rather than a compressor or limiter, so it doesn't reshape the signal. One thing it cannot do, and this matters if hiss is your actual problem: the reduction happens in software, before the signal reaches your DAC and amplifier, so it cannot lower a hiss those stages are producing. Turning the music down that way leaves that background noise where it was, which makes it relatively easier to hear. If the noise floor is what bothers you rather than the loudness, a passive inline attenuator on the cable is what addresses that, because it works after the amplifier. This app is for the case where the sound is simply too loud at its lowest step.