Skip to main content
MIDI Editor

MIDI Editor(ComfyTV)

这个节点做什么

MIDI Editor(MIDI 编辑器) 是一个浏览器内钢琴卷帘,工作在 时间域(秒) 而非拍 —— 横向网格是真实时间,因此它是为编辑实际 MIDI 演奏而生的。你在网格上绘制音符,把它们组织成 MIDI 通道(每个带一个 General MIDI 乐器,另有一个专用鼓通道),工作时可静音/独奏通道, 并塑造力度。 ▶ Run 在后端写出一个标准 MIDI 文件;midi 输出是一个指向导出 .midCOMFYTV_AUDIO 负载。卷帘为空时运行会以 “the piano roll is empty” 失败。 你可以把接入的 MIDI 文件(midi 输入,COMFYTV_AUDIO)导入卷帘 —— 它的通道、程序与 tempo map 会被载入,随即可编辑。

编辑器

卡片由工具栏加钢琴卷帘组成,以时间域布局。 工具行。
  • Draw / Select(绘制 / 选择) —— 两种编辑模式。
    • 绘制:在网格上按住拖动创建音符;拖动决定其时长,放置时会发声。
    • 选择:拖出选框框选(Shift 追加);点击音符即抓取。
  • Play(▶ / ■) —— 用内置振荡器/鼓合成器以前瞻调度播放卷帘;一条绿色播放头实时扫过, 被静音的通道保持无声。
  • Snap(吸附) —— 时间吸附:free、10ms、50ms、100ms、250ms1s
  • Undo(↩)撤销Clear channel(清空通道),以及(接入 MIDI 文件时)Import MIDI(导入 MIDI)。导入错误显示在这里。
通道行。 每个 MIDI 通道 是一个 chip,显示一块颜色样与其编号(Ch1…),或用 🥁 表示鼓通道(通道 10 / 索引 9)。每个 chip:
  • 点击 chip 把该通道设为 激活
  • S 独奏该通道(静音其它所有),
  • 音量图标 静音/取消静音,
  • 悬停某 chip 会在卷帘里只高亮该通道(其它变暗)。 添加通道,+🥁 添加鼓通道(仅当尚无鼓通道时), 移除激活通道。对非鼓通道, 一个 Instrument 下拉框设置 General MIDI 程序。
钢琴卷帘。 一个可滚动网格,左侧是钢琴键盘(点击某键试听;C 音有标注;鼓通道显示 GM 鼓 名)。顶部一条时间标尺以秒标记(刻度间距随缩放自适应)。音符按通道/乐器着色,可以:
  • 拖动本体 移动
  • 从左/右边缘手柄 调整长度
  • 双击 删除
  • 多选后一起编辑。 非激活通道的音符以其通道色显示为暗淡的 “幽灵” 方块。底部有一条 力度带,为光标下的音符 涂刷 0–127 的力度。
缩放与导航。 Ctrl/Cmd + 鼠标滚轮缩放时间轴;滚动条平移。快捷键:Delete/Backspace 删除选中音符,Ctrl/Cmd+Z 撤销,Ctrl/Cmd+A 全选。

工作流 / 分步

1.(可选)接入 MIDI 文件并按 Import MIDI 载入其通道、程序与 tempo map。 2. 选一个 Snap 值;选择一个 通道 并设置其 Instrument(或加 🥁 用于鼓)。 3. 绘制 或编辑音符;拖动边缘手柄修整时长。 4. 用通道上的 S/静音 在工作时隔离声部;在 力度带 里塑造强弱。 5. 按 Play 试听;用幽灵音符跨通道对齐。 6. 按 ▶ Run 导出 midi 文件,再喂给 Score Synth(渲染音频)或下载它。

输入与输出

卷帘(事件、通道程序与 tempo map)以一个隐藏的 events_json 字段存储在节点上,会随工作流 保存。静音/独奏状态是实时的播放辅助,不属于导出内容。

提示

  • 这是 秒域 编辑器 —— 位置是真实时间,不是拍。若要做拍/小节作曲并生成 MusicXML,请改用 Score Editor
  • 独奏(S) 是快速试听单个通道的办法;它静音其它一切,直到你再次关闭。静音/独奏只影响 编辑器内的预览,不影响导出文件。
  • 导入 MIDI 文件会带入其 tempo map 与按通道的程序 —— 清理工作的好起点。
  • 导出的 .midCOMFYTV_AUDIO;喂给 Score Synth 即可用 SoundFont 听到它。

相关节点

  • Score Editor —— 输出 MusicXML 的拍域钢琴卷帘。
  • Score Performer —— 由写好的乐谱输出 MIDI 文件。
  • Score Synth —— 通过 SoundFont 把导出的 MIDI 渲染成音频。
  • Bridge —— 把 COMFYTV_AUDIO 与原生 ComfyUI 互转。见 https://github.com/jtydhr88/ComfyTV/blob/main/docs/bridges.md