You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LilyPond中为各声部单独转调并输出MIDI?

LilyPond MIDI转调问题:保留记谱音高的同时为不同乐器单独转调

我正在搭建一套LilyPond配置,用于生成总谱、分谱和单独音域谱,目前整体运行正常,但在为不同乐器正确转调输出MIDI时遇到问题。

我的配置前提:

  • 源素材中各声部均为乐器记谱音高(即演奏者实际看到的音符)
  • 总谱显示记谱音高,而非音乐会音高(concert pitch)

我清楚将所有内容转至C调(音乐会音高)操作简单,但希望保留乐谱原样以便后续使用。因此需要解决的问题是:如何根据乐器类型,为音域谱或总谱中的各声部单独转调输出MIDI?

以下是我针对单簧管音域谱的尝试代码:

\version "2.24.3"
\include "_global_definitions.ly"
\include "clarinet_eb.ly"
\include "clarinet_1.ly"
\include "clarinet_2.ly"

\header {
  instrument = "Clarinets"
}


\book {
  \bookOutputName "register_clarinets"
  \score {
    \midi {
      \context Staff = "pitch_es" {
        \transposition es 
      }
      \context Staff = "pitch_bes"{
         \transposition bes 
      }
     }
    <<
      \new StaffGroup = "StaffGroup_clarinets" <<
        \new Staff="pitch_es" {
          \set Staff.midiInstrument = "clarinet"
          \clarinet_eb
        }
        \new Staff="pitch_bes" {
          \set Staff.midiInstrument = "clarinet"
          \clarinet_two
        }
      >>
    >>
  }
}

该代码确实能实现转调(已通过A-B声音测试验证),但音效非常糟糕。我猜测是上下文引用存在问题,且已多次确认clarinet_eb和clarinet_two中的音符内容正确。

内容的提问来源于stack exchange,提问作者Roland Deschain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:40:09