小龟小车音乐简谱格式规范
下图是小伙伴们经常听到的《生日快乐歌》的音乐简谱,大家会发现真实的音乐简谱里面有非常多的不适合键盘输入的音符。
为了方便小伙伴们简单又快速的输入音乐简谱,小龟特意设计了一套小车的简谱。它和真实音乐简谱的格式基本上是差不多的,只是对一些无法直接用键盘文本输入的音符进行了匹配改造。
所以小伙伴们在实际使用过程中,如果真实音乐简谱上的符号在键盘上有的,就直接按键输入即可,没有的再参考下面的规则。
用编程的角度去分析真实音乐简谱
首先小龟和大家简单科普一下音乐简谱的几个基本元素:
在分析了多个简谱以后,小龟发现了其实大部分情况下的简谱都可以归纳成“后标识类”语法。也就是先一个代表基础音符的数字,然后跟随一堆对这个基础音符进行补充的定义,如下。
于是我们设计了下面的简谱语法对应规则。
小车音乐简谱和真实音乐简谱的对应规则
音阶的对应关系:
音阶 | 简谱表示符号 | 小龟小车表示符号 | 备注 |
---|---|---|---|
dou | 1 | 1 | |
re | 2 | 2 | |
mi | 3 | 3 | |
fa | 4 | 4 | |
sol | 5 | 5 | |
la | 6 | 6 | |
si | 7 | 7 | |
空 | 0 | 0 |
说明:音阶部分和真实简谱的符号完全一致
重音低音的表示
音频 | 真实简谱表示符号 | 小龟小车表示符号 | 备注 |
---|---|---|---|
倍重音 | ![]() | 2'' | 小车用键盘上的两个单引号 表示为倍高音符 |
高音 | ![]() | 2' | 小车用键盘上的单引号 表示为高音符 |
中音(
标准 ) | 2 | 2 | 两者一致 |
低音 | ![]() | 5, | 小车用键盘上的逗号 表示为低音符 |
倍低音 | ![]() | 5,, | 小车用键盘上的两个逗号 表示为倍低音符 |
音节
音节 | 真实简谱表示符号 | 小龟小车表示符号 | 备注 |
---|---|---|---|
全音 | 2---- | 2---- | 两者一致,用四个减号 |
二分音 | 2- | 2- | 两者一致,用一个减号 |
四分音 | 2 | 2 | 两者一致 |
八分音 | 2 | 2_ | 小龟小车用键盘上的下划线来表示, 在音阶后面跟下划线 |
十六分音 | ![]() | 2= | 小龟小车用键盘上的等号来表示
, 在音阶后面跟下划线 |
半音 | ![]() | 4. | 小龟小车用键盘的句号来表示半音 |
其它符号
符号 | 真实简谱表示符号 | 小龟小车表示符号 | 备注 |
---|---|---|---|
空格 | 空格 | 空格 | 两者一致, 都用空格表示 |
延音 | ![]() | { 6 - | 6 } | 小龟小车用大括号来表示, 左大括号为连音开始, 右大括号为连音结束 |
重复 | ![]() | [3_2_ | 1 ] | 小车用中括号表示, 左中括号为重复开始, 右中括号为重复结束。 暂不支持复杂重复。 和真实简谱一样, 左中括号省略代表从头开始重复 |
伴奏 | ![]() | | ( 2_5_ 6_2'_ ) | 两者一致, 都用逗号表示 |
段落 | ![]() | 5_5_ | 6 5 1' | | 两者一致, 都用竖线表示 |
其它真实简谱上的符号,小车暂时还不支持,可以忽略不转换。
转换范例
生日快乐歌
转换以后的小龟小车的简谱如下:
#蜂鸣器接A2管脚
car.buzzer.music(A2, """
5_5_ | 6 5 1' | 7 0 5_5_ | 6 5 2' | 1' - 5_5_ | 5' 3' 1' |
7 {6 - | 6} 0 4'_4'_ | 3' 1' 2' | 1' - ( 5_5_ ) ]
""")