LilyPond 中如何输出简谱

您所在的位置:网站首页 melody怎么添加歌曲 LilyPond 中如何输出简谱

LilyPond 中如何输出简谱

2023-05-20 06:17| 来源: 网络整理| 查看: 265

最近研究LilyPond。 关于如何处理/输出/显示简谱的问题研究了网上的资料,总结出三种方式:

第一种:使用jianpu-ly.py这个Python脚本。他要求在文本文件中使用它自己的格式输入简谱,然后用此脚本处理后得到的输出保存到一个.ly文件中, 再由LilyPond处理,即可。

此处不再赘述。

工具的网址:GitHub - ssb22/jianpu-ly: Jianpu in Lilypond

别人的例子: 在GNU/Linux下使用Lilypond排版简谱 - 皮波迪先生 - 博客园 (cnblogs.com)

第二种:lilypond-Jianpu/jianpu10.ly at master · nybbs2003/lilypond-Jianpu · GitHub

提供了一个LilyPond包含文件jianpu10a.ly, 可以包含到自己ly文件中。 他提供了一种自定义类型的谱表(Staff)- JianpuStaff。 输入乐谱时按照Lilypond标准的方式输入五线谱, 使用它提供的JianpuStaff 生成简谱, 下面是它提供的例子:

\version "2.18.2" \language "english"

global = {   \key f\major   \time 4/4 } \include "jianpu10a.ly"

notes = {    \grace d'8 c'1 f'2( g') g'2~g'2~g'2. r4  bf'1~bf'2 c''2 |\break   d'8~d'8 e'8.~e'16 \tuplet 3/2{f'8~ f'8~ f'8} \tuplet 3/2{g'16 r16 g'16} r8 r1  |\break   f'4~f'2 r4 f'2~f'4 g'4 a'4 a'4~ a'4 \tuplet 3/2{bf'8 a'8 g'8}  }     

 第三种:

这是我在浏览Lilypond官方文档的时候无意间在其Snippets部分发现的。其中的条目-Numbers as easy note heads提供了一个简单的engraver函数配合\easyHeadsOn 命令使用。 这个\easyHeadsOn命令单独使用的时候,效果

是在符头上显示音名, 像这样:

而它提供的engraver会把音名按照首调唱名法修改为简谱音名.

像这样:

 可以把它提供的engraver放入一个.ly文件,在其它文件中包含使用。

例如,创建一个ez_numbers_engraver.ly 内容是如下函数定义。

#(define Ez_numbers_engraver    (make-engraver     (acknowledgers      ((note-head-interface engraver grob source-engraver)       (let* ((context (ly:translator-context engraver))              (tonic-pitch (ly:context-property context 'tonic))              (tonic-name (ly:pitch-notename tonic-pitch))              (grob-pitch               (ly:event-property (event-cause grob) 'pitch))              (grob-name (ly:pitch-notename grob-pitch))              (delta (modulo (- grob-name tonic-name) 7))              (note-names               (make-vector 7 (number->string (1+ delta)))))         (ly:grob-set-property! grob 'note-names note-names))))))

#(set-global-staff-size 26)

用法:

\version "2.24.1" \language "italiano" % 语言选择了italiano,则音名如下 % do re mi fa sol la si % 升d 降b \include "ez_numbers_engraver.ly"  % 此处包含了上述文件

melody = \fixed do'{     \key fa \major     \time 2/4     \tempo 4=60     \easyHeadsOn % 前奏 fa8. sol16 do'8 la     |

sol8. la16 sol fa sol8     |

re la sol16 fa re8     |

do2~ | do         |

do'8. do'16 sib8 sol |

la16( do' fa4.) | 

la,4. fa8 |

re fa16( re) do4 |

fa8 fa16( sol) fa8 re |

fa( sol) do'( re'16 do') |

do'8( la4.~ | la2) |

sol8 sol16( la) sol8 mi |

re16( fa sol4.) |

do'4. sol8 | 

la sol fa4 |

} \score {

  \melody   \midi {}   \layout {   \context {     \Voice     \consists \Ez_numbers_engraver   } } } 效果:

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3