Skip to content

Latest commit

 

History

History
68 lines (55 loc) · 2.63 KB

music-writing-instruction-cn.md

File metadata and controls

68 lines (55 loc) · 2.63 KB

乐谱的编写规则

乐谱由音符,指令和歌词(可选)组成,兼容PC LOGOPLAY指令。

音符

  • 音符包含CDEFGABP八种,分别对应简谱的1、2、3、4、5、6、7和休止符。
  • 如果音符前面带数字,表示该音符的时值。例如:4C表示一个四分音符的Do,16E表示一个十六分音符的Mi。
    • 这个数字可以是浮点数,如1.6C,相当于0.625个全分音符的长度,即是5个八分音符的长度。
    • 如果不带数字,则使用默认时值。可以用L指令调节。
  • 音符后面跟#b可以调节音高,比如说C#Db都可以表示升半音的Do。C##可以表示Re,但是不建议这样使用。
  • 音符后面跟.,可以把音符时间延长一半(附点音符),比如说4C.的播放时间和4C 8C相当。

指令

  • 指令包含OTLSHR[]几种,分别用于调节八度、速率、默认时值、断音、偏移、重置和和弦。
  • O:调节八度
    • O#提高一个八度,Ob降低一个八度;
    • On(其中n可取0~7)用来设定绝对八度。
    • 默认值是O3
  • T:设置速率(即是常说的BPM)
    • Tn(其中n可取30~1000的浮点数)设置每分钟播放四分音符的个数为n。
    • 默认值是T120
  • L:设置默认音符时值
    • Ln(其中n可取1~128的整数)设置默认的音符时值为n。比如说使用L8之后,C D E就和8C 8D 8E等效。
    • 默认值是L4
  • S:设置断音
    • Sn(其中n可取0~100的浮点数)设置断音为n%。比如S50表示每个音符有一半的时间有声音,一半的时间没有声音;S0表示所有时间都有声音,相邻的音会连接起来(在Windows上暂时无法实现);S100则表示完全没有声音。
    • 默认值是S10
  • H:设置偏移
    • H#偏移提高一个半音,Hb偏移降低一个半音;
    • Hn(其中n可取-12~12的整数)(未来可能会支持浮点数)将音符偏移n个半音。比如H1 CH0 C#等效。
    • 默认值是H0
    • 适当使用可以减少乐谱文件的大小,但是与PC LOGO不兼容
  • R:重置
    • 将O、T、L、S、H的设置重置为默认值。
    • 载入新乐谱的时候会自动重置
  • []用来标识和弦的开始和结束。
    • []内的音(除了最后一个)将会被快速播放,来产生类似和弦的效果。
    • 和弦中的音长度为0.1秒,为了保证时间的正确,最后的音将会被减去相应的时间。

歌词

歌词是用两个*号包围的文本,中间用|符号分隔,由|隔开的内容对应后面的一个音符。

每一对*符号表示一行歌词,末尾会自动换行,如果在新的一行歌词出现之前上一行歌词还未用完,则上一行剩余的歌词会被丢弃。

例如:

*一|闪|一|闪|亮|晶|晶*
C C G G A A 2G

“一”对应第一个C,“闪”对应第二个C,以此类推,直到最后一个“晶”对应2G

又如:

*今|年||の|夏||の|匂||い|*
8F G G# 8G C C 8C# D# F 8D# 8P

“年”对应G,而随后的G#则对应空字符串,在播放时看起来就像是“年”对应了G G#

注意:休止符及和弦内的音也会分配歌词,但是不会对指令分配歌词。

杂项

  • 除了降调、降低八度和设置偏移必须用小写的b之外,其他音符和指令对大小写不敏感。
    • 但是请注意,在中间没有空格的时候,db表示降半音的Re,而DB表示Re和Xi两个音。
  • 双斜线//直到行尾的内容视为注释。