# Audio limiter

- Human page: https://happytails.ai/en/media-tools/audio-limiter/
- Markdown: https://happytails.ai/en/media-tools/audio-limiter.md
- Structured JSON: https://happytails.ai/agents/en/media-tools/audio-limiter/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `audio-limiter` |
| Category | media-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Use the visible action or interactive controls. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Runs locally in your browser. Limits one recording up to 5 minutes and 256 MiB.

### Inputs and settings

No free-text input is required. Use the file inputs and/or settings below.

Accepted browser files: `.wav,.mp3,.m4a,.aac,.flac,.ogg,.oga,.opus,.webm,audio/*`. Choose one file.

Browser file-input limit: 268435456 bytes in total. HTTP limits can differ.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `ceiling` | Ceiling (dB) | number | "-1" | min=-20 max=0 step=0.1 |
| `mode` | Peak mode | select | "true" | Allowed: true, sample |
| `lookahead` | Look-ahead (ms) | number | "5" | min=0.1 max=20 step=0.1 |
| `release` | Release (ms) | number | "80" | min=1 max=1000 step=1 |
| `encoding` | WAV sample format | select | "match" | Allowed: match, pcm16, pcm24, float32 |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

One recording up to 256 MiB and 5 minutes, because true peak limiting is heavy for a browser; ceiling -20 to 0 dB, look-ahead 0.1 to 20 ms, release 1 to 1,000 ms. WAV is read with every sample intact; other formats are decoded by your browser at 48 kHz. Everything is processed on your device and nothing is uploaded. Download: WAV in the source format or the format you choose, a JSON report and a CSV of limited ranges.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "audio-limiter",
  "category": "media-tools",
  "built": true,
  "requirements": "One recording up to 256 MiB and 5 minutes, because true peak limiting is heavy for a browser; ceiling -20 to 0 dB, look-ahead 0.1 to 20 ms, release 1 to 1,000 ms. WAV is read with every sample intact; other formats are decoded by your browser at 48 kHz. Everything is processed on your device and nothing is uploaded. Download: WAV in the source format or the format you choose, a JSON report and a CSV of limited ranges.",
  "implementation": {
    "fields": [
      {
        "key": "ceiling",
        "label": "Ceiling (dB)",
        "value": "-1",
        "type": "number",
        "min": -20,
        "max": 0,
        "step": 0.1
      },
      {
        "key": "mode",
        "label": "Peak mode",
        "value": "true",
        "type": "select",
        "values": [
          "true",
          "sample"
        ],
        "labels": {
          "true": "Estimated true peak",
          "sample": "Sample peak"
        }
      },
      {
        "key": "lookahead",
        "label": "Look-ahead (ms)",
        "value": "5",
        "type": "number",
        "min": 0.1,
        "max": 20,
        "step": 0.1
      },
      {
        "key": "release",
        "label": "Release (ms)",
        "value": "80",
        "type": "number",
        "min": 1,
        "max": 1000,
        "step": 1
      },
      {
        "key": "encoding",
        "label": "WAV sample format",
        "value": "match",
        "type": "select",
        "values": [
          "match",
          "pcm16",
          "pcm24",
          "float32"
        ],
        "labels": {
          "match": "Same as source",
          "pcm16": "16-bit PCM",
          "pcm24": "24-bit PCM",
          "float32": "32-bit float"
        }
      }
    ],
    "registrationFamily": "audio-dsp-dynamics-filters",
    "presentation": "metrics",
    "files": true,
    "accept": ".wav,.mp3,.m4a,.aac,.flac,.ogg,.oga,.opus,.webm,audio/*",
    "maxFileBytes": 268435456,
    "input": false,
    "inputErrorCode": "AUDIO_DSP_DYNAMICS_FILTERS_TOO_LONG",
    "note": "Runs locally in your browser. Limits one recording up to 5 minutes and 256 MiB.",
    "experience": {
      "automatic": false,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Audio file",
      "placeholder": "Choose a recording",
      "help": "The limiter lowers gain around peaks, with look-ahead and release to smooth the changes. Up to 1,000,000 characters. Review the settings before running.",
      "helpParts": [
        "The limiter lowers gain around peaks, with look-ahead and release to smooth the changes.",
        "Up to 1,000,000 characters.",
        "Review the settings before running."
      ],
      "action": null
    },
    "mode": "explicit",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Control recording peaks with a sample-peak or estimated true-peak ceiling, and see where limiting was applied.

### How to use Audio limiter

1. Choose the recording to limit.
2. Set the ceiling and choose true peak or sample peak mode.
3. Adjust the look-ahead and release if needed.
4. Limit, check the limited ranges and download the WAV.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

## Useful next steps

- [Audio loudness normalizer](https://happytails.ai/en/media-tools/audio-loudness-normalizer/) ([Markdown](https://happytails.ai/en/media-tools/audio-loudness-normalizer.md))

- [Audio dynamics compressor](https://happytails.ai/en/media-tools/audio-dynamics-compressor/) ([Markdown](https://happytails.ai/en/media-tools/audio-dynamics-compressor.md))

- [Increase audio volume](https://happytails.ai/en/media-tools/increase-audio-volume/) ([Markdown](https://happytails.ai/en/media-tools/increase-audio-volume.md))

One recording up to 256 MiB and 5 minutes, because true peak limiting is heavy for a browser; ceiling -20 to 0 dB, look-ahead 0.1 to 20 ms, release 1 to 1,000 ms. WAV is read with every sample intact; other formats are decoded by your browser at 48 kHz. Everything is processed on your device and nothing is uploaded. Download: WAV in the source format or the format you choose, a JSON report and a CSV of limited ranges.

## How it works

The limiter looks ahead by the look-ahead time, finds the gain each peak needs to stay under the ceiling and lowers the level smoothly before it arrives. The gain never rises above what a peak requires, and it recovers over the release time. In true peak mode, peak detection uses 4 times oversampling below 96 kHz, 2 times from 96 kHz to below 192 kHz, and the original samples at 192 kHz. The limiter checks the result in up to three passes.

### Settings

A ceiling of -1 dB in true peak mode suits most streaming and podcast delivery. Short look-ahead and release keep transients but can distort low notes; longer values sound smoother.

### Reading the result

The report gives the largest reduction, the number of limited samples and ranges, and the loudness and peaks after limiting. The CSV lists every limited range in seconds.
