Compile a song spec into a FamiStudio project
compile_song_specConvert compact JSON song data into a complete FamiStudio project, automatically filling IDs, envelopes, and pattern tables for direct use with export, verification, and validation tools.
Instructions
Compile a compact JSON song specification (channels + notes) into a complete FamiStudio project object, optionally writing it to a .fms file. Object ids, the mandatory instrument envelope masks and the fixed 256-slot pattern tables are filled in automatically. The returned "project" can be passed straight to export_audio / verify_roundtrip / validate_fms.
Notes can be written two ways: absolute: {"channel":"Square1","notes":[{"time":0,"note":"C4","duration":8},{"time":8,"note":"E4"}]} grid: {"channel":"Square1","notes":["C4",null,null,null,"E4"]} // one entry per tick In grid form a note without "duration" sustains until the next filled cell. FamiStudio note names are one octave above standard pitch: its "C4" sounds ~523 Hz, so write melodies one octave below the pitch you hear in a tracker.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | Song specification: a project of one or more songs made of per-channel note tracks. | |
| outputPath | No |