如何让LilyPond在MIDI输出中生成Glissando(滑音)
解决LilyPond小提琴滑音MIDI无效果的问题
我来帮你搞定这个问题~ 你遇到的情况是因为LilyPond里的\glissa只是用来在乐谱上绘制滑音线条的装饰性标记,并不会自动生成MIDI的滑音(Portamento)事件,所以MIDI播放时只会听到两个独立的音。下面是具体的解决方法:
核心原因
\glissa仅负责乐谱视觉呈现,要让MIDI识别滑音,需要用\glissando(注意是双s的拼写)配合MIDI滑音开启指令,同时确保小提琴乐器的滑音功能被激活。
具体修改方案
方法1:开启Staff全局MIDI滑音
直接在Staff设置里开启MIDI滑音功能,然后把\glissa替换成\glissando:
\version "2.18.2" \include "articulate.ly" \score { \articulate << \new Staff { \set Staff.midiInstrument = #"violin" \set Staff.midiPortamentoOn = ##t % 全局开启MIDI滑音 \relative a' { a4 \glissando b4 % 替换\glissa为\glissando,触发MIDI滑音 } } >> \midi {} \layout {} }
方法2:局部开启滑音(按需开关)
如果只需要某一段有滑音,可以用\portamentoOn和\portamentoOff来控制:
\version "2.18.2" \include "articulate.ly" \score { \articulate << \new Staff { \set Staff.midiInstrument = #"violin" \relative a' { \portamentoOn % 开启滑音 a4 \glissando b4 \portamentoOff % 关闭后续滑音(可选) c4 d4 } } >> \midi {} \layout {} }
额外优化:调整滑音速度
你还可以通过设置midiPortamentoTime来控制滑音的时长(单位是秒),比如让滑音更平缓:
\set Staff.midiPortamentoTime = #0.3 % 滑音持续0.3秒
这样修改后,生成的MIDI文件就能正确播放出小提琴的滑音效果啦~
内容的提问来源于stack exchange,提问作者john ware
相关产品推荐
相关产品推荐

