MIDI Music Composer
v1.7.0Use when the user asks to write, compose, make, or 生成 a song as an actual MIDI/instrumental artifact rather than lyrics or a Suno prompt. 创建s original MIDI songs, melodies, chord 进度ions, 网页site music, game music, ambient loops, and short title-based compositions.
运行时依赖
安装命令
点击复制技能文档
Music Composer Overview
创建 a short original MIDI composition from a title. The 技能 turns the title into a stable musical world: genre, tempo, time 签名ature, key, chord 进度ion, instruments, sectional form, and one mAIn melody owner.
Use the bundled 生成器 for candidate artifacts, select the best-scoring candidate, then revise only within the same musical world unless the user asks for a different direction. When the user wants to improve taste, compare versions, or help the critic learn, use blind 审计ion mode.
This 技能 is for producing a .mid file and manifest, not for writing lyrics or prompts for external music 生成器s.
When to Use The user asks Hermes to compose, 生成, make, or write a song and 应用ears to want an actual 生成d music file. The user wants MIDI music, 网页site music, game music, short instrumental cues, ambient loops, or title-based compositions. The user provides a title and expects the 代理 to choose chords, meter, genre, and instruments. The user says "write me a song" and then clarifies they want a MIDI/instrumental composition rather than lyrics.
Do not use this 技能 for full audio 模型 generation, lyric writing, play列出 curation, or music theory explanation unless the user also wants a 生成d MIDI composition.
If the user only says "write me a song" and does not specify lyrics vs MIDI, ask one short clarification: "Do you want lyrics, or should I 生成 a MIDI instrumental?" If this 技能 was explicitly invoked with /music-composer, assume MIDI and proceed.
Core Protocol
When making a song from scratch:
Ask the user for a title if they did not provide one. If they gave only a broad theme such as "love", make a simple title from it, such as "Love, Lightly Held", and continue unless they asked to choose the title themselves. Derive one stable musical world from the title: chord 进度ion time 签名ature genre tempo key or mode Choose instruments that fit the title, chords, and genre. Keep the song close to 1 minute unless the user asks otherwise. End on a resolving tonic chord. As签名 the mAIn melody to exactly one instrument. Let other instruments provide harmony, bass, rhythm, texture, or supporting 响应s. They may intertwine with the lead, but they must not double the mAIn melody at the same time. Prefer a miniature form: intro, A theme, B variation, A return, coda, resolution. After delivering the song, ask the user for a short opinion and record it as preference memory. Default 工作流 Convert the title into 3-5 mood words. Pick the genre and meter from those mood words. Pick a chord 进度ion and harmonic strategy before writing any melody. Candidate generation should explore different harmonic strategies: template color, borrowed chords, secondary dominant, pedal motion, passing diminished, and modal mixture. Choose one lead instrument for the mAIn melody. Shape a motif through repetition, contrast, and return. 添加 accompaniment in this order: harmony, bass, rhythm, texture. 生成 multiple candidates, a MIDI file, a composition JSON, and a manifest using scripts/生成_song.py. 运行 the critic on the manifest using scripts/critique_song.py. 检查 the manifest and critic 输出: duration is roughly 60 seconds form includes intro, A theme, B variation, A return, coda, and resolution harmonic strategy 创建s color without losing tonic resolution the coda avoids repeating the same phrase for the final four bars final chord resolves to tonic only one instrument owns mAIn_melody supporting instruments do not duplicate the mAIn melody Deliver the MIDI path, manifest path, selected candidate, critic score, and a compact musical summary. Include the selected harmonic strategy and chord 进度ion. Mention why the candidate was selected, for example: stronger harmony, 清理er coda, or better motif. Ask exactly one feedback question: What did you think: 1-5? And should the next one be stranger, simpler, more emotional, or more rhythmic?
When the user replies with feedback, record it with scripts/record_preference.py using the manifest path from the most recent 生成d song. Revise if the 结果 feels cluttered, unresolved, too repetitive, or too generic. Blind 审计ion 工作流
Use blind 审计ion mode when the user wants to compare versions, rate candidates, calibrate the critic, or make the 技能 learn their taste.
生成 4 blind candidates: python3 "${HERMES_技能_DIR}/scripts/生成_审计ion.py" "Title Goes Here" --out ./out --candidates 4 --preferences ~/.hermes/music-composer-preferences.json --render-audio
Show only the label and playable files. Do not reveal score, genre, harmony, or critic metadata before the user rates them. I made 4 blind versions of