Tutorials & Beginner-First Jul 11, 2026

Your First Audacity Playtest VOD Loudness Spot Before Whisper Batch in One Evening - 2026

2026 beginner tutorial—Audacity playtest VOD loudness spot before Whisper batch, ffprobe duration gate, playtest_vod_loudness_spot_receipt_v1.json, and fail-closed triage promotion.

By GamineAI Team

Your First Audacity Playtest VOD Loudness Spot Before Whisper Batch in One Evening - 2026

Pixel-art hero for your first Audacity playtest VOD loudness spot before Whisper batch one evening 2026

You merged twelve OBS clips into session_2026-12-03_merged.wav. concat_ok is true. You launched the local Whisper batch and got blank lines, [inaudible] everywhere, or three-word hallucinations. The facilitator swears players talked for an hour.

November–December 2026 playtest nights produce merged WAV that is technically valid but acoustically wrong: clipped Discord voice, silent menu tours, or merged files with zero audible speech. Whisper tag extraction assumes transcripts exist—this Tutorials & Beginner-First guide closes the loudness spot gap in one evening: ffprobe duration sanity, Audacity −14 ±2 LUFS spot, clip peak check, file playtest_vod_loudness_spot_receipt_v1.json, and set loudness_spot_ok on BUILD_RECEIPT before Whisper batch and GitHub issue tags.

Non-repetition note: OBS concat evening owns merge discipline; LUFS tools listicle owns tool roundup; VO consent metadata owns highlight-reel consent; Loudness spot preflight (Guide) owns ninety-second A1–A6; Lesson 273 forward owns BUILD_RECEIPT milestone. This URL is the beginner evening path between concat_ok and Whisper.

Why this matters now (November–December 2026)

  1. Whisper batch volume — Facilitators run ASR on whole sessions, not per-clip QA.
  2. Silent mergesconcat_ok true but wrong track selected (game audio only).
  3. Clipped Discord voice — Boosted mics distort; ASR returns garbage without throwing errors.
  4. GitHub tag disciplineWhisper→issue workflow scenario E blocks tags when transcript is empty—fix audio before blame ASR.
  5. Receipt chainconcat_okloudness_spot_okwhisper_issue_tag_ok must be ordered on BUILD_RECEIPT.

Direct answer: ffprobe proves duration and audio stream exist; Audacity loudness meter proves integrated level near −14 LUFS ±2 on a representative minute; peak below −1 dBFS on speech; file playtest_vod_loudness_spot_receipt_v1.json with A1–A6 pass; only then run Whisper batch.

Who this is for and what you get

Audience You will be able to…
Beginner facilitator Spot-check one merged WAV in Audacity
Solo dev Stop empty Whisper output on bad merges
Producer Gate triage stand-up on loudness_spot_ok
Working dev Wire ffprobe + jq before batch script

Time: ~60–90 minutes first evening; 10 minutes per session after template exists.
Prerequisites: Merged WAV from OBS concat evening with concat_ok: true; Audacity 3.x; ffprobe on PATH.

What you will have after one evening

  • playtest-vod/loudness-spot/ folder convention
  • playtest_vod_loudness_spot_receipt_v1.json passing A1–A6
  • BUILD_RECEIPT column loudness_spot_ok
  • ffprobe duration + stream proof in receipt
  • Audacity screenshot or exported LUFS readout for facilitator README
  • Batch script guard: exit non-zero if receipt false

Beginner checkbox (before Audacity depth)

# Bad habit Fix tonight
1 Run Whisper on every merge without listening 30-second Audacity audition
2 Ignore ffprobe duration N/A A2 fail—re-merge
3 Boost Discord to “hear better” Clip kills ASR—re-capture
4 Tag GitHub issues from empty transcript Scenario E stop
5 Skip receipt File A6 before batch

Success check: You can hear intelligible speech in Audacity and integrated loudness reads −12 to −16 LUFS on the spot minute.

Evening overview (four blocks)

Block Minutes Output
A — ffprobe duration 15–20 Stream + duration log
B — Audacity spot 20–30 LUFS screenshot
C — Peak + silence scan 15–20 Clip / dead-air notes
D — Receipt + BUILD_RECEIPT 20–30 JSON + loudness_spot_ok

Run after concat evening, before local Whisper pipeline batch step.

Gates A1–A6 (promotion discipline)

Align with Loudness spot preflight (Guide). Blog = evening path; guide = ninety-second gate.

