The Time Window dialog is Kirra’s timing-and-vibration analysis surface. It groups seven tabs over a shared blast-pattern scope so you can move between event histograms, frequency content, waveform synthesis, and detune actions without losing the selection you’re analysing.
The dialog is opened from the Analyse toolbar (the Time Window, FFT, Spectrum, Seed, Forward Array, Detune and Constrain button — see Analyse Toolbar).
The Time Window tab — histogram of detonation events with chart-mode selector, Time Window slider, Time Offset slider, and the in-app Tips panel.
Every tab shares the same wrapper:
| Region | Purpose |
|---|---|
| Title bar | Always reads Time Window. Dock, pin, minimise, and close controls on the right |
| Blast Patterns (Time Window scope) | Per-entity checkboxes — picks which blast patterns feed every tab in the dialog. The header notes Scopes every Time Window tab (Time Window, IDI, Spectrum, Synthesis, Forward Array, Detune pool). Independent of the Voronoi filter. |
| Tabs | Time Window, IDI, Spectrum, Synthesis, Forward Array, Detune, Constrain |
| Tab body | Chart + tab-specific controls |
| Tips panel | Collapsible help text written into the app, specific to the active tab |
| Footer buttons | Bake Delay, Refresh, Close, Apply (the Apply button is renamed Apply Detune on the Detune tab) |
The scope panel is independent of the Voronoi monitor filter — what you tick here is what every chart in the dialog operates on.
Histogram of detonation events across time. Each bar is one Time Window bin.

| Control | Purpose |
|---|---|
| Chart Mode | Choose how each event is weighted: Surface Hole Count, Measured / Mass per Hole, or Deck Count / Mass per Deck |
| Time Window slider | Bin width in milliseconds. Default shown above is 8 ms |
| Time Offset slider | Shifts the bins along the time axis. Default 0 ms |
| Rangeslider under the chart | Zoom into a specific period; pan/zoom icons on the right work too |
A tall bar = many deck events in one Time Window slot. For ground-vibration purposes, aim to keep any single bin’s mass below the site’s max-instantaneous-charge (MIC) limit.
Δt between each event and its predecessor, plotted as a stem at the event’s fire time on the x-axis. Tall stems = real gaps (e.g. between blasts or rows). Short stems = the dense fringe of intra-blast intervals.

| Control | Purpose |
|---|---|
| Level | Granularity of the interval calculation. The screenshot shows Hole |
Bands map vibration-band frequencies to Δt: green (Δt < 25 ms, > 40 Hz, USBM safe-zone) sits at the bottom; amber (Δt 25-67 ms, 15-40 Hz commercial resonance) above it; then warmer amber (67-200 ms, 5-15 Hz residential); and red (> 200 ms, < 5 Hz) higher still. Stems whose tops sit inside the residential / low-freq stripes are complaint-drivers.
Click any stem to highlight the pair of holes producing that interval (the firing hole and its predecessor) on the 2D and 3D canvas. Click again to clear.
FFT of the impulse train built from fire times. Each Hz bin’s magnitude is how strongly that frequency is “stamped” into the pattern.

| Control | Purpose |
|---|---|
| Level | Source granularity — Hole in the screenshot |
| Sample (Hz) | FFT resolution. 1000 Hz = 1 ms bin resolution. Rarely needs changing |
| Max (Hz) | Upper frequency displayed. Shrink to zoom in on the structural-resonance band |
| Mass (checkbox) | Mass-weighted. Scales each impulse by hole/deck charge — shows energy spectrum rather than event-count spectrum |
| Log Y (checkbox) | Log Y axis — reveals secondary harmonics the fundamental would otherwise dwarf |
| Band | Label | Typical concern |
|---|---|---|
| Pink/red | Low freq | Below structural resonance — building sway |
| Amber | Residential | 5-15 Hz residential building resonance |
| Light amber | Commercial | Commercial structures, 15-40 Hz |
| Green | Safe zone | Above structural resonance |
The peak readout at the bottom (e.g. peaks: 91.8 Hz, 2.9 Hz, 183.6 Hz) lists the strongest peaks across the displayed range.
Two stacked panels: top shows the single seed wavelet (the shape stamped at each deck); bottom shows the superposition of that seed at every deck’s fire time — the trace a monitor would record. Peak of the bottom panel estimates predicted PPV.

