feat(04-01): data model changes + HTML layout restructure

- Add CueModel.duration field (float = 4.0) for block length in seconds
- Add AnalysisBlock.calibration_offset field (float = 0.03) for librosa bias
- Replace main-area animation grid with timeline canvas layout (toolbar, canvas, inspector)
- Move ANIMATIONS panel into sidebar below DEVICES panel
- Add timeline-toolbar with zoom slider, beat offset input, snap toggle
This commit is contained in:
Claude
2026-04-06 23:30:55 +00:00
parent 22f31cdad0
commit 454fddc35e
2 changed files with 22 additions and 32 deletions

View File

@@ -16,6 +16,7 @@ class AudioRef(BaseModel):
class CueModel(BaseModel):
id: UUID = Field(default_factory=uuid4)
timestamp: float
duration: float = 4.0 # block length in seconds; defaults for old files
mode: Literal["animation", "frame_sequence"] = "animation"
animation: str | None = None
params: dict[str, Any] = Field(default_factory=dict)
@@ -31,6 +32,7 @@ class AnalysisBlock(BaseModel):
tempo_bpm: float | None = None
beat_times: list[float] = Field(default_factory=list)
onset_times: list[float] = Field(default_factory=list)
calibration_offset: float = 0.03 # seconds; compensates librosa latency bias
class ShowModel(BaseModel):