用lilypond自带案例编命令:给一列音加Staccato
2021/12/12 6:19:42
本文主要是介绍用lilypond自带案例编命令:给一列音加Staccato,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
lilypond有一个教学,是如何设计一个命令为音符加accent的,具体可看:
Extending LilyPond: 1.3.4 Adding articulation to notes (example)
但是,这个命令只适合加单音,不适合加在一列音上,所以把它稍加改造,可以加到一串音上,这样就能节省很多打代码的时间
例子:给一列音加上断奏记号(staccato)
命令格式:\addStaccato { 音列 }
要命令生效,需要将下面命令区的内容全部复制。
先贴效果,再贴代码
效果图:
%%%%%%%%%%%%% 以下是命令区,要使用该命令请复制全部内容 %%%%%%%%%%%%% %%%%%%%%%%%%% 基础指令区 %%%%%% #(define (get-elements mymusic) (ly:music-property mymusic 'elements) ) #(define (get-sequential-music mymusic) (ly:music-deep-copy mymusic) ) %%%%%%%%%%%%% 根据官方文档改造得来 %%%%%%%%%%%%%%%% addStaccatoSingle = #(define-music-function (note-event) (ly:music?) (set! (ly:music-property note-event 'articulations) (cons (make-music 'ArticulationEvent 'articulation-type "staccato") (ly:music-property note-event 'articulations))) note-event) %%%%%%%%%%%%% 把单音上的命令运用到音列上 %%%%%%%%%%%% addStaccato= #(define-music-function (mymusic) (ly:music?) (make-sequential-music (map addStaccatoSingle (get-elements(ly:music-deep-copy mymusic)) ))) %%%%%%%%%%%%%% 命令区结束,复制到此为止 %%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%% 下面是试验效果 %%%%%%%%%%%%%%%%%% MyNote ={ % 这是做实验用的音符 c'4 d' } \markup {"这是原来的样子"} { \MyNote } \markup {"这是加了命令的样子"} { \addStaccato \MyNote }
这篇关于用lilypond自带案例编命令:给一列音加Staccato的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-17getExternalFilesDir这个方法哪些安卓版本可以使用?-icode9专业技术文章分享
- 2024-11-17app下载好后,安装包更新代码怎么写?-icode9专业技术文章分享
- 2024-11-17login-customer-id 如何获取?-icode9专业技术文章分享
- 2024-11-17使用 vite加载.env 文件环境变量无法加载是什么原因?-icode9专业技术文章分享
- 2024-11-17tp钱包是什么,有哪些功能?-icode9专业技术文章分享
- 2024-11-16在电脑上怎么模拟手机的运行环境?-icode9专业技术文章分享
- 2024-11-16接收socket数据,莫名其妙socket就关闭了是怎么回事?-icode9专业技术文章分享
- 2024-11-16ts nightly是什么?-icode9专业技术文章分享
- 2024-11-16如何升级vscode版本?-icode9专业技术文章分享
- 2024-11-16如何设置vscode默认的node版本?-icode9专业技术文章分享