{
"sources": [
{
"id": "mic1",
"type": "ffmpeg",
"cmd": [
"ffmpeg",
"-i",
"samples/OneDayHydrophone.flac",
"-ac",
"1",
"-ar",
"48000",
"-f",
"f32le",
"-"
],
"fs": 48000,
"chunk_size": 4096
}
]
"arrays": [
{
"id": "towed_array",
"inputs": ["mic1"],
"geometry": {
"spacing_m": 0.5,
"sound_speed": 1500
},
"beams": [
{ "id": "beam_-30", "angle": -30 },
{ "id": "beam_0", "angle": 0 },
{ "id": "beam_30", "angle": 30 }
]
}
]
"sensors": [
{
"id": "beam_0",
"type": "beam",
"array": "towed_array",
"pipeline": [
{
"op": "guard",
"name": "baseline",
"pipeline": [
{ "op": "debug" },
{ "op": "spectral_features" },
{ "op": "isolation_forest", "threshold": -0.1 },
{ "op": "temporal_context", "time": "1h" },
{
"op": "if_window_isolator",
"threshold": -0.15,
"min_duration": "1m"
},
{
"op": "impulse_isolator",
"threshold_mult": 10.0,
"window_sec": 5.0,
"min_impulses": 5
},
{ "op": "telemetry" },
{ "op": "forensic_summary" },
{
"op": "ring_buffer",
"seconds": 20
}
]
}
]
}
]
}