# Audio crossfade mixer

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

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `audio-crossfade-mixer` |
| 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. Joins two recordings up to 10 minutes each with a crossfade of up to 60 seconds.

### 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/*`. Multiple files are supported.

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

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `overlap` | Overlap (seconds) | number | "3" | min=0.01 max=60 step=0.01 |
| `curve` | Fade curve | select | "equal-power" | Allowed: equal-power, linear, s-curve |
| `preventClipping` | Lower the level if the joined audio would clip | checkbox | true |  |
| `encoding` | WAV sample format | select | "pcm24" | Allowed: pcm24, pcm16, 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

Exactly two recordings, each up to 256 MiB and 10 minutes, with an overlap from 0.01 to 60 seconds that fits in both and a result of at most 60 million samples. 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 (24-bit by default, 16-bit or 32-bit float) and a JSON report.

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-crossfade-mixer",
  "category": "media-tools",
  "built": true,
  "requirements": "Exactly two recordings, each up to 256 MiB and 10 minutes, with an overlap from 0.01 to 60 seconds that fits in both and a result of at most 60 million samples. 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 (24-bit by default, 16-bit or 32-bit float) and a JSON report.",
  "implementation": {
    "fields": [
      {
        "key": "overlap",
        "label": "Overlap (seconds)",
        "value": "3",
        "type": "number",
        "min": 0.01,
        "max": 60,
        "step": 0.01
      },
      {
        "key": "curve",
        "label": "Fade curve",
        "value": "equal-power",
        "type": "select",
        "values": [
          "equal-power",
          "linear",
          "s-curve"
        ]
      },
      {
        "key": "preventClipping",
        "label": "Lower the level if the joined audio would clip",
        "value": true,
        "type": "checkbox"
      },
      {
        "key": "encoding",
        "label": "WAV sample format",
        "value": "pcm24",
        "type": "select",
        "values": [
          "pcm24",
          "pcm16",
          "float32"
        ]
      }
    ],
    "registrationFamily": "audio-dsp-edit",
    "presentation": "metrics",
    "files": true,
    "multiple": true,
    "input": false,
    "accept": ".wav,.mp3,.m4a,.aac,.flac,.ogg,.oga,.opus,.webm,audio/*",
    "maxFileBytes": 268435456,
    "inputErrorCode": "AUDIO_DSP_EDIT_TOO_LONG",
    "note": "Runs locally in your browser. Joins two recordings up to 10 minutes each with a crossfade of up to 60 seconds.",
    "experience": {
      "automatic": false,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Two audio files",
      "placeholder": "Choose the outgoing and the incoming recording",
      "help": "The first file fades out and the second fades in. 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

Join two recordings so the first fades out while the second fades in, with the overlap length and fade curve you choose.

### How to use Audio crossfade mixer

1. Choose two recordings: the first plays out, the second comes in.
2. Set the overlap in seconds and choose a fade curve.
3. Join them and check the peak and headroom in the report.
4. Download the joined WAV and the JSON report.

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

- [Merge audio](https://happytails.ai/en/media-tools/merge-audio/) ([Markdown](https://happytails.ai/en/media-tools/merge-audio.md))

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

- [Trim audio](https://happytails.ai/en/media-tools/trim-audio/) ([Markdown](https://happytails.ai/en/media-tools/trim-audio.md))

## How the join works

The last part of the first recording and the first part of the second play at the same time for the overlap you set. The first fades out along the chosen curve while the second fades in along its mirror image, so the result is as long as both recordings minus the overlap.

### Curves

Equal power keeps the loudness steady when the two recordings are different. Linear keeps the level steady when they are very similar, such as two takes of the same sound. S-curve holds each side longer before handing over.

### Matching the files

The second recording is resampled to the rate of the first if they differ. A mono file is copied to both sides when the other is stereo. If the joined audio would clip, the whole file is lowered just enough, and the report gives that headroom gain.
