agentic-video Gallery

Find when a steady tone is heard in the mid band of a clip

SoundFilmTool missed
0:12CC-BY-3.0 · Blender Foundation (mango.blender.org)

Proof frames

Click a frame to seek

Tool calls

2 calls · agentic-video 0.3.1
spectrogram_windowimac · 387 ms

Arguments

{
  "source": "$CLIP",
  "start_sec": 3,
  "end_sec": 9
}

Result

{
  "ok": true,
  "data": {
    "source_path": "~/hill/gallery/tmp/R-tone/attempt2/tone-film/clip.mp4",
    "start_sec": 3,
    "end_sec": 9,
    "file_path": "/private<cache>/ae1c3ccc4c3c9aebe9cf/audio/spectrogram_v2_v1_4fe0c540fe3ad271.png",
    "width": 1200,
    "height": 600,
    "sample_rate": 48000,
    "hop_samples": 256,
    "timecode_badges": [
      "00:00:03.000",
      "00:00:04.000",
      "00:00:05.000",
      "00:00:06.000",
      "00:00:07.000",
      "00:00:08.000",
      "00:00:09.000"
    ],
    "frequency_ticks": [
      {
        "frequency_hz": 50,
        "label": "50",
        "y_px": 480
      },
      {
        "frequency_hz": 100,
        "label": "100",
        "y_px": 432
      },
      {
        "frequency_hz": 200,
        "label": "200",
        "y_px": 383
      },
      {
        "frequency_hz": 500,
        "label": "500",
        "y_px": 318
      },
      {
        "frequency_hz": 1000,
        "label": "1k",
        "y_px": 269
      },
      {
        "frequency_hz": 2000,
        "label": "2k",
        "y_px": 220
      },
      {
        "frequency_hz": 5000,
        "label": "5k",
        "y_px": 156
      },
      {
        "frequency_hz": 10000,
        "label": "10k",
        "y_px": 107
      },
      {
        "frequency_hz": 20000,
        "label": "20k",
        "y_px": 58
      }
    ],
    "marks": [],
    "tool_file": {
      "_tag": "ToolFile",
      "name": "spectrogram_v2_v1_4fe0c540fe3ad271.png",
      "mimeType": "image/png",
      "encoding": "base64",
      "data": "<893588 base64 chars dropped>",
      "byteLength": 670189
    }
  }
}
loudness_timelineimac · 212 ms

Arguments

{
  "source": "$CLIP",
  "start_sec": 3,
  "end_sec": 9,
  "window_sec": 2
}

Result

