typed op• Data kinds: signal → signal
• Call: fullseye.apply(img, "tb_weighting_response", a=0.5, b=0.5) (the 2-D model is one image plus two scalar knobs a,b∈[0,1])

*The figure is the actual output on a synthetic 128×128 input. Left: input, right: output. Point clouds are drawn as a top-down scatter (brightness = z), 1-D series as a line plot, volumes as the maximum-intensity projection along z, videos as the middle frame, complex images as magnitude; return values that are not pictures are shown as the values themselves.*
*Knob a does not change the output (measured: identical at 0.1 / 0.5 / 0.9).*
*Knob b does not change the output (measured: identical at 0.1 / 0.5 / 0.9).*
Stages (the ops that come before → this op, left to right):
▸ tb_weighting_response: stages (docs site)
On other images (synthetic scene / photo / coins. Top row: inputs, bottom row: their outputs. Knobs at default):
▸ tb_weighting_response: other inputs (docs site)
The A / C / Z frequency-weighting curve, in dB, at the given frequencies.
Computed from the four pole frequencies that *define* the networks and
normalised so that the response at 1 kHz is exactly 0 dB by construction
— the curve is divided by its own value at 1 kHz rather than having a
published offset constant added to it. That is why the tests can assert
equality at 1 kHz to 0.0 rather than to a tolerance, and why no standard's
table of attenuations appears anywhere in this repository.
The response depends on `f only through f**2`, so it is an even
function and negative frequencies are evaluated at `|f|` — that is the
definition, not a repair. `f = 0` has zero response (both curves have a
zero at DC) and is reported as `floor_db rather than -inf`.
Measured (computed, then printed — these are outputs, not transcriptions):
======== ========= =========
f (Hz) A (dB) C (dB)
======== ========= =========
10 -70.4304 -14.3300
31.5 -39.5250 -3.0305
100 -19.1428 -0.2996
1000 0.0000 0.0000
4000 0.9633 -0.8260
10000 -2.4918 -4.4055
20000 -9.3469 -11.2786
======== ========= =========
`A(1000) and C(1000) are exactly 0.0` — the Python float, not a
rounding — because of the construction. The low-frequency asymptote is a
closed form and is asserted in the tests: `A` falls at exactly
80 dB/decade as `f -> 0 (f**4 over three constants) and C` at
exactly 40 dB/decade (`f**2`). Measured between 0.001 and 0.01 Hz with the
floor lowered out of the way: 79.999998 and 39.999998 dB/decade.
That last caveat is real and is why the floor is an argument: with the
default `floor_db = -200` the A curve reaches the floor below about
0.35 Hz (unfloored, `A(0.1) = -228.55` dB), so the asymptote measured
against the default floor comes out as 0.0 dB/decade between 0.01 and
0.1 Hz — a clamp, correctly reported, that would look like a bug if the
floor were not visible.
Returns a float64 array the same shape as *freqs*.
Raises `ValueError`: a non-1-D / non-finite / complex / masked
`freqs, an unknown kind`.
Typed bridge of the acoustics op `weighting_response into the 2-D evolution registry: the same implementation, called under the op(v, a, b) convention. This op has no tunable parameter; a and b` are unused.
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
The program below has been verified to run (same input as the figure). In Studio's help this block becomes buttons that load and run it on the spot.
img_to_signal 0.50 0.50 tb_weighting_response 0.50 0.50
▸ Load this pipeline · Load & run
The examples below call the underlying ledger op weighting_response. This bridge op is the same implementation adapted to the fn(v, a, b) convention, so the behaviour carries over unchanged (only the call form differs).
• acoustic_condition_monitoring — py -3.11 examples/acoustic_condition_monitoring.py
signal as input)identity · tb_create_funct_1d_array · tb_smooth_funct_1d_gauss · tb_smooth_funct_1d_mean · tb_derivate_funct_1d · tb_integrate_funct_1d · tb_zero_crossings_funct_1d · tb_abs_funct_1d
typed)tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal · tb_voxel_grid_downsample
*Provenance: ops.py — 2D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.