Gate Check Fail when
A1 Merged WAV path exists Missing file after concat
A2 ffprobe duration > 60 s and audio stream N/A duration or no audio
A3 Integrated LUFS −14 ±2 on spot minute Below −20 or above −8 on speech
A4 Peak < −1 dBFS on speech spot Clipping / brickwall
A5 Fail-closed batch jq Whisper runs without loudness_spot_ok
A6 playtest_vod_loudness_spot_receipt_v1.json filed Missing before batch

Promotion rule: whisper_batch_allowed is true only when A1–A6 pass and cousin concat_ok is true on the same build_label and session_id.

Block A — ffprobe duration and stream proof

On the merged WAV:

WAV="playtest-vod/merged/session_2026-12-03_merged.wav"
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$WAV"
ffprobe -v error -select_streams a:0 -show_entries stream=codec_name,sample_rate,channels -of csv=p=0 "$WAV"

A2 pass examples:

3724.512000
pcm_s16le,48000,2

A2 fail: duration N/A, zero audio streams, or duration < 60 s when session should be longer—revisit MKV concat help and concat evening.

Log outputs into receipt ffprobe_duration_sec and ffprobe_audio_stream fields.

Block B — Audacity integrated loudness spot

  1. Open merged WAV in Audacity.
  2. Select one representative minute with speech (not menu silence).
  3. Effect → Loudness Normalization (analysis only) or Analyze → Contrast / built-in meter per your Audacity build—record integrated LUFS readout.
  4. Target band: −14 LUFS ±2 (−12 to −16) for Discord-heavy playtest voice.
  5. Export screenshot to playtest-vod/loudness-spot/audacity_lufs_spot_2026-12-03.png.

Pair 14-free LUFS meter tools for alternatives—this tutorial standardizes on Audacity spot for facilitator consistency.

Menu-only minute warning: If the only loud section is game SFX, pick a different timestamp—ASR needs speech.

Block C — Peak and silence scan

Check How Fail signal
Clip Audacity waveform flat tops A4 fail
Silence Waveform flatline > 30 s mid-session Re-merge wrong track
Stereo phantom One channel empty Fix OBS source map

Optional ffmpeg volumedetect on spot minute:

ffmpeg -i "$WAV" -ss 120 -t 60 -af volumedetect -f null - 2>&1 | tee volumedetect_spot.log

Use as secondary evidence—not a replacement for Audacity LUFS spot (A3).

Block D — playtest_vod_loudness_spot_receipt_v1.json

Pin under playtest-vod/loudness-spot/PLAYTEST_VOD_LOUDNESS_SPOT_RECEIPT.json:

{
  "schema": "playtest_vod_loudness_spot_receipt_v1",
  "build_label": "december-playtest-2026-rc1",
  "session_id": "session_2026-12-03",
  "merged_wav_path": "playtest-vod/merged/session_2026-12-03_merged.wav",
  "concat_ok_cousin": "release-evidence/playtest-vod/PLAYTEST_VOD_TRIAGE_RECEIPT.json",
  "ffprobe_duration_sec": 3724.512,
  "ffprobe_audio_stream": "pcm_s16le,48000,2",
  "spot_start_sec": 120,
  "spot_duration_sec": 60,
  "integrated_lufs": -13.8,
  "peak_dbfs": -3.2,
  "audacity_screenshot": "playtest-vod/loudness-spot/audacity_lufs_spot_2026-12-03.png",
  "gates": {
    "A1_merged_wav": "pass",
    "A2_ffprobe_duration": "pass",
    "A3_lufs_band": "pass",
    "A4_peak_headroom": "pass",
    "A5_fail_closed": "pass",
    "A6_receipt": "pass"
  },
  "loudness_spot_ok": true,
  "whisper_batch_allowed": true
}

BUILD_RECEIPT columns

Column Example
loudness_spot_ok true
playtest_vod_loudness_spot_receipt_path playtest-vod/loudness-spot/PLAYTEST_VOD_LOUDNESS_SPOT_RECEIPT.json
concat_ok true (cousin—must match session)

Lesson 273 forward wires promotion gates; Lesson 250 is VO consent for highlight reels—not playtest merge spot.

A5 — Fail-closed jq (batch script head)

jq -e '.loudness_spot_ok == true' playtest-vod/loudness-spot/PLAYTEST_VOD_LOUDNESS_SPOT_RECEIPT.json
jq -e '.gates.A3_lufs_band == "pass"' playtest-vod/loudness-spot/PLAYTEST_VOD_LOUDNESS_SPOT_RECEIPT.json

Abort Whisper batch on non-zero exit—pair Whisper tag extraction scenario E.

Developer path — Tuesday playtest night order

