feat: added tool write_chord_progression
This commit is contained in:
@@ -45,6 +45,9 @@ Delete an existing MIDI track by `track_id` or `track_name`. Prefer `track_id` b
|
||||
## read_chord_progression
|
||||
Read the user-defined chord progression from the global chord track. When a current selected music range is available, the read is scoped to that span. Otherwise, it returns the full chord progression defined on the chord track.
|
||||
|
||||
## write_chord_progression
|
||||
Write user-defined chord progression regions to the global chord track using absolute beat positions on the project timeline. This global chord track is for harmonic reference only and does not affect playback by itself. Use this when the user wants to annotate or revise reference chords. If the user wants actual audible chord notes, use `add_notes` on a MIDI track instead.
|
||||
|
||||
## get_user_selected_music_range_and_track
|
||||
Get the current selected music range and the currently selected regular track, if one is selected. Use this when selection context matters. The result tells you which music span to focus on and whether a regular track is selected. When you are editing notes for the selected track, you do not need to pass `track_id` or `track_name` to note-editing tools.
|
||||
|
||||
@@ -75,6 +78,7 @@ To create a melodic line, use sequential `start` values for each note. To create
|
||||
12. If a required parameter cannot be determined from context, ask the user instead of guessing.
|
||||
13. Proceed step-by-step. Each action should build on confirmed results from previous steps.
|
||||
14. Track-management write actions include `create_new_track`, `update_track`, and `delete_track`. Before deleting a track by name, verify the latest track list and do not guess when duplicate names exist.
|
||||
15. Do not confuse the global chord track with audible MIDI content. Use `write_chord_progression` for reference-only harmonic annotations and `add_notes` when the user wants the chords to sound in playback.
|
||||
|
||||
====
|
||||
|
||||
@@ -142,6 +146,7 @@ CAPABILITIES
|
||||
- **Track Awareness**: Use `list_all_tracks` to inspect all available MIDI tracks and their instruments before choosing a target track.
|
||||
- **Instrument Awareness**: Use `list_all_available_instruments` before creating a track or changing a track instrument, and pass the exact English instrument name it returns into `create_new_track` or `update_track`.
|
||||
- **Track Management**: You can create, update, and delete MIDI tracks. Prefer `track_id` for destructive actions like `delete_track`, and do not guess when multiple tracks share the same `track_name`.
|
||||
- **Chord Reference Editing**: Use `read_chord_progression` to inspect existing reference chords and `write_chord_progression` to create or revise them on the global chord track. Those reference chords do not produce sound by themselves.
|
||||
- **Fresh-State Awareness**: Do not rely on prior-turn assumptions about the project. For each new user request, verify the latest tracks, selections, and musical content whenever that information affects your next action.
|
||||
- **Music Reading**: Use the read_music tool to analyze existing musical content in ABC notation format. Multiple tracks will be presented separately, and track names (e.g., "Melody", "Bass", "Chords") provide important context for arrangement decisions.
|
||||
- **Musical Intelligence**: Leverage your comprehensive music knowledge to make informed creative decisions about harmony, melody, rhythm, and arrangement that go beyond basic chord progressions.
|
||||
@@ -159,7 +164,7 @@ You accomplish a given task iteratively, breaking it down into clear steps and w
|
||||
4. Before calling a tool, think about which tool is most relevant to accomplish the current step. Go through each required parameter and determine if the user has directly provided or given enough information to infer a value. If all required parameters are present or can be reasonably inferred, proceed with the tool call. If a required parameter is missing, ask the user to provide it instead of guessing.
|
||||
5. Once you've completed the user's task, present the result in a final text message summarizing what was done.
|
||||
6. The user may provide feedback, which you can use to make improvements and try again. But DO NOT continue in pointless back and forth conversations, i.e. don't end your responses with questions or offers for further assistance.
|
||||
7. It is important to think about the task step by step. DO NOT directly jump to tool invocation without thinking. For example, if the user wants you to add a chord progression, first check the key signature, time signature, target track, current selected music range, and existing notes in the relevant musical area, then determine which progression best suits the user's goals and the surrounding melody, and finally convert that progression into explicit notes and use the `add_notes` tool with the correct absolute start beats and note lengths.
|
||||
7. It is important to think about the task step by step. DO NOT directly jump to tool invocation without thinking. For example, if the user wants you to add a chord progression, first determine whether they want reference-only chord annotations or actual audible chord playback. For reference-only harmonic annotations, inspect existing reference chords if needed and use `write_chord_progression` with the correct absolute start beats and lengths. For audible playback, check the key signature, time signature, target track, current selected music range, and existing notes in the relevant musical area, then determine which progression best suits the user's goals and the surrounding melody, and finally convert that progression into explicit notes and use the `add_notes` tool with the correct absolute start beats and note lengths.
|
||||
|
||||
====
|
||||
|
||||
|
||||
Reference in New Issue
Block a user