| Control | Purpose |
|---|---|
| Seed | Source wavelet shape. Options include Two-term P+S (monitor path), Ricker (acausal), Damped sinusoid (causal), Berlage (causal), plus loaded seed files. The three buttons next to the dropdown are seed-library actions [VERIFY: button labels for the three icons next to the Seed dropdown] |
| fDom (Hz) | Dominant frequency of the seed |
| Dur (ms) | Duration of the seed window |
| ξ | Damping parameter (active for damped seeds) |
| Amp | Amplitude scale |
| Site law (PPV) | Site-law profile used for amplitude scaling |
| Monitor | The Voronoi monitor that defines the receptor position and site-law constants |
| Superposition | Linear or Non-Linear (Blair & Minchinton) |
| η (non-linear only) | Non-linearity exponent. Range slider with numeric readout |
| s_P (m) (non-linear only) | P-wave saturation distance override |
The red line under the seed selector reports the current physics, e.g. twoterm seed • fP 30 / fS 18 Hz • 235 decks • peak 26.05(mm/s) @ 1182 ms • non-linear: η=2.0 · s_P=18.10 m (override) • path: Vp 5000 / Vs 2900 m/s @ TEST.
Three-component (L / T / V) wave synthesis at a monitor with optional Love-wave packet in the T component. The chart stacks L (longitudinal / radial), T (transverse), and V (vertical) with the peak of each labelled.

Love settings now live on the monitor itself — open Voronoi Options, expand the monitor card, expand the Love wave block. Enable, then tune Factor (PPV multiplier), f Love (Hz, usually 1-5), and v Love (m/s, 400-1500). The Forward Array tab re-runs automatically when those values change.
Bottom band reports peaks and risk metrics in this order:
L peak • T peak • V peak • PVS (peak vector sum @ time) • PoE (probability of exceedance with V_β / σ) • Pol θ (geometric polarisation angle) • Contributors (number of decks summed)
The polarisation Pol θ is reported as geom (signed) — for example Pol θ: -13.4° (geom -116.4°).
Love waves are horizontally polarised shear waves trapped in a surface layer (Love 1911). They have no vertical component and decay as 1/√r (geometric) rather than 1/r — so at distance, especially over weathered highwalls, they can dominate. Per-monitor lets one receptor model heavy surface coupling while another (e.g. solid floor) doesn’t.
Apply a small random offset to detonator timings to spread frequency-domain energy. Reduces tonal peaks that would otherwise couple into structural resonance.

| Control | Purpose |
|---|---|
| Type | Electronic or Nonel — chooses which timing field the dither writes to |
| Scope | All visible, Selected, or one Entity — limits which holes are affected |
| Algorithm | Uniform ±N or other distribution. The chart previews the staged Δt distribution |
| N (ms) | Magnitude of the dither |
| Decimals | Rounding (the screenshot shows 0 (integer)) |
| Seed | RNG seed for reproducibility (default 42) |
| Refresh icon next to Seed | Re-rolls the seed and re-previews |
| Apply Detune | Commits the staged dither (the right-hand footer button changes from Apply to Apply Detune on this tab) |
primer.timeOffsetMs (electronic) or hole.timingDelayMilliseconds (nonel). Tracked in the UndoManager — Ctrl+Z reverts the whole batch.Reset offsets — zeroes all electronic timeOffsetMs on scope. Also a single undoable action.
| After preview the dialog reports *Previewed N detonators on M holes • mean | Δt | X ms, max Y ms — click Apply to commit*. |
Event-rate enforcement — flag events that fall inside a rolling window (preview, with Before and After counts in the legend). The current screenshot is small; the controls visible are Scope, Level, Window (ms), Max events, and Max move (ms).

[SCREENSHOT NEEDED: high-resolution Constrain tab so each control and its tooltip are legible]
From the in-app Tips visible in the screenshot:
Electronic detonators only. Nonel (shock-tube) connectors cannot be freely detuned below their palette values — their delays come in discrete product steps (9/17/25/42/etc) so a >50 ms mechanical solder, so the tool simply ignores non-electronic primers.
The constrain operation appears to detect and reduce window violations by rescheduling electronic detonators within an allowable jitter (Max move (ms)) so that no rolling-window slot exceeds Max events. The chart shows the rolling-window event count before and after, and tall green stems are violations.
timeOffsetMs and is undoable as one batch)The Bake Delay button at the bottom of the dialog folds any active electronic offsets (timeOffsetMs) and detune/constrain results into the underlying timing field so the staged values become the new baseline.
This is the same Bake-onto-Electronic action used in the Connect Toolbar.
[VERIFY: exact behaviour of Bake Delay button when triggered from the Time Window dialog footer vs the Connect toolbar]
timeOffsetMs is written