{
  "kind": "original-hypothetical-arithmetic",
  "notMeasured": [
    "Phonon inference",
    "audio quality",
    "hardware",
    "browser playback"
  ],
  "executedAt": "2026-11-06T09:08:15.447773+00:00",
  "environment": {
    "python": "3.14.5",
    "implementation": "CPython",
    "executable": "/opt/homebrew/opt/python@3.14/bin/python3.14",
    "platform": "macOS-26.5.2-arm64-arm-64bit-Mach-O"
  },
  "method": "Exact rational arithmetic with Python standard-library fractions; six assertions passed",
  "assumptions": [
    "Playback consumes one audio-second per real second",
    "Initial audio b=0.4s exists at playback start",
    "Constant production rate until finite utterance completes",
    "Fluid approximation ignores chunk jitter, device latency and loading",
    "Zero buffer at the final playback instant is normal completion; zero before it is underrun"
  ],
  "formula": "B(t)=b+(r-1)*t until generation completion, then consume remainder",
  "cases": [
    {
      "name": "long-slow",
      "audioLength": 8,
      "rate": 0.8,
      "initialAudio": 0.4,
      "firstUnderrunSecondsAfterPlaybackStarts": 2.0
    },
    {
      "name": "short-slow",
      "audioLength": 1.5,
      "rate": 0.8,
      "initialAudio": 0.4,
      "generationCompleteSecondsAfterPlaybackStarts": 1.375,
      "audioRemainingAtGenerationEnd": 0.125,
      "underrun": false
    },
    {
      "name": "fast-sustained",
      "rate": 1.25,
      "initialAudio": 0.4,
      "bufferAfter2Seconds": 0.9
    },
    {
      "name": "pause",
      "audioBeforePause": 0.4,
      "productionPauseSeconds": 0.6,
      "missingAudioSeconds": 0.2
    },
    {
      "name": "long-prefill",
      "audioLength": 8,
      "rate": 0.8,
      "minimumInitialAudio": 1.6,
      "timeToMakeInitialAudioAtSameRate": 2.0
    }
  ]
}
