{
  "date": "2026-10-01",
  "toolCommit": "aee8b75d512672dc1705905853b00b87846fd7f0",
  "browser": "Chrome 154 on Windows",
  "method": "Two generated two-second 44.1 kHz AAC M4A fixtures (mono and stereo) were selected through the real browser file input; each converted at 44100 and 48000 Hz. WAV output Blobs were read, parsed and hashed. A downloaded stereo 44100 Hz WAV was checked with ffprobe. No customer recordings used.",
  "fixtureCommands": [
    "ffmpeg -f lavfi -i sine=frequency=440:duration=2:sample_rate=44100 -ac 1 -c:a aac -b:a 96k aac-mono-44k.m4a",
    "ffmpeg -f lavfi -i sine=frequency=440:duration=2:sample_rate=44100 -ac 2 -c:a aac -b:a 128k aac-stereo-44k.m4a"
  ],
  "implementation": {
    "inputLimitBytes": 50000000,
    "outputLimitBytes": 200000000,
    "encoding": "PCM signed 16-bit little-endian",
    "sampleRates": [
      44100,
      48000
    ],
    "channels": [
      1,
      2
    ],
    "defaultSampleRate": 44100,
    "audioUpload": false,
    "dependenciesAdded": []
  },
  "localResults": [
    {
      "input": "aac-mono-44k.m4a",
      "rate": 44100,
      "channels": 1,
      "bits": 16,
      "codec": 1,
      "riff": "RIFF",
      "wave": "WAVE",
      "bytes": 176444,
      "pcmBytes": 176400,
      "duration": 2,
      "download": "aac-mono-44k.wav",
      "error": "",
      "sha256": "181293fb55e4924f6656bcc1ca3477dde374536804d4e5f477d82f6cf3112ebe"
    },
    {
      "input": "aac-mono-44k.m4a",
      "rate": 48000,
      "channels": 1,
      "bits": 16,
      "codec": 1,
      "riff": "RIFF",
      "wave": "WAVE",
      "bytes": 192044,
      "pcmBytes": 192000,
      "duration": 2,
      "download": "aac-mono-44k.wav",
      "error": "",
      "sha256": "9ebe9c2eda34bd33ca92da0bfc8d53260265a36052f23e8649a5948307690134"
    },
    {
      "input": "aac-stereo-44k.m4a",
      "rate": 44100,
      "channels": 2,
      "bits": 16,
      "codec": 1,
      "riff": "RIFF",
      "wave": "WAVE",
      "bytes": 352844,
      "pcmBytes": 352800,
      "duration": 2,
      "download": "aac-stereo-44k.wav",
      "error": "",
      "sha256": "d9c4e1e137146e544862b14ffa5f763055f1e1f0e84d90410c9b64f636540aca"
    },
    {
      "input": "aac-stereo-44k.m4a",
      "rate": 48000,
      "channels": 2,
      "bits": 16,
      "codec": 1,
      "riff": "RIFF",
      "wave": "WAVE",
      "bytes": 384044,
      "pcmBytes": 384000,
      "duration": 2,
      "download": "aac-stereo-44k.wav",
      "error": "",
      "sha256": "e32b2c2559e40c374c34761c34ca742fde56540fcc1acfbc3850ae963eed5520"
    },
    {
      "input": "alac-mono-48k.m4a",
      "rate": 48000,
      "error": "This M4A could not be read. It may be damaged, protected, or use a codec your browser does not support. Try another unprotected M4A or an updated browser.",
      "busy": false
    },
    {
      "input": "aac-6ch.m4a",
      "rate": 48000,
      "error": "Choose a mono or stereo M4A. Audio with more than two channels is not supported.",
      "busy": false
    },
    {
      "input": "damaged.m4a",
      "rate": 48000,
      "error": "This M4A could not be read. It may be damaged, protected, or use a codec your browser does not support. Try another unprotected M4A or an updated browser.",
      "busy": false
    }
  ],
  "downloadedFile": {
    "sha256": "d9c4e1e137146e544862b14ffa5f763055f1e1f0e84d90410c9b64f636540aca",
    "bytes": 352844,
    "ffprobe": {
      "codec_name": "pcm_s16le",
      "sample_rate": 44100,
      "channels": 2,
      "bits_per_sample": 16,
      "duration": 2
    }
  },
  "liveCheck": {
    "url": "https://swrflow.com/tools/m4a-to-wav",
    "input": "aac-stereo-44k.m4a",
    "rate": 44100,
    "channels": 2,
    "bits": 16,
    "bytes": 352844,
    "sha256": "d9c4e1e137146e544862b14ffa5f763055f1e1f0e84d90410c9b64f636540aca",
    "fetchOrXhrDuringConversion": 0
  },
  "limits": [
    "Synthetic fixtures, not a perceptual quality test.",
    "ALAC fixture failed in this browser; no other browser/device ALAC test.",
    "No tags or artwork copied. Protected files unsupported. Browser memory/decoder limits apply.",
    "Encoder uses a 44-byte header. Other WAV writers may add chunks."
  ],
  "sourceFiles": [
    "https://github.com/shenwr12/aigc-studio/blob/aee8b75d512672dc1705905853b00b87846fd7f0/apps/web/public/tools/m4a-to-wav/core.js",
    "https://github.com/shenwr12/aigc-studio/blob/aee8b75d512672dc1705905853b00b87846fd7f0/apps/web/public/tools/m4a-to-wav/app.js"
  ]
}
