FAILURE MAP
← Case archive

FA-10921 / Audio channel mixing / Open access

Mute preserves duration · case 01

Dropping muted samples advances the playback timeline instead of silencing it.

Verified by executionVariant 1 · 4 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Dropping muted samples advances the playback timeline instead of silencing it.

VERIFIED REPAIR

Apply the explicit PCM/playback contract: Mute replaces mono samples with signed-PCM silence while retaining buffer length; unmuted buffers pass through.

Unsuccessful approach: Unconditional zeroing silences channels when mute is disabled.

Case contract

Mute replaces mono samples with signed-PCM silence while retaining buffer length; unmuted buffers pass through.

Why this case matters

A pure Python local audio pipeline stage with explicit sample formats and frame conventions; no real-time device or signal-spectrum claims.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(samples, muted):
    return [] if muted else list(samples)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1',solve(*([1, 2, 3], True)),[0, 0, 0])
check('fixture 2',solve(*([1, 2], False)),[1, 2])
check('fixture 3',solve(*([], True)),[])
check('fixture 4',solve(*([-1], False)),[-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
fixture 1[][0, 0, 0]Failed
fixture 2[1, 2][1, 2]Passed
fixture 3[][]Passed
fixture 4[-1][-1]Passed

SHA-256 / e063d4b6b6fc16c82aa259e81e82d6c51090df34067c05ad3f4a9481e16ce455

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(samples, muted):
    return [0]*len(samples)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1',solve(*([1, 2, 3], True)),[0, 0, 0])
check('fixture 2',solve(*([1, 2], False)),[1, 2])
check('fixture 3',solve(*([], True)),[])
check('fixture 4',solve(*([-1], False)),[-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
fixture 1[0, 0, 0][0, 0, 0]Passed
fixture 2[0, 0][1, 2]Failed
fixture 3[][]Passed
fixture 4[0][-1]Failed

SHA-256 / e9358fa89a3f8671a409e7f46ccd48f5c0a44c75081aad1150de2b275f000cf3

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(samples, muted):
    return [0]*len(samples) if muted else list(samples)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1',solve(*([1, 2, 3], True)),[0, 0, 0])
check('fixture 2',solve(*([1, 2], False)),[1, 2])
check('fixture 3',solve(*([], True)),[])
check('fixture 4',solve(*([-1], False)),[-1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
fixture 1[0, 0, 0][0, 0, 0]Passed
fixture 2[1, 2][1, 2]Passed
fixture 3[][]Passed
fixture 4[-1][-1]Passed

SHA-256 / b07275754dd0c8627ccf59e881a905f0075f7846fef10617a72eaff5721d8d73

Verification & scope

This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:38:43.429530+00:00.

Case digest / ddd700de340ed81ba64967219b18cd10c3db48290ad8379df8b60e8b707d4c99