Step Artifact Owner
1 OBS capture + concat Concat evening
2 concat_ok receipt Facilitator
3 This loudness spot Facilitator
4 Whisper batch Engineering
5 Tag map + GitHub issues Whisper tags blog
6 Wednesday smoke Producer

Do not open GitHub issues from empty transcripts—fix A2–A4 first.

Relationship to concat vs Whisper vs tags

Artifact Role
This tutorial One-evening LUFS + duration spot
Concat evening concat_ok merge
Local Whisper pipeline Batch ASR strategy
Whisper tags blog GitHub issue discipline
Whisper tag map guide W1–W6 preflight
Help #5 MKV concat fix

Common mistakes

  1. Skipping listen test — LUFS alone misses wrong-language track.
  2. Spot on menu silence — A3 passes on hum; Whisper still empty on speech sections.
  3. Running batch on clipped audio — ASR hallucinates; tags invent repro.
  4. concat_ok false but loudness run anyway — fix merge first.
  5. Confusing VO consent receipt — Lesson 250 is store/highlight lane.
  6. One global LUFS for whole file — use spot minute representative of speech.
  7. Filing receipt before ffprobe — A2 values must be observed.

Troubleshooting

Symptom Lane
Whisper blank, LUFS OK Wrong audio track—check OBS source
LUFS −22, quiet speech Normalize lightly or re-capture; do not max boost
LUFS −6, clipped A4 fail—re-record Discord
ffprobe no audio Re-merge; concat help
concat_ok false Concat evening—not this receipt
CUDA silent, CPU works Whisper CUDA help

Worked example — Tuesday merge to Wednesday batch

Scenario: session_2026-12-03_merged.wav has concat_ok: true. Whisper returns empty.

Step Action Result
1 ffprobe duration 62 min—A2 pass
2 Audacity spot minute 8:00 Speech audible
3 LUFS readout −13.4—A3 pass
4 Peak check −2.8 dBFS—A4 pass
5 File receipt loudness_spot_ok: true
6 Re-run Whisper batch Transcript populated
7 Tag extraction Scenario E cleared

Lesson learned: Previous batch used game audio bus only—merge was valid, speech was not in the file.

Discord stand-up one-liner (copy/paste)

Merged WAV spot −13.4 LUFS, peak −2.8 dBFS, loudness_spot_ok=true—Whisper batch cleared for session_2026-12-03.

Proof table (producer audit)

Row Evidence Pass
Merged path A1 File on disk
ffprobe A2 log Duration + stream
LUFS screenshot A3 −14 ±2
Peak A4 < −1 dBFS
jq gate A5 Exit 0
Receipt A6 loudness_spot_ok: true

Seven scenarios (A–G)

ID Situation Correct response
A First Whisper batch Run this spot before ASR
B Empty transcript Check A2–A4 before CUDA/CPU debug
C concat_ok false Concat lane first
D Quiet but not clipped Accept if A3 band OK; optional light normalize
E Clipped Discord Re-capture; do not Whisper
F Receipt true, ASR still empty Model/path lane—not loudness
G Tags from empty transcript Stop—scenario E in tags blog

Folder layout

playtest-vod/
  merged/
    session_2026-12-03_merged.wav
  loudness-spot/
    PLAYTEST_VOD_LOUDNESS_SPOT_RECEIPT.json
    audacity_lufs_spot_2026-12-03.png
    volumedetect_spot.log

Batch script guard (sketch)

#!/usr/bin/env bash
set -euo pipefail
RECEIPT="playtest-vod/loudness-spot/PLAYTEST_VOD_LOUDNESS_SPOT_RECEIPT.json"
jq -e '.loudness_spot_ok == true' "$RECEIPT"
# then invoke whisper batch per local pipeline blog

Pair 15-free Whisper/ffmpeg tools for script templates.

Facilitator README row (copy into playtest pack)

Add beside concat_ok instructions in your facilitator README:

## Loudness spot (before Whisper batch)

1. Confirm `concat_ok: true` on PLAYTEST_VOD_TRIAGE_RECEIPT.json for this session_id.
2. Run ffprobe duration + audio stream (Block A commands).
3. Audacity: spot minute with speech; target −14 LUFS ±2; peak < −1 dBFS.
4. File PLAYTEST_VOD_LOUDNESS_SPOT_RECEIPT.json with loudness_spot_ok: true.
5. Only then run whisper_batch.sh — script exits if receipt false.

This row prevents “Whisper is broken” stand-ups when the merge never contained facilitator voice.

BUILD_RECEIPT row diff (Thursday pairing)

When Thursday row review diffs promotion receipts, include:

