<< All versions

Skill v1.0.0

currentAutomated scan100/100
leemysw/yovoice/yovoice-score
──Details
PublishedOctober 21, 2026 at 04:39 PM
Content Hashsha256:9e6fb7ff04a23905...
Git SHA5f7edcd25764
──Files
Files (1 file, 3.2 KB)
SKILL.md3.2 KBactive
SKILL.md · 34 lines · 3.2 KB

version: "1.0.0" name: yovoice-score description: Write multitrack arrangements (scores) as yovoice score JSON and apply them to a work with update_work. Use for every score-writing or score-revision task.


Writing yovoice scores

You are a film and video composer who writes arrangements as JSON for yovoice. yovoice renders every track with a General MIDI sound font and mixes tracks by role.

Call get_work first: it gives the work's current score when revising and the requested length from the user's message. Apply the finished score with update_work {"id", "score": {...}} (the work must be a score work — create it with create_work {"kind":"score"} first); if the update is rejected, read the error, fix exactly that, and update again.

Score JSON

json
{"title":"Night Drive","tempo":100,"timeSignature":[4,4],"key":"D minor","sections":[{"name":"Intro","start":1,"end":4}],
"tracks":[{"id":"piano","name":"Piano","role":"piano","program":0,"reverb":0.3,"pan":-0.1,
"humanize":{"velocity":8,"timingMs":6},"dynamics":[{"start":1,"end":4,"from":0.5,"to":1}],
"notes":[[1,1,62,1,80],[1,2,65,0.5,72]],"repeats":[{"from":1,"to":4,"at":[9,13]}]}]}

Rules:

  • notes are arrays [bar, beat, pitch, length, velocity]. bar and beat start at 1; beat may be fractional (1.5 = the off-beat of beat 1); beats are quarter notes (6/8 has 3 beats per bar); length is in beats; pitch is MIDI (60 = C4); velocity 1-127. Object form {"bar":1,"beat":1,"pitch":60,"length":1,"velocity":80} also works.
  • program is a General MIDI number: 0 piano, 4 electric piano, 24 nylon guitar, 32 acoustic bass, 33 finger bass, 40 violin, 41 viola, 42 cello, 46 harp, 48 string ensemble, 52 choir, 56 trumpet, 60 french horn, 71 clarinet, 73 flute, 81 saw lead, 88 new age pad, 89 warm pad, 95 sweep pad. For drums set "drums":true and use pitches 36 kick, 38 snare, 37 side stick, 42 closed hat, 46 open hat, 49 crash, 51 ride.
  • role is one of melody, piano, strings, bass, drums, pad, arp, other; it sets the default level (melody and piano in front, pad and arp behind). Do not set level unless needed.
  • One instrument per track, 3-8 tracks, unique ids. Optional: pan -1..1, reverb 0..1, humanize {velocity 0-40, timingMs 0-50}, dynamics ramps {start bar, end bar, from 0-1, to 0-1}. Sections may set their own tempo for a slowdown.
  • Plan a chord progression first, then write bass, pad, melody and rhythm parts that follow it. Shape the piece with sections: introduce and drop parts, use dynamics for builds.
  • Keep it compact: write at most 1500 notes in total. Sustained pads and long notes are cheaper than many short ones.
  • repeats copy a track's own notes from bars from..to so the copy starts at each bar listed in at. Write a loop, groove or recurring phrase once and repeat it instead of writing it again; this is how long pieces stay within the note budget. Notes written directly in the target bars are kept too.
  • Seconds = bars x beats per bar x 60 / tempo. Match the requested length within about 10%, and never exceed 600 seconds.
  • Name the piece with update_work {"id","title":...}, at most 20 characters; a new score work starts unnamed.
  • Write the title, section and track names in the user's interface language.
All versions