{
  "schemaVersion": 1,
  "publishedAt": "2026-07-21",
  "page": "https://audiowrench.com/benchmarks/",
  "result": "PASS",
  "summary": "14 AudioWrench tools currently have published end-to-end functional evidence in this benchmark hub.",
  "methodology": {
    "functional": "A real local fixture is selected in Chromium and the primary workflow is completed. Outputs and relevant claims are checked, while fetch, XHR, WebSocket, EventSource and cross-origin requests are recorded.",
    "source": "The visible controls, processing path, output format, dependencies, data flow and limits are reviewed against the current implementation.",
    "smoke": "The canonical page is opened through the production-like Cloudflare Pages runtime and checked for startup, runtime and accessibility failures. This does not prove transformation accuracy."
  },
  "suites": [
    {
      "id": "functional-workflow-and-network-observation",
      "testedAt": "2026-07-21T02:18:52.218Z",
      "browser": "Chromium 149.0.7827.55",
      "source": "/assets/evidence/tool-privacy-audit.json",
      "result": "PASS",
      "results": [
        {
          "slug": "autotune",
          "name": "Auto-Tune",
          "toolUrl": "/tools/autotune",
          "title": "Pitch-correction workflow",
          "question": "Can the tool analyse an intentionally off-pitch monophonic fixture, correct it to C major and export a readable WAV?",
          "fixture": "demo-vocal.wav",
          "fixtureUrl": "/assets/demo-vocal.wav",
          "inputBytes": 352844,
          "workflowMs": 1327,
          "observed": "42 of 45 analysed segments were corrected to C major and the exported 333,272-byte WAV passed the file check.",
          "limitation": "This fixture tests one short synthetic monophonic voice. It is not an accuracy score for every singer, key or recording condition.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS"
        },
        {
          "slug": "flac-cover-art",
          "name": "FLAC Cover Art",
          "toolUrl": "/tools/flac-cover-art",
          "title": "FLAC picture-block workflow",
          "question": "Can the tool add a front-cover picture while preserving the compressed FLAC audio payload byte for byte?",
          "fixture": "demo-flac-cover-art.flac",
          "fixtureUrl": "/assets/demo-flac-cover-art.flac",
          "inputBytes": 743731,
          "workflowMs": 208,
          "observed": "The exported FLAC contained a type-3 front-cover picture and retained the original compressed audio payload byte for byte.",
          "limitation": "The fixture covers one valid FLAC structure and one front-cover replacement path, not every malformed or unusual metadata layout.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS"
        },
        {
          "slug": "soundboard",
          "name": "Soundboard",
          "toolUrl": "/tools/soundboard",
          "title": "Soundboard backup workflow",
          "question": "Can the tool load a local pad and export a readable one-pad JSON board backup?",
          "fixture": "demo-music.wav",
          "fixtureUrl": "/assets/demo-music.wav",
          "inputBytes": 1058444,
          "workflowMs": 260,
          "observed": "The six-second fixture loaded into one pad and the exported one-pad JSON backup passed the structure check.",
          "limitation": "This result covers one pad and one backup export. Storage capacity and playback latency still depend on the browser and device.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS"
        },
        {
          "slug": "granular",
          "name": "Granular Synthesizer",
          "toolUrl": "/tools/granular",
          "title": "Granular capture workflow",
          "question": "Can the granular instrument load a local fixture, render a short capture and export a readable WAV?",
          "fixture": "demo-music.wav",
          "fixtureUrl": "/assets/demo-music.wav",
          "inputBytes": 1058444,
          "workflowMs": 1105,
          "observed": "The tool captured 0.7 seconds of granular output and exported a valid 138,284-byte WAV.",
          "limitation": "Granular scheduling is intentionally stochastic, so this verifies the workflow and file output rather than a fixed artistic result.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS"
        },
        {
          "slug": "spectrogram",
          "name": "Spectrogram Analyzer",
          "toolUrl": "/tools/spectrogram",
          "title": "Spectrogram export workflow",
          "question": "Can the analyser load a local audio fixture, draw its spectrum and export a readable PNG?",
          "fixture": "demo-music.wav",
          "fixtureUrl": "/assets/demo-music.wav",
          "inputBytes": 1058444,
          "workflowMs": 1695,
          "observed": "The six-second fixture loaded and the visible spectrogram exported as a valid 10,037-byte PNG.",
          "limitation": "This published case covers the live analyser viewport. The separate full-file mode has a targeted regression test, but neither mode is a calibrated laboratory spectrometer or SPL meter.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS"
        }
      ]
    },
    {
      "id": "synthetic-analysis-and-normalization-wave2",
      "testedAt": "2026-07-15T16:52:36.119Z",
      "browser": "Chromium 149.0.7827.55",
      "source": "/assets/evidence/functional-benchmark-wave2.json",
      "fixtureManifest": "/assets/benchmark-fixtures/wave2-manifest.json",
      "license": "CC0-1.0",
      "result": "PASS",
      "results": [
        {
          "slug": "bpm-detector",
          "name": "BPM Detector",
          "toolUrl": "/tools/bpm-detector",
          "title": "Known-tempo detection matrix",
          "question": "Can the real UI recover controlled 80, 100, 128 and 160 BPM pulse trains and disclose its intentional half/double-time folding at 60 and 200 BPM?",
          "fixture": "6 deterministic CC0 WAV fixtures",
          "fixtureUrl": "/assets/benchmark-fixtures/wave2-manifest.json",
          "inputBytes": 2304264,
          "workflowMs": null,
          "caseCount": 6,
          "observed": "All 6 cases passed. Exact grid: 80→80 BPM, 100→100 BPM, 128→127.7 BPM, 160→160 BPM. Declared half/double-time interpretations: 60→120 BPM, 200→100 BPM.",
          "limitation": "These fixtures are steady synthetic click grids. Swing, syncopation, rubato, changing tempo and mastered music remain outside this wave.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS",
          "source": "/assets/evidence/functional-benchmark-wave2.json"
        },
        {
          "slug": "key-finder",
          "name": "Song Key Finder",
          "toolUrl": "/tools/key-finder",
          "title": "Authored key and Camelot matrix",
          "question": "Can the browser-resampled analyser return the exact authored tonic, major/minor mode and Camelot code for six deterministic chord progressions?",
          "fixture": "6 deterministic CC0 WAV fixtures",
          "fixtureUrl": "/assets/benchmark-fixtures/wave2-manifest.json",
          "inputBytes": 2880264,
          "workflowMs": null,
          "caseCount": 6,
          "observed": "All 6 authored progressions matched exact tonic, mode and Camelot code: C major (8B), D major (10B), F major (7B), G major (9B), A minor (8A), E minor (9A).",
          "limitation": "Six clean triad progressions do not establish accuracy for modal, atonal, noisy, sparse or changing-key recordings. Treat every real-song result as an estimate.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS",
          "source": "/assets/evidence/functional-benchmark-wave2.json"
        },
        {
          "slug": "loudness-normalizer",
          "name": "Loudness Normalizer",
          "toolUrl": "/tools/loudness-normalizer",
          "title": "Known-level LUFS and WAV workflow",
          "question": "Can the UI measure controlled signals, normalize them to -23 and -16 LUFS, re-measure the render and export a readable PCM16 WAV?",
          "fixture": "2 deterministic CC0 WAV fixtures",
          "fixtureUrl": "/assets/benchmark-fixtures/wave2-manifest.json",
          "inputBytes": 384088,
          "workflowMs": null,
          "caseCount": 2,
          "observed": "Both measurement, normalization and download workflows passed: -23 LUFS target → -23 LUFS in the UI, 384,044-byte WAV; -16 LUFS target → -16 LUFS in the UI, 384,044-byte WAV.",
          "limitation": "The fixtures are steady mono 1 kHz tones and the independent cross-check is not a certified broadcast meter. This wave covers sample peak, not true peak.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS",
          "source": "/assets/evidence/functional-benchmark-wave2.json"
        }
      ]
    },
    {
      "id": "deterministic-editing-and-conversion-wave3",
      "testedAt": "2026-07-15T17:38:31.263Z",
      "browser": "Chromium 149.0.7827.55",
      "source": "/assets/evidence/functional-benchmark-wave3.json",
      "fixtureManifest": "/assets/benchmark-fixtures/wave3-manifest.json",
      "license": "CC0-1.0",
      "result": "PASS",
      "results": [
        {
          "slug": "converter",
          "name": "Audio Converter",
          "toolUrl": "/tools/converter",
          "title": "Format, channel and sample-rate conversion",
          "question": "Can the real UI turn a stereo 48 kHz WAV into a mono 22.05 kHz float32 WAV while preserving duration and both authored tones at the expected downmix levels?",
          "fixture": "1 deterministic CC0 WAV fixture",
          "fixtureUrl": "/assets/benchmark-fixtures/wave3-manifest.json",
          "inputBytes": 384044,
          "workflowMs": null,
          "caseCount": 1,
          "observed": "The two-second stereo fixture became a 22,050 Hz mono float32 WAV (176,444 bytes); both authored tones remained at the expected downmix levels.",
          "limitation": "This case covers WAV-to-WAV conversion, one downmix and one output rate. MP3 encoding and every browser-decodable input codec remain outside this wave.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS",
          "source": "/assets/evidence/functional-benchmark-wave3.json"
        },
        {
          "slug": "trimmer",
          "name": "Audio Trimmer",
          "toolUrl": "/tools/trimmer",
          "title": "Exact middle-selection trim and WAV export",
          "question": "Can the real waveform handles keep exactly 1.00–3.00 seconds of a four-segment fixture and exclude the authored outer tone segments from the downloaded WAV?",
          "fixture": "1 deterministic CC0 WAV fixture",
          "fixtureUrl": "/assets/benchmark-fixtures/wave3-manifest.json",
          "inputBytes": 384044,
          "workflowMs": null,
          "caseCount": 1,
          "observed": "The visible handles selected 1.00–3.00 seconds and exported an exact 2.00-second PCM16 WAV (192,044 bytes) containing the 330/440 Hz middle segments with no measured 220/660 Hz leakage.",
          "limitation": "This case covers keep-selection with zero fades and pointer-position handles. Remove mode, fades and touch-specific gestures remain outside this wave.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS",
          "source": "/assets/evidence/functional-benchmark-wave3.json"
        },
        {
          "slug": "joiner",
          "name": "Audio Joiner",
          "toolUrl": "/tools/joiner",
          "title": "Reordered two-file join with crossfade",
          "question": "Can the real UI reorder two decoded files, apply a 100 ms crossfade and export the expected sequence, duration and AudioContext-rate WAV?",
          "fixture": "2 deterministic CC0 WAV fixtures",
          "fixtureUrl": "/assets/benchmark-fixtures/wave3-manifest.json",
          "inputBytes": 134488,
          "workflowMs": null,
          "caseCount": 1,
          "observed": "After the visible reorder and 100 ms crossfade, the 1.7-second WAV followed the 660→330 Hz sequence at 48,000 Hz (163,244 bytes).",
          "limitation": "This case covers two mono inputs, one reorder and one crossfade. Chromium decodes both source rates to its AudioContext rate before the joiner sees them; larger queues, channel expansion and clipping control remain outside this wave.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS",
          "source": "/assets/evidence/functional-benchmark-wave3.json"
        }
      ]
    },
    {
      "id": "deterministic-local-separation-and-denoising-wave4",
      "testedAt": "2026-07-15T19:32:16.871Z",
      "browser": "149.0.7827.55",
      "source": "/assets/evidence/functional-benchmark-wave4.json",
      "fixtureManifest": "/assets/benchmark-fixtures/wave4-manifest.json",
      "license": "CC0-1.0",
      "result": "PASS",
      "results": [
        {
          "slug": "vocal-remover",
          "name": "Vocal Remover",
          "toolUrl": "/tools/vocal-remover",
          "title": "Instant mid/side vocal-separation matrix",
          "question": "Can the real UI route a controlled centred vocal and anti-phase side signal into instrumental and acapella WAV outputs without invoking the optional neural model?",
          "fixture": "1 deterministic CC0 WAV fixture",
          "fixtureUrl": "/assets/benchmark-fixtures/wave4-manifest.json",
          "inputBytes": 576044,
          "workflowMs": null,
          "caseCount": 2,
          "observed": "Both instant-DSP exports passed: instrumental vocal/side ratio 0.028881, acapella side/vocal ratio 0.000002, with no neural-model request.",
          "limitation": "These cases cover the instant phase-DSP engine on one synthetic stereo mix. They do not test the optional neural engine or establish separation quality for mastered songs.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS",
          "source": "/assets/evidence/functional-benchmark-wave4.json"
        },
        {
          "slug": "stem-splitter",
          "name": "Stem Splitter",
          "toolUrl": "/tools/stem-splitter",
          "title": "Four-stem routing and reconstruction workflow",
          "question": "Can the real UI export bass, vocals, drums and other WAV stems with the expected authored routing and a sample-level sum close to the input fixture?",
          "fixture": "1 deterministic CC0 WAV fixture",
          "fixtureUrl": "/assets/benchmark-fixtures/wave4-manifest.json",
          "inputBytes": 768044,
          "workflowMs": null,
          "caseCount": 1,
          "observed": "All four PCM16 WAV stems exported and summed back to the fixture with RMSE 0.00003146 and peak error 0.00009155; authored bass, vocal and transient/side routing checks passed.",
          "limitation": "The splitter is a frequency/transient heuristic, not an AI source-separation model. The fixture verifies deterministic routing and reconstruction, not perceptual isolation on real music.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS",
          "source": "/assets/evidence/functional-benchmark-wave4.json"
        },
        {
          "slug": "noise-remover",
          "name": "Noise Remover",
          "toolUrl": "/tools/noise-remover",
          "title": "Stationary-noise reduction and signal-retention workflow",
          "question": "Can the real UI learn a deterministic stationary noise floor, reduce broadband noise and hum, retain the authored speech-proxy tones and export a readable WAV?",
          "fixture": "1 deterministic CC0 WAV fixture",
          "fixtureUrl": "/assets/benchmark-fixtures/wave4-manifest.json",
          "inputBytes": 384044,
          "workflowMs": null,
          "caseCount": 1,
          "observed": "Default-strength cleanup reduced noise-only RMS by 40.39 dB and 120 Hz hum by 101.37 dB, retained 94.57% of the authored speech-proxy tones and improved SNR by 23.06 dB.",
          "limitation": "This case covers one seeded stationary noise profile and synthetic tones. It does not establish quality for changing noise, reverberation, overlapping voices or one-off sounds.",
          "payloadNetworkRequests": 0,
          "externalRequests": 0,
          "result": "PASS",
          "source": "/assets/evidence/functional-benchmark-wave4.json"
        }
      ]
    }
  ]
}