Column Prior night Current night Action if drift
concat_ok true false Re-run concat evening
loudness_spot_ok true false Re-spot before batch
whisper_issue_tag_ok true false Check scenario E—likely skipped loudness
build_label rc1 rc1 OK—same label

Drift on loudness_spot_ok without build_label bump usually means a new merge was batched without re-spotting.

Extended troubleshooting — ASR vs audio vs merge

Layer Symptom First check Second check
Merge ffprobe duration N/A Concat help OBS source map
Loudness Whisper empty, waveform visible A3 LUFS band Wrong bus (game vs voice)
Clip Whisper garbage words A4 peak Discord auto-gain
ASR One clip OK, batch fails Batch script paths CUDA fallback help
Tags GitHub 422 invented repro Tags blog Scenario E loudness

Do not tune Whisper model size until A1–A6 are GREEN—model swaps hide bad input.

Tuesday async + Wednesday smoke alignment

Tuesday CSV ingest scopes which bugs to fix before Wednesday smoke. Loudness spot scopes which sessions enter Whisper batch that week. Producer rule:

  • P0/P1 rows from CSV ingest → engineering fixes before smoke.
  • Sessions with loudness_spot_ok: falseexcluded from Whisper batch until re-capture or re-merge.
  • Do not tag GitHub issues from excluded sessions—no transcript, no tags.

Optional CI spot job (GitHub Actions sketch)

Teams storing merges in repo artifacts can automate A2 + jq gate (A3/A4 still benefit from human Audacity spot until you trust volumedetect thresholds):

loudness-spot-gate:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/download-artifact@v4
      with:
        name: playtest-merged-wav
    - name: ffprobe duration gate (A2)
      run: |
        WAV="playtest-vod/merged/session_merged.wav"
        DUR=$(ffprobe -v error -show_entries format=duration -of csv=p=0 "$WAV")
        awk -v d="$DUR" 'BEGIN { exit !(d+0 > 60) }'
    - name: jq receipt gate (A5)
      run: jq -e '.loudness_spot_ok == true' playtest-vod/loudness-spot/PLAYTEST_VOD_LOUDNESS_SPOT_RECEIPT.json

Human Audacity screenshot remains A3 evidence for facilitator audits—CI jq is fail-closed backstop only.

Cousin receipt chain (one session_id)

playtest_vod_triage_receipt_v1.json     → concat_ok
playtest_vod_loudness_spot_receipt_v1.json → loudness_spot_ok  (this evening)
whisper_issue_tag_receipt_v1.json       → whisper_issue_tag_ok (after batch)

Lesson 200 documents concat_ok; Lesson 273 forward documents loudness_spot_ok; Lesson 266 forward documents tag receipt—keep session_id aligned across all three paths.

Tools and sibling reads

Key takeaways

  1. concat_ok is not enough—prove speech level before Whisper.
  2. One evening wires ffprobe, Audacity LUFS spot, receipt, and BUILD_RECEIPT column.
  3. −14 LUFS ±2 on a speech minute is the spot band for Discord playtest voice.
  4. Fail-closed batch jq prevents empty-transcript tag accidents.
  5. Whisper tags scenario E depends on this spot.
  6. Guide preflight holds ninety-second A1–A6; this post holds beginner evening blocks.
  7. Concat evening must pass first.
  8. Lesson 250 VO consent is a different lane from playtest merge spot.
  9. Thursday row review can diff loudness_spot_ok across nights.
  10. Forward blog #3 GameMaker setlive dry-run when Steam upload is next.

FAQ

Can we use ffmpeg loudnorm instead of Audacity?
Yes for automation—still file receipt with observed LUFS; Audacity remains the beginner spot UI.

Does this replace concat_ok?
No—cousin receipt must be true for the same session_id.

What about cloud Whisper API?
Same spot gate—API cost does not fix silent merges.

How does this relate to Lesson 273?
Lesson 273 promotes playtest_vod_loudness_spot_receipt into BUILD_RECEIPT—run this evening first.

Is −14 LUFS mandatory for fest trailers?
Store trailers use LUFS listicle—playtest spot uses ±2 band around −14 for ASR clarity.

Whisper works on one clip but not merge?
Merge lane—concat + loudness spot before batch.

Conclusion

November playtest merges fail Whisper quietly when speech is clipped, silent, or on the wrong bus. One evening: ffprobe duration, Audacity LUFS spot, peak check, file the receipt, set loudness_spot_ok—then run ASR and tag issues honestly.

Next reads: Loudness spot preflight (Guide), Concat evening, Local Whisper pipeline, Whisper tag extraction, Lesson 273 forward.

Pin the ffprobe + Audacity spot checklist beside your batch script before December playtest volume—not after facilitators blame Whisper.