新命令:沿着一条音阶做模进
2021/12/25 6:07:37
本文主要是介绍新命令:沿着一条音阶做模进,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在用lilypond实现模进 - lilypond手残粉 - 博客园 (cnblogs.com)里,我知道了有调内模进的命令\modalTranspose
但实际写基本练习的时候,调内模进通常是连续进行的,而做一次模进就要调用一次\modalTranspose的命令,实在是麻烦,代码也不漂亮
所以沿着一条音阶一直模进就成了我的心愿。
在新的\modalTransposeScale命令下,只需要提供一个音阶,就能让系统自动完成一系列的模进。效果见图,代码在下面,要使用命令请复制命令区
MyScale={ c' d' e' f' g' a' b' } MyNotes={ c' d' f' e' } %%%%%%%%%%%%%% 命令区 %%%%%%%%%%%%%%%
modalTransposeScale=
#(define-music-function (myscale mymusic) (ly:music? ly:music?)
(let ( (firstnote (car (ly:music-property myscale 'elements))) )
(make-music 'RelativeOctaveMusic 'element
(make-sequential-music
(apply append
(map (lambda (x)
(ly:music-property
#{ \modalTranspose
$(ly:music-property firstnote 'pitch)
$(ly:music-property x 'pitch)
$myscale
$mymusic #}
'elements))
(ly:music-property myscale 'elements))
)))))
%%%%%%%%%%%%%%%% 命令区结束 %%%%%%%%%%%%%%%%%% \markup{ "这是准备做模进的片段" } { \MyNotes } \markup{ "这是准备做模进的音阶,片段会沿着音阶的顺序做模进" } { \MyScale } \markup{ "这是使用了新命令modalTransposeScale的结果" } { \modalTransposeScale \MyScale \MyNotes }
这篇关于新命令:沿着一条音阶做模进的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南