{
  "ok": true,
  "data": {
    "source_path": "~/hill/gallery/tmp/R-tone/attempt2/tone-film/clip.mp4",
    "start_sec": 3,
    "end_sec": 9,
    "window_sec": 2,
    "bpm": null,
    "silence_threshold_dbfs": -60,
    "peak_dbfs": -4.168,
    "peak_sec": 8.234,
    "windows": [
      {
        "start_sec": 3,
        "end_sec": 5,
        "rms_dbfs": -24.349,
        "peak_dbfs": -11.48,
        "band_db": {
          "sub": -28.625,
          "low_mid": -35.248,
          "mid": -26.55,
          "high": -38.427,
          "air": -40.176
        },
        "spectral_centroid_hz": 1120.968,
        "silent": false
      },
      {
        "start_sec": 5,
        "end_sec": 7,
        "rms_dbfs": -19.462,
        "peak_dbfs": -5.136,
        "band_db": {
          "sub": -31.276,
          "low_mid": -28.706,
          "mid": -20.796,
          "high": -34.851,
          "air": -45.901
        },
        "spectral_centroid_hz": 986.788,
        "silent": false
      },
      {
        "start_sec": 7,
        "end_sec": 9,
        "rms_dbfs": -15.487,
        "peak_dbfs": -4.168,
        "band_db": {
          "sub": -30.371,
          "low_mid": -21.651,
          "mid": -13.37,
          "high": -33.159,
          "air": -39.957
        },
        "spectral_centroid_hz": 772.846,
        "silent": false
      }
    ],
    "outliers": [
      {
        "start_sec": 3,
        "end_sec": 5,
        "band": "low_mid",
        "direction": "cut",
        "energy_db": -35.248,
        "baseline_db": -25.178,
        "delta_db": -10.069,
        "min_delta_db": -10.069,
        "max_delta_db": -10.069,
        "energy_start_db": -35.248,
        "energy_end_db": -35.248,
        "entry_jump_db": null,
        "exit_jump_db": -6.542,
        "internal_range_db": 0,
        "trend_db": 0,
        "monotonic_fraction": 0,
        "shape": "transient",
        "window_count": 1,
        "fault_level": false,
        "classification": "informational",
        "ignored": false,
        "ignore_reason": null
      },
      {
        "start_sec": 3,
        "end_sec": 5,
        "band": "mid",
        "direction": "cut",
        "energy_db": -26.55,
        "baseline_db": -17.083,
        "delta_db": -9.467,
        "min_delta_db": -9.467,
        "max_delta_db": -9.467,
        "energy_start_db": -26.55,
        "energy_end_db": -26.55,
        "entry_jump_db": null,
        "exit_jump_db": -5.754,
        "internal_range_db": 0,
        "trend_db": 0,
        "monotonic_fraction": 0,
        "shape": "transient",
        "window_count": 1,
        "fault_level": false,
        "classification": "informational",
        "ignored": false,
        "ignore_reason": null
      },
      {
        "start_sec": 7,
        "end_sec": 9,
        "band": "low_mid",
        "direction": "boost",
        "energy_db": -21.651,
        "baseline_db": -31.977,
        "delta_db": 10.326,
        "min_delta_db": 10.326,
        "max_delta_db": 10.326,
        "energy_start_db": -21.651,
        "energy_end_db": -21.651,
        "entry_jump_db": 7.055,
        "exit_jump_db": null,
        "internal_range_db": 0,
        "trend_db": 0,
        "monotonic_fraction": 0,
        "shape": "transient",
        "window_count": 1,
        "fault_level": false,
        "classification": "informational",
        "ignored": false,
        "ignore_reason": null
      },
      {
        "start_sec": 7,
        "end_sec": 9,
        "band": "mid",
        "direction": "boost",
        "energy_db": -13.37,
        "baseline_db": -23.673,
        "delta_db": 10.303,
        "min_delta_db": 10.303,
        "max_delta_db": 10.303,
        "energy_start_db": -13.37,
        "energy_end_db": -13.37,
        "entry_jump_db": 7.426,
        "exit_jump_db": null,
        "internal_range_db": 0,
        "trend_db": 0,
        "monotonic_fraction": 0,
        "shape": "transient",
        "window_count": 1,
        "fault_level": false,
        "classification": "informational",
        "ignored": false,
        "ignore_reason": null
      }
    ],
    "ignore_ranges": [],
    "silence_gaps": [],
    "total": 3
  }
}

Question and answer

Question
There's a whine in the audio. When does it start and stop?
Answer
The loudness check's largest mid-band outlier runs from 7 s to 9 s, +10.3 dB against the other windows.
Tool returned
{"start_sec":7,"end_sec":9,"band":"mid","direction":"boost","energy_db":-13.37,"baseline_db":-23.673,"delta_db":10.303,"min_delta_db":10.303,"max_delta_db":10.303,"energy_start_db":-13.37,"energy_end_db":-13.37,"entry_jump_db":7.426,"exit_jump_db":null,"internal_range_db":0,"trend_db":0,"monotonic_fraction":0,"shape":"transient","window_count":1,"fault_level":false,"classification":"informational","ignored":false,"ignore_reason":null}
Truth
{"start":4.2,"end":7.2}
Check failedIoU 0.04, minimum 0.5

How it was checked

Truth from
constructed
Fixed at

Planted by this recipe before any tool ran: a 1000 Hz sine at gain 0.1 was mixed over the source's own audio from 4.2 s to 7.2 s in the first 12 s of the clip (the picture is not changed). The truth is that interval, and the tolerance 0.5 is the minimum overlap (IoU) with the answer. The call range, 3 s to 9 s in 2-second windows, is the fixed rule floor(start) minus 1 to floor(start) plus 5, written here before the run.

A script mixed a steady 1000 Hz tone for 3 seconds into this clip's own sound at a time it chose, and the tool gives a frequency band rather than a pitch, so the card gives the time only and no hertz value.

Try it yourself

Using agentic-video, look at the sound in my video from 3 to 9 seconds. Run spectrogram_window on that range, then run loudness_timeline on the same range with 2-second windows. Tell me the start and end, in seconds, of the mid-band outlier with the largest change.
  1. Get the .mcpb file and open it in Claude Desktop.
  2. Or: pip install agentic-video

Clip and licence

Licence
CC-BY-3.0
Author
Blender Foundation (mango.blender.org)
Source
commons.wikimedia.org
This file is licensed under the Creative Commons Attribution 3.0 Unported license.