如何在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
相关产品推荐
相关产品推荐

