lilypond对乐谱内容的修改非常自由,用户可以自由根据需要做调整

调整一般都是用\override的命令,但是会比较冗长,码代码的时候比较麻烦

重新设置一个函数来概括命令,调用的时候使用的代码更短、更舒心

函数不仅可以打包一系列操作,还可以留给用户设定更多参数,更加灵活

这里展示的只是一个很小的示例,所以说服力还不是很强,了解一下即可。展示的内容是:

1)用\override 命令调整音符颜色

2)设置完\blueNote 命令之后,直接打\blueNote 就能实现音符变色

3)设置完\colorNote 命令之后,还可以指定任意颜色,让音符变色。

预览如下,后面是代码

\version "2.20.0"
\language "english" \paper {
#(set-paper-size "a6")
}
%这个文档讨论用scheme编写函数来改变乐谱元素 {c'} %用override命令可以修改音符的颜色 \markup {"用\override把音符修改成红色,但是命令比较长"} {
\override NoteHead.color = #red
c'
} % \override命令太长,不直观
% 所以干脆设定一个\blueNote命令,这样用的时候不用打那么长的代码 blueNote =
#(define-music-function
(my-music) ;;引用变量,自由设名字,数量不限
(ly:music?) ;;变量类型,要和前面的变量对应
;;以下是函数的执行
;;在scheme里使用lilypond语言,需要加上括号#{和#}
#{
\override NoteHead.color = #blue
$my-music % “$”表示引用
#}) \markup {"设置完\blueNote命令后,实现的代码变简单了"} % 看看下面,是不是比\override命令简短多了? {
\blueNote c'
} %更复杂的功能当然也能实现,比如由用户指定颜色 colorNote =
#(define-music-function
(my-color my-music) ;;先颜色还是先音符,可以自己定,但是调用时要注意保持顺序
(color? ly:music?)
#{
\override NoteHead.color = #my-color % 到时候输入什么颜色,就变成什么颜色
$my-music
#}) \markup {"设置完\colorNote命令,可以指定任意颜色,比如绿色"} {
\colorNote #green c' %记得要按函数里设定的顺序输入
}

最新文章

  1. php 使用htmlspecialchars() 和strip_tags函数过滤HTML标签的区别
  2. 静态方法中的this
  3. Java的二维数组的应用及杨辉三角的编写
  4. loop_nslookup
  5. Spring Roo
  6. UI:触摸事件 与 事件的回应
  7. linux杂记(八)linux压缩与打包
  8. leetcode 15. 3Sum 双指针
  9. Windows 安装Mongoliadb
  10. JavaScript(8)——JSON
  11. 这些 Drawable 的小技巧,你都了解吗?
  12. Android Studio自定义注释模板
  13. 在viewPager中双指缩放图片,双击缩放图片,单指拖拽图片
  14. CSS单元的位置和层次-div标签
  15. 5.1Python函数(一)
  16. JS高级 - 面向对象1(this,Object ,工厂方式,new )
  17. 转:Spring AOP中的动态代理
  18. cocos源码分析--ClippingNode绘图原理
  19. Is there anyway to discover which ip addresses are connected to the db?
  20. Lanczos Algorithm and it's Parallelization Stragegy

热门文章

  1. web_security学习路线
  2. programmercarl——数组——二分查找
  3. Apache Zookeeper Java客户端Curator使用及权限模式详解
  4. 【UE4 调试】提升UE4源码版本Setup下载速度
  5. pagelayout中边界灵敏度动画时间kv
  6. JVM:Java中的引用
  7. 解决git clone慢问题
  8. Azure File Storage(一)为本地机器配置网络磁盘
  9. 小白自制Linux开发板 九. 修改开机Logo
  10. Python AttributeError: module 'string' has no attribute 'atoi'