LNNBot/指令/musicjs*
外觀
musicjs* 是 musicjs 的衍生指令,提供了一個 aj() 函數用於以簡譜編寫旋律。
用法
musicjs* <code...>
除 musicjs 提供的函數和變量之外,musicjs* 提供了一個 aj() 函數,接受一個字符串作為樂譜,解析後使用 musicjs 提供的函數和變量進行演奏。
musicjs* 還會定義一個 dd 變量,初始為 0,控制音符 6 與基準音(由 baseFrequency 定義)相差的半音數,使用 >、< 會增減其值。
aj() 每次被調用時,內部的「時值乘數」變量會被初始化為 1,它與 bpm 及圓括號的層數共同定義一「拍」的時長。
| 字符 | 名稱 | 作用 |
|---|---|---|
1–7
|
音符 | 以當前的一拍為時值創建對應的簡譜音符。 |
0
|
休止符 | 休止一拍。 |
,
|
低音點 | 將前一個音符降低一個八度。 |
'
|
高音點 | 將前一個音符升高一個八度。 |
.
|
附點 | 將前一個音符的時值延長半拍。 連用多個時,每個後續附點延長的時值是前一個附點的一半。 |
-
|
延音線 | 將前一個音符的時值延長一拍。 |
|
|
小節線 | 無作用,僅輔助閱讀。 |
( )
|
減時線 | 括號內一拍的時長減半,可以嵌套。 |
b
|
降號 | 使下一個音符降低一個半音。不會影響後續的音符。 |
#
|
升號 | 使下一個音符升高一個半音。不會影響後續的音符。 |
[ / ]
|
分聲部 | 方括號內由斜槓分隔的各部分將同時開始演奏。 順序最後的一個部分演奏結束時,無論其他各部分是否演奏完畢,都會繼續演奏方括號之後的樂譜。 |
>
|
升調 | 升調一個半音。 |
<
|
降調 | 降調一個半音。 |
f
|
力度:強 | 將 gain 設為 0.75,若已經是 0.75 則設為 1。
|
m
|
力度:中 | 將 gain 設為 0.5。
|
p
|
力度:弱 | 將 gain 設為 0.33,若已經是 0.33 則設為 0.18。
|
t
|
開始三連音或結束連音 | 如果當前時值乘數為 1,則將其設為 2/3;否則設為 1。 |
d[1]
|
開始 連音 | 若 是 2 的整數次冪,則將時值乘數設為 0.75;否則設為 。 |
r:[1]
|
開始 連音 | 將時值乘數設為 。 |
s
|
延長 | 將前一個音符實際播放的時間延長一拍,不影響下一個音符開始的時間。 可套在減時線內使用來延長更短的時長。 |