Create FLP Project
Procedure
Read the AI-first workflow.
Choose one execution mode for the task: MCP tools when the
music2dawserver is connected, otherwise the Music2DAW CLI. Usemusic2dawwhen the release bundle is installed; in a source checkout, usedotnet run --project src/Music2Daw.Cli --in its place.Inspect the proposed structural template with MCP
inspect_flpor CLImusic2daw inspect <template.flp>; never assume channel, pattern, PPQ, playlist IDs, or plugin behavior. ReviewpluginStateTextHints,isLikelySequenced, andsequenceRiskReasonfor every instrument channel.Create a dedicated folder under
projects/<song-slug>/fromtemplates/flp-project/.Copy the structural FLP to
base-template.flp. Never edit the original source or this local base in place.Write
song-brief.yamlbefore notes. Define title, concept, tempo, key, meter, sections, roles, and mix intent.Write
edit-request.jsonusing zero-based IDs and project ticks. Replace every inherited note-bearing pattern/channel pair and replace the entire playlist so no prior composition remains.Build with CLI:
music2daw edit <base-template.flp> <song.flp> <edit-request.json>Or call MCP
edit_flpwith the same source, output, and deserialized request content. Keepedit-request.jsonas the source of truth in either mode.Inspect the output and export its MIDI/manifest bundle with the same mode. Verify tempo, names, note counts, playlist count, plugin initialization and parameter hashes, and source immutability.
In a source checkout, run
dotnet test. Then launch the resulting FLP for an audible check.Record assumptions, execution mode, and limitations in the song README.
Composition Rules
- Compose original melodies and arrangements; do not imitate a named song or artist closely.
- Keep pitches in MIDI range 0-127, velocity 1-127, pan 0-127, and lengths positive.
- Derive bar length as
PPQ * 4for 4/4; do not hardcode 384 unless PPQ is 96. - Give each instrument one clear role and leave register space between bass, harmony, lead, and accents.
- Do not assign a likely sequenced preset to chords, bass, lead, or counter-melody unless its internal rhythm is an intentional part of the composition. Prefer a state with a pitched/static preset hint for written note lines.
- Use section-level contrast through density, register, rhythm, and orchestration.
- Preserve opaque plugin states unless deliberately copying an existing state to another channel.