livepilot 1.26.0 → 1.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +1 -1
  3. package/installer/codex.js +87 -9
  4. package/livepilot/.Codex-plugin/plugin.json +8 -0
  5. package/livepilot/.claude-plugin/plugin.json +8 -0
  6. package/livepilot/.mcp.json +8 -0
  7. package/livepilot/agents/livepilot-producer/AGENT.md +314 -0
  8. package/livepilot/commands/arrange.md +47 -0
  9. package/livepilot/commands/beat.md +81 -0
  10. package/livepilot/commands/evaluate.md +49 -0
  11. package/livepilot/commands/memory.md +22 -0
  12. package/livepilot/commands/mix.md +47 -0
  13. package/livepilot/commands/perform.md +42 -0
  14. package/livepilot/commands/session.md +13 -0
  15. package/livepilot/commands/sounddesign.md +58 -0
  16. package/livepilot/rubrics/default_preset_check.md +82 -0
  17. package/livepilot/rubrics/layer_accumulation.md +79 -0
  18. package/livepilot/rubrics/layer_precision.md +79 -0
  19. package/livepilot/rubrics/modulation_presence.md +63 -0
  20. package/livepilot/rubrics/sound_design_depth.md +40 -0
  21. package/livepilot/skills/livepilot-arrangement/SKILL.md +164 -0
  22. package/livepilot/skills/livepilot-composition-engine/SKILL.md +151 -0
  23. package/livepilot/skills/livepilot-composition-engine/references/form-patterns.md +97 -0
  24. package/livepilot/skills/livepilot-composition-engine/references/transition-archetypes.md +102 -0
  25. package/livepilot/skills/livepilot-core/SKILL.md +261 -0
  26. package/livepilot/skills/livepilot-core/references/ableton-workflow-patterns.md +831 -0
  27. package/livepilot/skills/livepilot-core/references/affordances/_schema.md +160 -0
  28. package/livepilot/skills/livepilot-core/references/affordances/devices/auto-filter.yaml +133 -0
  29. package/livepilot/skills/livepilot-core/references/affordances/devices/chorus-ensemble.yaml +91 -0
  30. package/livepilot/skills/livepilot-core/references/affordances/devices/compressor.yaml +98 -0
  31. package/livepilot/skills/livepilot-core/references/affordances/devices/convolution-reverb.yaml +113 -0
  32. package/livepilot/skills/livepilot-core/references/affordances/devices/corpus.yaml +84 -0
  33. package/livepilot/skills/livepilot-core/references/affordances/devices/drift.yaml +105 -0
  34. package/livepilot/skills/livepilot-core/references/affordances/devices/echo.yaml +108 -0
  35. package/livepilot/skills/livepilot-core/references/affordances/devices/eq-eight.yaml +95 -0
  36. package/livepilot/skills/livepilot-core/references/affordances/devices/glue-compressor.yaml +88 -0
  37. package/livepilot/skills/livepilot-core/references/affordances/devices/granulator-iii.yaml +104 -0
  38. package/livepilot/skills/livepilot-core/references/affordances/devices/hybrid-reverb.yaml +83 -0
  39. package/livepilot/skills/livepilot-core/references/affordances/devices/operator.yaml +98 -0
  40. package/livepilot/skills/livepilot-core/references/affordances/devices/ping-pong-delay.yaml +104 -0
  41. package/livepilot/skills/livepilot-core/references/affordances/devices/poli.yaml +98 -0
  42. package/livepilot/skills/livepilot-core/references/affordances/devices/saturator.yaml +98 -0
  43. package/livepilot/skills/livepilot-core/references/affordances/devices/shifter.yaml +77 -0
  44. package/livepilot/skills/livepilot-core/references/affordances/devices/simpler.yaml +113 -0
  45. package/livepilot/skills/livepilot-core/references/affordances/devices/utility.yaml +95 -0
  46. package/livepilot/skills/livepilot-core/references/affordances/devices/vinyl-distortion.yaml +92 -0
  47. package/livepilot/skills/livepilot-core/references/affordances/devices/wavetable.yaml +98 -0
  48. package/livepilot/skills/livepilot-core/references/artist-vocabularies.md +389 -0
  49. package/livepilot/skills/livepilot-core/references/automation-atlas.md +272 -0
  50. package/livepilot/skills/livepilot-core/references/concepts/_schema.md +158 -0
  51. package/livepilot/skills/livepilot-core/references/concepts/artists/akufen.yaml +116 -0
  52. package/livepilot/skills/livepilot-core/references/concepts/artists/aphex-twin.yaml +133 -0
  53. package/livepilot/skills/livepilot-core/references/concepts/artists/arca-sophie.yaml +131 -0
  54. package/livepilot/skills/livepilot-core/references/concepts/artists/autechre.yaml +130 -0
  55. package/livepilot/skills/livepilot-core/references/concepts/artists/basic-channel.yaml +140 -0
  56. package/livepilot/skills/livepilot-core/references/concepts/artists/basinski.yaml +126 -0
  57. package/livepilot/skills/livepilot-core/references/concepts/artists/boards-of-canada.yaml +124 -0
  58. package/livepilot/skills/livepilot-core/references/concepts/artists/burial.yaml +127 -0
  59. package/livepilot/skills/livepilot-core/references/concepts/artists/com-truise-tycho.yaml +121 -0
  60. package/livepilot/skills/livepilot-core/references/concepts/artists/daft-punk.yaml +117 -0
  61. package/livepilot/skills/livepilot-core/references/concepts/artists/dj-premier-rza.yaml +119 -0
  62. package/livepilot/skills/livepilot-core/references/concepts/artists/gas.yaml +134 -0
  63. package/livepilot/skills/livepilot-core/references/concepts/artists/hawtin.yaml +127 -0
  64. package/livepilot/skills/livepilot-core/references/concepts/artists/isolee-luomo.yaml +130 -0
  65. package/livepilot/skills/livepilot-core/references/concepts/artists/j-dilla.yaml +133 -0
  66. package/livepilot/skills/livepilot-core/references/concepts/artists/jeff-mills.yaml +120 -0
  67. package/livepilot/skills/livepilot-core/references/concepts/artists/johannsson-richter.yaml +132 -0
  68. package/livepilot/skills/livepilot-core/references/concepts/artists/madlib.yaml +124 -0
  69. package/livepilot/skills/livepilot-core/references/concepts/artists/moodymann-theo-parrish.yaml +121 -0
  70. package/livepilot/skills/livepilot-core/references/concepts/artists/oneohtrix-point-never.yaml +126 -0
  71. package/livepilot/skills/livepilot-core/references/concepts/artists/photek-source-direct.yaml +120 -0
  72. package/livepilot/skills/livepilot-core/references/concepts/artists/rashad-spinn-traxman.yaml +122 -0
  73. package/livepilot/skills/livepilot-core/references/concepts/artists/robert-henke.yaml +113 -0
  74. package/livepilot/skills/livepilot-core/references/concepts/artists/shackleton.yaml +124 -0
  75. package/livepilot/skills/livepilot-core/references/concepts/artists/skream-mala.yaml +119 -0
  76. package/livepilot/skills/livepilot-core/references/concepts/artists/stars-of-the-lid.yaml +119 -0
  77. package/livepilot/skills/livepilot-core/references/concepts/artists/tim-hecker.yaml +122 -0
  78. package/livepilot/skills/livepilot-core/references/concepts/artists/villalobos.yaml +135 -0
  79. package/livepilot/skills/livepilot-core/references/concepts/genres/ambient.yaml +137 -0
  80. package/livepilot/skills/livepilot-core/references/concepts/genres/boom_bap.yaml +124 -0
  81. package/livepilot/skills/livepilot-core/references/concepts/genres/deep-minimal.yaml +130 -0
  82. package/livepilot/skills/livepilot-core/references/concepts/genres/deep_house.yaml +130 -0
  83. package/livepilot/skills/livepilot-core/references/concepts/genres/detroit_techno.yaml +116 -0
  84. package/livepilot/skills/livepilot-core/references/concepts/genres/disco.yaml +123 -0
  85. package/livepilot/skills/livepilot-core/references/concepts/genres/downtempo.yaml +129 -0
  86. package/livepilot/skills/livepilot-core/references/concepts/genres/drone.yaml +133 -0
  87. package/livepilot/skills/livepilot-core/references/concepts/genres/drum-and-bass.yaml +119 -0
  88. package/livepilot/skills/livepilot-core/references/concepts/genres/dub-techno.yaml +132 -0
  89. package/livepilot/skills/livepilot-core/references/concepts/genres/dub.yaml +129 -0
  90. package/livepilot/skills/livepilot-core/references/concepts/genres/dubstep.yaml +120 -0
  91. package/livepilot/skills/livepilot-core/references/concepts/genres/experimental.yaml +136 -0
  92. package/livepilot/skills/livepilot-core/references/concepts/genres/footwork.yaml +119 -0
  93. package/livepilot/skills/livepilot-core/references/concepts/genres/hip-hop.yaml +132 -0
  94. package/livepilot/skills/livepilot-core/references/concepts/genres/house.yaml +126 -0
  95. package/livepilot/skills/livepilot-core/references/concepts/genres/hyperpop.yaml +128 -0
  96. package/livepilot/skills/livepilot-core/references/concepts/genres/idm.yaml +134 -0
  97. package/livepilot/skills/livepilot-core/references/concepts/genres/lo_fi.yaml +129 -0
  98. package/livepilot/skills/livepilot-core/references/concepts/genres/microhouse.yaml +138 -0
  99. package/livepilot/skills/livepilot-core/references/concepts/genres/minimal-techno.yaml +116 -0
  100. package/livepilot/skills/livepilot-core/references/concepts/genres/modern-classical.yaml +123 -0
  101. package/livepilot/skills/livepilot-core/references/concepts/genres/soul.yaml +125 -0
  102. package/livepilot/skills/livepilot-core/references/concepts/genres/synthwave.yaml +123 -0
  103. package/livepilot/skills/livepilot-core/references/concepts/genres/techno.yaml +123 -0
  104. package/livepilot/skills/livepilot-core/references/concepts/genres/trap.yaml +120 -0
  105. package/livepilot/skills/livepilot-core/references/concepts/genres/uk-garage.yaml +121 -0
  106. package/livepilot/skills/livepilot-core/references/device-atlas/00-index.md +110 -0
  107. package/livepilot/skills/livepilot-core/references/device-atlas/distortion-and-character.md +687 -0
  108. package/livepilot/skills/livepilot-core/references/device-atlas/drums-and-percussion.md +753 -0
  109. package/livepilot/skills/livepilot-core/references/device-atlas/dynamics-and-punch.md +525 -0
  110. package/livepilot/skills/livepilot-core/references/device-atlas/eq-and-filtering.md +402 -0
  111. package/livepilot/skills/livepilot-core/references/device-atlas/midi-tools.md +963 -0
  112. package/livepilot/skills/livepilot-core/references/device-atlas/movement-and-modulation.md +874 -0
  113. package/livepilot/skills/livepilot-core/references/device-atlas/space-and-depth.md +571 -0
  114. package/livepilot/skills/livepilot-core/references/device-atlas/spectral-and-weird.md +714 -0
  115. package/livepilot/skills/livepilot-core/references/device-atlas/synths-native.md +953 -0
  116. package/livepilot/skills/livepilot-core/references/device-knowledge/00-index.md +34 -0
  117. package/livepilot/skills/livepilot-core/references/device-knowledge/automation-as-music.md +204 -0
  118. package/livepilot/skills/livepilot-core/references/device-knowledge/chains-genre.md +173 -0
  119. package/livepilot/skills/livepilot-core/references/device-knowledge/creative-thinking.md +211 -0
  120. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-distortion.md +188 -0
  121. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-space.md +162 -0
  122. package/livepilot/skills/livepilot-core/references/device-knowledge/effects-spectral.md +229 -0
  123. package/livepilot/skills/livepilot-core/references/device-knowledge/instruments-synths.md +243 -0
  124. package/livepilot/skills/livepilot-core/references/genre-vocabularies.md +382 -0
  125. package/livepilot/skills/livepilot-core/references/m4l-devices.md +352 -0
  126. package/livepilot/skills/livepilot-core/references/memory-guide.md +178 -0
  127. package/livepilot/skills/livepilot-core/references/midi-recipes.md +402 -0
  128. package/livepilot/skills/livepilot-core/references/mixing-patterns.md +578 -0
  129. package/livepilot/skills/livepilot-core/references/overview.md +300 -0
  130. package/livepilot/skills/livepilot-core/references/pack-knowledge.md +319 -0
  131. package/livepilot/skills/livepilot-core/references/sample-manipulation.md +724 -0
  132. package/livepilot/skills/livepilot-core/references/sound-design-deep.md +140 -0
  133. package/livepilot/skills/livepilot-core/references/sound-design.md +393 -0
  134. package/livepilot/skills/livepilot-corpus-builder/SKILL.md +379 -0
  135. package/livepilot/skills/livepilot-creative-director/SKILL.md +455 -0
  136. package/livepilot/skills/livepilot-creative-director/references/anti-repetition-rules.md +214 -0
  137. package/livepilot/skills/livepilot-creative-director/references/creative-brief-template.md +222 -0
  138. package/livepilot/skills/livepilot-creative-director/references/hybrid-compilation.md +185 -0
  139. package/livepilot/skills/livepilot-creative-director/references/move-family-diversity-rule.md +258 -0
  140. package/livepilot/skills/livepilot-creative-director/references/phase-6-execution.md +409 -0
  141. package/livepilot/skills/livepilot-creative-director/references/the-four-move-rule.md +192 -0
  142. package/livepilot/skills/livepilot-devices/SKILL.md +213 -0
  143. package/livepilot/skills/livepilot-devices/references/load_browser_item-uri-grammar.md +82 -0
  144. package/livepilot/skills/livepilot-evaluation/SKILL.md +195 -0
  145. package/livepilot/skills/livepilot-evaluation/references/capability-modes.md +176 -0
  146. package/livepilot/skills/livepilot-evaluation/references/evaluation-contracts.md +121 -0
  147. package/livepilot/skills/livepilot-evaluation/references/memory-promotion.md +110 -0
  148. package/livepilot/skills/livepilot-mix-engine/SKILL.md +136 -0
  149. package/livepilot/skills/livepilot-mix-engine/references/mix-critics.md +143 -0
  150. package/livepilot/skills/livepilot-mix-engine/references/mix-moves.md +105 -0
  151. package/livepilot/skills/livepilot-mixing/SKILL.md +157 -0
  152. package/livepilot/skills/livepilot-notes/SKILL.md +130 -0
  153. package/livepilot/skills/livepilot-performance-engine/SKILL.md +122 -0
  154. package/livepilot/skills/livepilot-performance-engine/references/performance-safety.md +98 -0
  155. package/livepilot/skills/livepilot-release/SKILL.md +151 -0
  156. package/livepilot/skills/livepilot-sample-engine/SKILL.md +117 -0
  157. package/livepilot/skills/livepilot-sample-engine/references/sample-critics.md +87 -0
  158. package/livepilot/skills/livepilot-sample-engine/references/sample-philosophy.md +51 -0
  159. package/livepilot/skills/livepilot-sample-engine/references/sample-techniques.md +131 -0
  160. package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +225 -0
  161. package/livepilot/skills/livepilot-sound-design-engine/references/patch-model.md +119 -0
  162. package/livepilot/skills/livepilot-sound-design-engine/references/sound-design-critics.md +118 -0
  163. package/livepilot/skills/livepilot-wonder/SKILL.md +143 -0
  164. package/m4l_device/LivePilot_Analyzer.amxd +0 -0
  165. package/m4l_device/LivePilot_Elektron.amxd +0 -0
  166. package/m4l_device/LivePilot_Elektron.maxpat +758 -0
  167. package/m4l_device/livepilot_bridge.js +1 -1
  168. package/m4l_device/livepilot_elektron_bridge.js +82 -0
  169. package/mcp_server/__init__.py +1 -1
  170. package/mcp_server/composer/develop/apply.py +1 -1
  171. package/mcp_server/composer/full/apply.py +32 -6
  172. package/mcp_server/m4l_bridge.py +5 -0
  173. package/mcp_server/runtime/execution_router.py +6 -0
  174. package/mcp_server/runtime/mcp_dispatch.py +18 -0
  175. package/mcp_server/runtime/remote_commands.py +2 -0
  176. package/mcp_server/server.py +11 -7
  177. package/package.json +20 -5
  178. package/remote_script/LivePilot/__init__.py +1 -1
  179. package/remote_script/LivePilot/server.py +63 -2
  180. package/requirements.txt +3 -3
  181. package/server.json +3 -3
