feat: play moving-source acoustic timelines

This commit is contained in:
Codex
2026-08-28 16:23:26 +09:00
parent 01a37eac69
commit a54aa25cd9
8 changed files with 665 additions and 8 deletions
+2
View File
@@ -6,6 +6,8 @@
- `single-tone.scene.json`: 48 kHz, 0.25 s, 1 kHz tone 하나를 z=2 m 평면에 배치한 Scene
- `single-tone.experiment.json`: rectangular 192채널 배열, 900–1100 Hz band, 50×50 scan,
FFT 512 / hop 256, Auto backend를 쓰는 Experiment
- `moving-tone.scene.json`: 2초 동안 다섯 trajectory keyframe을 따라 이동하는 2 kHz tone Scene
- `moving-tone.experiment.json`: 라이브 준비 시간을 줄인 24×18 scan, FFT 256 / hop 128 Experiment
두 문서는 계약 버전 `1.0.0`이며 기본 Camera 실행, CPU golden test, CPU/WebGPU 비교와 benchmark가
같은 조건을 공유하도록 고정되어 있습니다. fixture를 바꿀 때는 <http://127.0.0.1:4173/tests/>의
@@ -0,0 +1,28 @@
{
"schemaVersion": "1.0.0",
"kind": "micarrsim.experiment",
"id": "moving-tone-live",
"name": "2 kHz 이동 음원 · 라이브 미리보기",
"arrayId": "rectangular-16x12",
"sceneId": "moving-tone",
"scan": {
"z": 2,
"xMin": -0.6,
"xMax": 0.6,
"yMin": -0.45,
"yMax": 0.45,
"columns": 24,
"rows": 18
},
"frequencyBands": [
{ "id": "tone-2k", "minHz": 1850, "maxHz": 2150, "color": "#58c7ff" }
],
"stft": { "fftSize": 256, "hopSize": 128, "window": "hann" },
"beamforming": {
"algorithm": "das",
"backend": "auto",
"minimumDistance": 0.01,
"normalization": "peak",
"dynamicRangeDb": 30
}
}
@@ -0,0 +1,32 @@
{
"schemaVersion": "1.0.0",
"kind": "micarrsim.scene",
"id": "moving-tone",
"name": "이동하는 2 kHz 음원",
"description": "라이브 타임라인과 trajectory 편집을 바로 확인하는 자유음장 예제",
"units": "m",
"sampleRate": 8000,
"duration": 2,
"speedOfSound": 343,
"seed": 20260828,
"mix": { "normalization": "none", "targetPeak": 0.95 },
"sources": [
{
"id": "moving-source-1",
"name": "움직이는 2 kHz tone",
"position": [-0.45, -0.2, 2],
"trajectory": [
{ "time": 0, "position": [-0.45, -0.2, 2] },
{ "time": 0.5, "position": [-0.22, 0.18, 2] },
{ "time": 1, "position": [0, 0.3, 2] },
{ "time": 1.5, "position": [0.24, 0.12, 2] },
{ "time": 2, "position": [0.45, -0.2, 2] }
],
"gainDb": -6,
"startTime": 0,
"duration": 2,
"signal": { "type": "tone", "frequency": 2000, "phaseDeg": 0 }
}
],
"ambient": []
}