18 lines
754 B
Markdown
18 lines
754 B
Markdown
|
|
# Project format
|
||
|
|
|
||
|
|
Project persistence is not implemented yet. Before implementation, define a
|
||
|
|
versioned format with stable IDs for tracks, nodes, clips, connections, and
|
||
|
|
parameters.
|
||
|
|
|
||
|
|
Requirements:
|
||
|
|
- reject malformed, truncated, unsupported, or unreasonable input safely;
|
||
|
|
- validate sizes before allocation;
|
||
|
|
- store external audio assets separately from project metadata;
|
||
|
|
- define missing-asset behavior;
|
||
|
|
- never execute code during loading;
|
||
|
|
- perform file I/O only off the audio thread;
|
||
|
|
- save atomically using a temporary file and a safe rename;
|
||
|
|
- add explicit migration code when the format changes.
|
||
|
|
|
||
|
|
Choose a simple format after evaluating dependency, robustness, and human
|
||
|
|
inspectability trade-offs. Document the schema before treating it as stable.
|