@@ -0,0 +1,164 @@
1
+ ---
2
+ name: livepilot-arrangement
3
+ description: Constructive arrangement — actually building song structure in Ableton. Use when the user asks to "arrange", "structure a song", "add an intro", "build a verse", "create sections", "scene to arrangement", "record to arrangement", or wants to place clips on the timeline or organize scenes. For analysis of existing structure ("improve transitions", "detect motifs", "analyze composition"), use livepilot-composition-engine instead.
4
+ ---
5
+
6
+ # Arrangement — Song Structure and Session Organization
7
+
8
+ Organize clips into scenes, build arrangements on the timeline, navigate with cue points, and record performances in Ableton Live.
9
+
10
+ ## Session View vs Arrangement View
11
+
12
+ Ableton has two complementary views:
13
+
14
+ - **Session view** — a grid of clip slots organized by track (columns) and scene (rows). Clips loop independently. Fire scenes to trigger rows of clips simultaneously. Use for jamming, live performance, and building ideas.
15
+ - **Arrangement view** — a linear timeline where clips play in sequence from left to right. Use for final song structure, recording automation, and export.
16
+
17
+ Use `back_to_arranger` to switch from session playback to arrangement playback. When session clips are playing, they override arrangement content on their tracks.
18
+
19
+ ## Scene Workflow
20
+
21
+ Scenes are horizontal rows in session view. Each scene can trigger all its clips at once.
22
+
23
+ ### Creating and Managing Scenes
24
+
25
+ - `create_scene(index)` — insert a new scene at the given position
26
+ - `set_scene_name(scene_index, name)` — name scenes after song sections: "Intro", "Verse 1", "Chorus", "Bridge", "Drop", "Outro"
27
+ - `set_scene_color(scene_index, color_index)` — color-code sections (0-69 palette). Use consistent colors: green for verses, red for choruses, blue for bridges.
28
+ - `set_scene_tempo(scene_index, tempo)` — set a per-scene tempo change (triggers when scene fires)
29
+ - `duplicate_scene(scene_index)` — copy a scene for variations. Duplicate, rename, then modify clips in the copy.
30
+ - `delete_scene(scene_index)` — remove a scene
31
+
32
+ ### Firing and Monitoring
33
+
34
+ - `fire_scene(scene_index)` — launch all clips in a scene simultaneously
35
+ - `fire_scene_clips(scene_index)` — launch only the clips that exist in a scene (skips empty slots)
36
+ - `stop_all_clips` — stop everything in session view
37
+ - `get_playing_clips` — see which clips are currently playing across all tracks
38
+
39
+ ### Scene Inspection
40
+
41
+ - `get_scenes_info` — list all scenes with names, tempos, and colors
42
+ - `get_scene_matrix` — see which clips exist in which slots across the entire session grid. Returns a track-by-scene matrix showing clip presence, names, and states.
43
+
44
+ ## Arrangement View
45
+
46
+ Build linear song structures on the timeline.
47
+
48
+ ### Creating Arrangement Clips
49
+
50
+ - `create_arrangement_clip(track_index, clip_slot_index, start_time, length)` — duplicate a session clip into Arrangement View at a specific beat position
51
+ - `create_native_arrangement_clip(track_index, start_time, length)` — create arrangement clip with full automation envelope (12.1.10+)
52
+ - `set_arrangement_clip_name(track_index, clip_index, name)` — name arrangement clips for clarity
53
+ - `force_arrangement()` — force all tracks to play from arrangement (not session clips)
54
+
55
+ ### Arrangement Notes
56
+
57
+ - `add_arrangement_notes(track_index, clip_index, notes)` — write MIDI notes into an arrangement clip
58
+ - `get_arrangement_notes(track_index, clip_index)` — read notes from an arrangement clip
59
+ - `remove_arrangement_notes(track_index, clip_index, start_time, duration, pitch_start, pitch_end)` — clear notes in a region
60
+ - `remove_arrangement_notes_by_id(track_index, clip_index, note_ids)` — surgical deletion
61
+ - `modify_arrangement_notes(track_index, clip_index, modifications)` — update existing notes by ID
62
+ - `duplicate_arrangement_notes(track_index, clip_index, time_offset)` — copy notes forward
63
+ - `transpose_arrangement_notes(track_index, clip_index, semitones, start_time, duration)` — pitch shift a region
64
+
65
+ ### Arrangement Clips Inspection
66
+
67
+ - `get_arrangement_clips(track_index)` — list all clips on a track's arrangement timeline with positions, lengths, and names
68
+
69
+ ### Arrangement Automation
70
+
71
+ - `set_arrangement_automation(track_index, parameter_name, points)` — write automation on the arrangement timeline. Points are `[{time, value}, ...]` pairs at absolute beat positions.
72
+
73
+ **Live LOM limitation (BUG-2026-04-22 #1b):** `set_arrangement_automation` only succeeds on arrangement clips that *already* have an envelope for the target parameter (typically clips recorded interactively or duplicated from session). For programmatically-created arrangement clips (via `create_arrangement_clip` or `create_native_arrangement_clip`), the Python LOM does NOT expose a path to create new automation breakpoints — this is a Live API limitation, not a LivePilot bug. Live's docs explicitly state `Clip.automation_envelope` returns None for arrangement clips, and only `value_at_time` exists for reading.
74
+
75
+ When the tool errors with "Direct envelope access is not supported for programmatically-created arrangement clips," reach for one of two patterns:
76
+
77
+ 1. **Session-clip + record path** (programmatic + manual record):
78
+ - Build the automation on a session clip via `set_clip_automation` (works fully — session clips support `create_automation_envelope`).
79
+ - Tell the user: arm the track, switch to arrangement view, start recording at the target position, fire the session clip, stop recording when it completes. Live records the parameter changes into the arrangement track lane.
80
+
81
+ 2. **Section-clip path** (no envelope, stepped values):
82
+ - Slice the arrangement into multiple clips at section boundaries.
83
+ - Set per-clip volume / parameter values per section using regular `set_track_volume` or `set_device_parameter` between clips.
84
+ - Trades smooth automation for discrete steps but works fully programmatically.
85
+
86
+ For sweeps that absolutely need to be smooth and programmatic (filter cutoff arcs, send swells), use pattern 1 and accept that the agent has to hand off the record step to the user.
87
+
88
+ ## Navigation
89
+
90
+ ### Transport Position
91
+
92
+ - `jump_to_time(beat_time)` — move the playback cursor to a specific beat position on the timeline
93
+ - `start_playback` / `stop_playback` / `continue_playback` — basic transport control
94
+
95
+ ### Cue Points
96
+
97
+ Cue points are markers on the arrangement timeline for quick navigation.
98
+
99
+ - `toggle_cue_point` — add or remove a cue point at the current playback position
100
+ - `get_cue_points` — list all cue points with their beat positions and names
101
+ - `jump_to_cue(cue_index)` — jump to a specific cue point by index
102
+
103
+ Use cue points to mark section boundaries: place one at beat 0 (Intro), beat 16 (Verse), beat 48 (Chorus), etc. This makes navigation fast during arrangement.
104
+
105
+ ## Recording
106
+
107
+ ### Live Recording
108
+
109
+ - `start_recording` — begin recording into the arrangement or session (depends on which view is active and which tracks are armed)
110
+ - `stop_recording` — stop recording
111
+ - `capture_midi` — retroactive MIDI capture. Grabs whatever was played on armed MIDI tracks even if recording was not active. Live 12 keeps a buffer of recent MIDI input.
112
+
113
+ ### Recording Workflow
114
+
115
+ 1. Arm tracks with `set_track_arm(track_index, arm=true)`
116
+ 2. Optionally set input monitoring with `set_track_input_monitoring(track_index, mode)`
117
+ 3. `start_recording` — records into arrangement if in arrangement view, into session slots if in session view
118
+ 4. Play or trigger clips
119
+ 5. `stop_recording` — finalize the take
120
+
121
+ For retroactive capture: if the user just played something without recording, call `capture_midi` immediately to grab it.
122
+
123
+ ## Section Analysis
124
+
125
+ - `get_section_graph` — infer song structure from scene names and clip arrangement. Returns a graph of sections with their relationships, durations, and transitions.
126
+ - `analyze_composition` — deeper structural analysis including phrase lengths, repetition patterns, and harmonic arcs
127
+ - `get_phrase_grid` — see how phrases align across tracks
128
+
129
+ Use `get_section_graph` to understand the current form before adding new sections. It helps identify what is missing (e.g., no bridge, no outro, chorus only appears once).
130
+
131
+ ## Common Song Structures
132
+
133
+ When building arrangements, use these as starting templates:
134
+
135
+ - **Pop:** Intro - Verse - Chorus - Verse - Chorus - Bridge - Chorus - Outro
136
+ - **EDM/Dance:** Intro (16 bars) - Build - Drop (16) - Break (8) - Build - Drop (16) - Outro (8)
137
+ - **Hip-hop:** Intro - Verse (16 bars) - Hook (8) - Verse (16) - Hook (8) - Bridge - Hook - Outro
138
+ - **Lo-fi:** Intro (4) - A (8) - B (8) - A (8) - B variation (8) - Outro (4)
139
+
140
+ Adapt these to the user's needs. Use `plan_arrangement` from the planner domain for algorithmic structure suggestions, and `transform_section` to create variations of existing sections.
141
+
142
+ ## Section-Aware Sample Roles
143
+
144
+ `plan_arrangement` returns `sample_hints` per section — suggested roles for sample-based elements:
145
+
146
+ | Section | Default Hints |
147
+ |---------|--------------|
148
+ | Intro | `texture_bed`, `fill_one_shot` |
149
+ | Verse | `texture_bed`, `fill_one_shot` |
150
+ | Build | `transition_fx`, `texture_bed` |
151
+ | Chorus/Drop | `hook_sample`, `break_layer`, `fill_one_shot` |
152
+ | Bridge/Breakdown | `texture_bed`, `transition_fx` |
153
+ | Outro | `texture_bed`, `fill_one_shot` |
154
+
155
+ Use `plan_sample_workflow(section_type=..., desired_role=...)` to generate concrete sample plans for each role. Use `plan_slice_workflow(intent=..., target_section=...)` for slice-based patterns.
156
+
157
+ ## When to hand off to composition-engine
158
+
159
+ This skill covers **constructive** arrangement. For analytical work — scoring a proposed move, analyzing transitions, inspecting the harmony field, detecting motifs, transforming sections — invoke `livepilot-composition-engine`. Don't re-implement its tools here; they are documented there with full context.
160
+
161
+ ## Reference
162
+
163
+ Supporting references live in the `livepilot-core` skill's `references/` directory:
164
+ - `livepilot-core/references/ableton-workflow-patterns.md` — session/arrangement workflows, song structures by genre, follow actions, clip launch modes, export settings
@@ -0,0 +1,151 @@
1
+ ---
2
+ name: livepilot-composition-engine
3
+ description: Compositional analysis, transition planning, and translation checking — the diagnostic/analytical side of form. Use when the user wants to "analyze song structure", "improve transitions", "check song flow", "detect motifs", "transform a section", or "score phrase impact". For constructive arrangement work (arrange, build a verse, add an intro, scene-to-arrangement), use livepilot-arrangement instead.
4
+ ---
5
+
6
+ # Composition Engine — Structure, Transitions, and Form
7
+
8
+ The composition engine operates three sub-engines: compositional analysis (structure and motifs), transition planning (section-to-section flow), and translation checking (how the mix survives different playback systems). It also provides form-level tools for emotional arc and arrangement planning.
9
+
10
+ ## Atlas-first reflex (v1.23.x+, MANDATORY before any creative move)
11
+
12
+ Before producing ANY creative response, query the user's atlas overlays. The corpus contains 337 entries across 3 namespaces, plus 3,917 parameter-level JSON sidecars — far richer than anything inferable from training data alone.
13
+
14
+ **Query order:**
15
+
16
+ 1. **`extension_atlas_search(namespace="packs", query=<intent>)`** — pack identity, signature workflows, hidden gems, anti-patterns, notable presets with macro deep-data, demo projects
17
+ 2. **`extension_atlas_search(namespace="packs", query=<intent>, entity_type="cross_pack_workflow")`** — multi-pack signature recipes (15 entries: dub-techno spectral drone bed, BoC decayed pad, Mica Levi orchestral dread, etc.)
18
+ 3. **`extension_atlas_search(namespace="m4l-devices", query=<sonic descriptor>)`** — M4L instrument/effect/midi-effect device catalog (155 entries)
19
+ 4. **`atlas_search(...)`** — bundled atlas (Core Library, fallback)
20
+
21
+ **Multi-grain traversal:**
22
+
23
+ When an aesthetic-level query lands a pack-level result, AUTO-DRILL: pack → its `notable_presets` → those preset macro states → load via `load_browser_item`. Don't stop at "I found a relevant pack" — drill to the actual preset/parameter level the user can immediately use.
24
+
25
+ ```python
26
+ # Example — agent received "evolving polyrhythmic ambient at 120 BPM, build the section arc"
27
+ hit = extension_atlas_search(namespace="packs", query="evolving polyrhythmic ambient generative")
28
+ # → midi_tools_by_philip_meyer + drone_lab + cross-pack workflows for generative form
29
+
30
+ workflow = extension_atlas_get("packs", "dub_techno_spectral_drone_bed")
31
+ # → reveals signal_flow: HDG → PitchLoop89 cross-feedback → Convolution Reverb
32
+
33
+ drone_lab = extension_atlas_get("packs", "drone_lab")
34
+ # → notable_presets reveals Razor Wire Drone with macros Filter Control=108, Movement=53...
35
+
36
+ # Now plan the section/transition with concrete preset names + macro values, not vague descriptions
37
+ ```
38
+
39
+ **When the user mentions a producer or pack by name:**
40
+
41
+ - "BoC sublime pad" → atlas hit: `boc_decayed_pad` cross-pack-workflow + `inspired_by_nature` pack
42
+ - "Henke spectral chain" → atlas hit: `pitchloop89` + `granulator_iii` + 2 Henke cross-pack workflows
43
+ - "Mica Levi orchestral dread" → atlas hit: `mica_levi_orchestral_dread` workflow + the orchestral suite packs
44
+ - "Drone Lab" → atlas hit: `drone_lab` pack + 4 Drone Lab demo_project entries
45
+
46
+ The atlas knows the user's installed library at parameter depth. **Producer-anchor queries land specific moves, not vague descriptions.**
47
+
48
+ **Anti-pattern surfacing:**
49
+
50
+ Every pack entry has an `anti_patterns` body field listing "don't reach for this when X." Surface the relevant anti-pattern when proposing a move so the user knows the move's domain. (E.g. "Drone Lab is sustain-only — don't use for percussive content.")
51
+
52
+ **For deliberately rule-breaking creative requests** ("eclectic", "ignore the limits", "weird combo", "mix incompatible aesthetics"): enter **Eclectic Mode** inside this composition loop. Anti-patterns become prompt tension rather than guardrails: keep hard safety and protected-user constraints, then pair one normally-avoided formal idea with one identity-preserving anchor. Do not route to a private or missing skill.
53
+
54
+ ## Composition Sub-Engine
55
+
56
+ Analyze and transform the structural elements of a track.
57
+
58
+ ### Analysis Flow
59
+
60
+ 1. Call `analyze_composition` — runs a full structural pass returning sections, motifs, phrase grid, and form classification
61
+ 2. Call `get_section_graph` — returns the section map: intro, verse, chorus, bridge, drop, breakdown, outro with bar ranges
62
+ 3. Call `get_phrase_grid` — returns the rhythmic and melodic phrase boundaries within each section
63
+ 4. Call `get_motif_graph` — returns detected melodic and rhythmic motifs with their occurrence locations and transformation history
64
+
65
+ ### Transformation
66
+
67
+ Once you understand the structure:
68
+
69
+ - `transform_motif(motif_id, transformation)` — apply a transformation to a detected motif. Transformations include: inversion, retrograde, augmentation, diminution, transposition, fragmentation, sequence
70
+ - `transform_section(section_id, transformation)` — apply a structural transformation to an entire section. Transformations include: extend, compress, strip_down, build_up, reharmonize, rhythmic_variation
71
+
72
+ Always capture before state with `get_notes` or `get_arrangement_notes` before transforming. Evaluate the result with `evaluate_composition_move`.
73
+
74
+ ### Motif Work
75
+
76
+ The motif graph tracks recurring melodic and rhythmic patterns:
77
+
78
+ - Each motif has an `id`, `pitches`, `rhythms`, `first_occurrence`, and `occurrences` list
79
+ - Related motifs are linked by transformation edges (e.g., motif_2 is an inversion of motif_1)
80
+ - Use the motif graph to ensure thematic coherence — transformations should derive from existing material
81
+
82
+ ## Transition Sub-Engine
83
+
84
+ Plan and execute smooth transitions between sections.
85
+
86
+ ### Transition Flow
87
+
88
+ 1. `analyze_transition(from_section, to_section)` — examine the current transition between two sections. Returns energy delta, timbral shift, harmonic distance, and detected issues
89
+ 2. `plan_transition(from_section, to_section)` — generate a transition plan based on detected issues. Returns an ordered list of moves (filter sweeps, risers, drum drops, fills, automation curves)
90
+ 3. `score_transition(from_section, to_section)` — rate the current transition quality (0.0-1.0) with breakdown by energy, harmony, rhythm, and timbral continuity
91
+ 4. Execute the planned moves using appropriate tools (`set_clip_automation`, `add_notes`, `set_device_parameter`, `apply_automation_shape`)
92
+ 5. `evaluate_composition_move` — judge whether the transition improved
93
+
94
+ See `references/transition-archetypes.md` for common transition patterns and when to use each.
95
+
96
+ ### Transition Principles
97
+
98
+ - Energy changes should be gradual unless a hard cut is intentional
99
+ - Harmonic transitions need a pivot chord or shared tone
100
+ - Rhythmic transitions benefit from a fill or break at the boundary
101
+ - Timbral shifts should start 1-2 bars before the section change
102
+ - The most effective transitions prepare the listener's ear before the change lands
103
+
104
+ ## Translation Sub-Engine
105
+
106
+ Check how the mix translates across playback systems.
107
+
108
+ ### Translation Flow
109
+
110
+ 1. `check_translation` — run translation analysis on the current mix
111
+ 2. `get_translation_issues` — return specific problems:
112
+ - **mono_collapse**: elements that disappear or phase-cancel in mono playback
113
+ - **spectral_consistency**: frequency balance shifts between monitoring contexts
114
+ - **low_end_translation**: bass content that may vanish on small speakers
115
+ - **loudness_consistency**: perceived loudness variation across systems
116
+
117
+ Translation issues feed back into the mix engine — a mono collapse issue becomes a stereo_width critic issue for the mix loop.
118
+
119
+ ## Form Sub-Engine
120
+
121
+ High-level arrangement and emotional arc tools.
122
+
123
+ ### Form Flow
124
+
125
+ 1. `get_emotional_arc` — map the energy/intensity curve across the entire track, identifying peaks, valleys, and plateaus
126
+ 2. `plan_arrangement` — generate an arrangement plan based on the current form, suggesting section order, lengths, and energy targets
127
+ 3. `apply_gesture_template` — apply a predefined arrangement gesture (build, drop, breakdown, outro_fade, intro_build) to a bar range
128
+
129
+ See `references/form-patterns.md` for common song forms and energy curves by genre.
130
+
131
+ ### Arrangement Principles
132
+
133
+ - Every section should have a clear purpose: introduce, develop, contrast, resolve, release
134
+ - The energy arc should have at least one clear peak — flat energy across the entire track lacks emotional impact
135
+ - Contrast drives interest: loud/quiet, dense/sparse, bright/dark
136
+ - Repetition builds familiarity but needs variation to avoid fatigue — transform on repeat, do not copy verbatim
137
+ - Transitions are as important as sections — budget time for them in the arrangement
138
+
139
+ ## Combining Sub-Engines
140
+
141
+ A typical compositional improvement session:
142
+
143
+ 1. `analyze_composition` to understand current structure
144
+ 2. `get_emotional_arc` to see the energy shape
145
+ 3. Identify the weakest section or transition
146
+ 4. Use the transition sub-engine to fix section boundaries
147
+ 5. Use motif transformations to add thematic development
148
+ 6. `check_translation` to verify the changes survive mono/small speakers
149
+ 7. `evaluate_composition_move` after each change
150
+
151
+ Always work one change at a time. Verify and evaluate before moving to the next intervention.
@@ -0,0 +1,97 @@
1
+ # Form Patterns Reference
2
+
3
+ Common song forms and energy curves used by `plan_arrangement` and `get_emotional_arc`.
4
+
5
+ ## Standard Forms
6
+
7
+ ### verse_chorus (Pop / Rock / R&B)
8
+ ```
9
+ Intro (4-8 bars) -> Verse 1 (8-16) -> Pre-Chorus (4-8) -> Chorus 1 (8-16)
10
+ -> Verse 2 (8-16) -> Pre-Chorus (4-8) -> Chorus 2 (8-16)
11
+ -> Bridge (8) -> Final Chorus (8-16) -> Outro (4-8)
12
+ ```
13
+ Energy curve: low -> medium -> high -> medium -> high -> peak -> fade
14
+
15
+ ### drop_form (EDM / House / Techno)
16
+ ```
17
+ Intro (16-32 bars) -> Build 1 (8-16) -> Drop 1 (16-32)
18
+ -> Breakdown (8-16) -> Build 2 (8-16) -> Drop 2 (16-32)
19
+ -> Outro (8-16)
20
+ ```
21
+ Energy curve: building -> peak -> valley -> building -> peak -> fade
22
+
23
+ ### through_composed (Ambient / Cinematic / Experimental)
24
+ ```
25
+ Section A (variable) -> Section B (variable) -> Section C (variable) -> ...
26
+ ```
27
+ No repeating sections. Energy curve follows the narrative arc. Each section introduces new material.
28
+
29
+ ### aaba (Jazz / Classic Pop)
30
+ ```
31
+ A (8 bars) -> A (8) -> B (8) -> A (8)
32
+ ```
33
+ Energy curve: establish -> reinforce -> contrast -> resolve
34
+
35
+ ### rondo (Classical-influenced / Progressive)
36
+ ```
37
+ A -> B -> A -> C -> A -> D -> A
38
+ ```
39
+ Recurring theme (A) alternates with contrasting episodes. Energy varies per episode.
40
+
41
+ ### loop_form (Hip-Hop / Trap / Lo-Fi)
42
+ ```
43
+ Intro (4-8) -> Loop (4-8 bars, repeated throughout)
44
+ Verse 1 over loop -> Hook over loop -> Verse 2 over loop -> Hook -> Outro
45
+ ```
46
+ Energy modulation through vocal density and arrangement layering, not harmonic progression.
47
+
48
+ ## Energy Curve Targets
49
+
50
+ The emotional arc maps energy on a 0.0-1.0 scale across the track duration.
51
+
52
+ ### Peak-Valley Model
53
+ Most effective for dance and pop music:
54
+ - At least one peak reaching 0.8-1.0
55
+ - At least one valley dropping to 0.2-0.4
56
+ - Energy delta between adjacent sections: 0.15-0.4
57
+ - Gradual builds (4+ bars) feel more natural than instant jumps
58
+
59
+ ### Plateau Model
60
+ For ambient, drone, and minimalist music:
61
+ - Energy stays within a narrow band (0.3-0.6)
62
+ - Changes are subtle: timbral, textural, not dynamic
63
+ - Slow evolution over minutes, not bars
64
+
65
+ ### Escalation Model
66
+ For builds, film scoring, and progressive tracks:
67
+ - Monotonically increasing energy from 0.1 to 1.0
68
+ - Each section is louder, denser, or brighter than the previous
69
+ - No significant drops until the final resolution
70
+
71
+ ## Section Energy Targets by Genre
72
+
73
+ | Section | Pop | EDM | Hip-Hop | Ambient |
74
+ |---------|-----|-----|---------|---------|
75
+ | Intro | 0.2 | 0.3 | 0.3 | 0.2 |
76
+ | Verse | 0.4 | 0.4 | 0.5 | 0.3 |
77
+ | Pre-Chorus | 0.6 | 0.6 | — | — |
78
+ | Chorus/Drop | 0.8 | 1.0 | 0.7 | 0.5 |
79
+ | Bridge | 0.5 | — | 0.4 | 0.4 |
80
+ | Breakdown | — | 0.2 | — | 0.3 |
81
+ | Outro | 0.3 | 0.2 | 0.2 | 0.1 |
82
+
83
+ ## Section Length Guidelines
84
+
85
+ - **4 bars**: minimum for a recognizable section (short intros, transitions)
86
+ - **8 bars**: standard phrase length, feels complete for most sections
87
+ - **16 bars**: full development, typical for verses and choruses in electronic music
88
+ - **32 bars**: extended development for drops, long builds, or ambient passages
89
+ - **Odd lengths** (6, 10, 12 bars): create subtle tension and asymmetry — use intentionally
90
+
91
+ ## Arrangement Planning Rules
92
+
93
+ 1. Start from the emotional peak and work backwards — place the climax first, then build toward it
94
+ 2. Every section serves one of five functions: introduce, develop, contrast, climax, resolve
95
+ 3. Do not repeat a section more than 3 times without significant variation
96
+ 4. The first 30 seconds determine whether the listener stays — make them count
97
+ 5. Endings matter — an abrupt end can be intentional, but a trailing reverb wash is rarely wrong
@@ -0,0 +1,102 @@
1
+ # Transition Archetypes Reference
2
+
3
+ Common transition patterns returned by `plan_transition` and usable with `apply_gesture_template`.
4
+
5
+ ## Energy-Up Transitions
6
+
7
+ ### riser_sweep
8
+ A filter or noise sweep that builds energy into the next section.
9
+
10
+ - Duration: 2-8 bars
11
+ - Implementation: ascending automation on filter cutoff (20% to 100%) plus optional white noise riser
12
+ - Best for: verse-to-chorus, breakdown-to-drop
13
+ - Tools: `set_clip_automation`, `apply_automation_shape(track_index, clip_index, parameter_type="device", curve_type="exponential", start=0, end=1)`
14
+
15
+ ### drum_build
16
+ Progressive addition of percussion layers leading to the downbeat.
17
+
18
+ - Duration: 2-4 bars
19
+ - Implementation: add hi-hat rolls (increasing density), snare fills, kick pattern intensification
20
+ - Best for: pre-chorus builds, intro-to-verse
21
+ - Tools: `add_notes` for fill patterns, `set_track_volume` automation for gradual volume increase
22
+
23
+ ### harmonic_tension
24
+ Build tension through suspended or unresolved harmony before resolving at the section boundary.
25
+
26
+ - Duration: 1-4 bars
27
+ - Implementation: sus4 or dominant 7th chord sustained over the transition, resolving on beat 1 of the new section
28
+ - Best for: verse-to-chorus, bridge-to-final-chorus
29
+ - Tools: `modify_notes` to alter chord voicings, `add_notes` for tension tones
30
+
31
+ ### stacking
32
+ Gradually add instrumental layers, one per bar or phrase, building density.
33
+
34
+ - Duration: 4-16 bars
35
+ - Implementation: unmute tracks in sequence (percussion first, then bass, then harmony, then leads)
36
+ - Best for: intro builds, post-breakdown rebuilds
37
+ - Tools: `set_clip_automation` on track volume, `set_track_mute` for discrete layer adds
38
+
39
+ ## Energy-Down Transitions
40
+
41
+ ### strip_down
42
+ Remove elements one by one to reduce energy before a quieter section.
43
+
44
+ - Duration: 2-8 bars
45
+ - Implementation: mute layers in reverse order of importance (effects first, then leads, then harmony, keeping bass and kick last)
46
+ - Best for: chorus-to-verse, pre-breakdown
47
+ - Tools: `set_track_mute`, `set_track_volume` automation with gradual decrease
48
+
49
+ ### filter_close
50
+ Low-pass filter sweep closing down to muffle the sound.
51
+
52
+ - Duration: 2-4 bars
53
+ - Implementation: descending automation on master or bus filter cutoff (100% to 20-30%)
54
+ - Best for: section endings, transitions to breakdowns
55
+ - Tools: `set_clip_automation`, `apply_automation_shape(track_index, clip_index, parameter_type="device", curve_type="exponential", start=1, end=0)`
56
+
57
+ ### reverb_wash
58
+ Increase reverb wet level to blur the previous section into the next.
59
+
60
+ - Duration: 1-2 bars
61
+ - Implementation: automate send level to reverb return (0% to 60-80%), then cut dry signal on beat 1
62
+ - Best for: hard section changes where you want continuity of space
63
+ - Tools: `set_track_send` automation, `set_clip_automation`
64
+
65
+ ## Neutral Transitions
66
+
67
+ ### hard_cut
68
+ Instant transition with no preparation. The contrast itself creates impact.
69
+
70
+ - Duration: 0 bars (instantaneous)
71
+ - Implementation: no transition processing — the sections simply abut
72
+ - Best for: drop entries after silence, genre-specific style (punk, some electronic)
73
+ - Constraint: works best when the energy delta is extreme (silence to loud, or vice versa)
74
+
75
+ ### crossfade
76
+ Gradual overlap of outgoing and incoming sections.
77
+
78
+ - Duration: 1-4 bars
79
+ - Implementation: outgoing section fades out while incoming fades in, overlapping by the crossfade duration
80
+ - Best for: ambient, cinematic, smooth genre transitions
81
+ - Tools: `set_clip_automation` on track volumes with opposing curves
82
+
83
+ ### fill_break
84
+ A drum fill followed by a brief silence (1-2 beats) before the new section.
85
+
86
+ - Duration: 1 bar
87
+ - Implementation: drum fill on the last bar, then all instruments drop for 1-2 beats, new section enters on beat 3 or 4
88
+ - Best for: rock, pop, funk section transitions
89
+ - Tools: `add_notes` for the fill, `set_track_mute` or volume automation for the gap
90
+
91
+ ## Choosing the Right Archetype
92
+
93
+ | From -> To | Recommended | Alternative |
94
+ |------------|-------------|-------------|
95
+ | Intro -> Verse | stacking | drum_build |
96
+ | Verse -> Chorus | riser_sweep, drum_build | harmonic_tension |
97
+ | Chorus -> Verse | strip_down | filter_close |
98
+ | Verse -> Bridge | harmonic_tension | strip_down |
99
+ | Bridge -> Final Chorus | riser_sweep + drum_build | harmonic_tension |
100
+ | Chorus -> Breakdown | strip_down, hard_cut | filter_close |
101
+ | Breakdown -> Drop | riser_sweep | drum_build + stacking |
102
+ | Any -> Outro | strip_down, reverb_wash | filter_close |