<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://wiki.xdi8.top/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cycwin</id>
	<title>希顶维基 - 用户贡献 [zh]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.xdi8.top/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cycwin"/>
	<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/wiki/Special:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/Cycwin"/>
	<updated>2026-04-21T08:32:37Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=43079</id>
		<title>LNNBot/指令/musicjs*</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=43079"/>
		<updated>2026-02-13T02:50:25Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​/* Tr3() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LNNBot指令信息&lt;br /&gt;
|别名=musicjsx&lt;br /&gt;
|属性=别名指令&lt;br /&gt;
|所属插件=&lt;br /&gt;
|父级指令=&lt;br /&gt;
|所需权限=&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt;&#039;&#039;&#039; 是 {{LNNBot指令链接|musicjs}} 的衍生指令，提供了辅助函数用于更便捷地编写旋律。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;musicjs* &amp;lt;code...&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
除 &amp;lt;code&amp;gt;musicjs&amp;lt;/code&amp;gt; 提供的函数和变量之外，&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 还提供一些由用户定义的函数用来用更简洁的语法编写旋律。&lt;br /&gt;
&lt;br /&gt;
用户可以使用 &amp;lt;code&amp;gt;[[LNNBot/指令/evaluate|eval]]&amp;lt;/code&amp;gt; 指令向 &amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 添加辅助函数，只需在对象 &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;storage.musicjsX&amp;lt;/syntaxhighlight&amp;gt; 上创建属性，名称建议与辅助函数名称相同，值为函数声明的 JavaScript 源代码字符串。&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{LNN}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt;（最初以“&#039;&#039;&#039;A&#039;&#039;&#039;SCII &#039;&#039;&#039;简&#039;&#039;&#039;谱”命名）函数接受一个乐谱字符串，可以通过一种受简谱启发的语法编写乐曲。&lt;br /&gt;
&lt;br /&gt;
此辅助函数还定义了一个变量 &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;，控制音符 &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; 与基准音（由 &amp;lt;code&amp;gt;baseFrequency&amp;lt;/code&amp;gt; 定义，默认为 440 Hz）相差的半音数，初始为 0（即 1=C4），使用 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; 会增减其值。例如使用 5 个 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; 可使 1=F4。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 每次被调用时，会将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5，并将内部的“时值乘数”变量初始化为 1，它与 &amp;lt;code&amp;gt;bpm&amp;lt;/code&amp;gt; 及圆括号的层数共同定义一“拍”的时长。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 名称 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;amp;ndash;&amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音符 || 以当前的一拍为时值创建对应的简谱音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符 || 休止一拍。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
| 低音点 || 将前一个音符降低一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 高音点 || 将前一个音符升高一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 附点 || 将前一个音符的时值延长半拍。&amp;lt;br&amp;gt;连用多个时，每个后续附点延长的时值是前一个附点的一半。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延音线 || 将前一个音符的时值延长一拍。可以跨过小节线甚至减时线的起止。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 小节线 || 无作用，仅辅助阅读。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| 减时线 || 括号内一拍的时长减半，可以嵌套。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降号 || 使下一个音符降低一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升号 || 使下一个音符升高一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
| 分声部 || 方括号内由斜杠分隔的各部分将同时开始演奏。&amp;lt;br&amp;gt;顺序最后的一个部分演奏结束时，无论其他各部分是否演奏完毕，都会继续演奏方括号之后的乐谱。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升调 || 升调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降调 || 降调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：弱 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.33，若已经是 0.33 则设为 0.18。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：中 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：强 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.75，若已经是 0.75 则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;&#039;t&#039;&#039;&#039;riplet/&#039;&#039;&#039;t&#039;&#039;&#039;uplet&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 开始三连音或结束连音 || 如果当前时值乘数为 1，则将其设为 2 / 3；否则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref&amp;gt;irregular &#039;&#039;&#039;d&#039;&#039;&#039;ivision&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;division-num&amp;quot;&amp;gt;&#039;&#039;M&#039;&#039;、&#039;&#039;N&#039;&#039; 可以是正整数或小数；在这些指令之后不可直接跟音符或休止符，需要加空格分隔开。&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;N&#039;&#039; 连音 || 若 &#039;&#039;N&#039;&#039; 是 2 的正整数次幂，则将时值乘数设为 0.75；否则设为 &amp;lt;math&amp;gt;\frac{2^{\lfloor\log_2N\rfloor}}N&amp;lt;/math&amp;gt;。&#039;&#039;N&#039;&#039; 为 1 时实际效果为结束连音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;&#039;&#039;M&#039;&#039;&amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref&amp;gt;&#039;&#039;&#039;r&#039;&#039;&#039;atio&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;division-num&amp;quot;/&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;M&#039;&#039;:&#039;&#039;N&#039;&#039; 连音 || 将时值乘数设为 &#039;&#039;N&#039;&#039; / &#039;&#039;M&#039;&#039;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;&#039;s&#039;&#039;&#039;ustain&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 延长 || 将前一个音符实际播放的时间延长一拍，不影响下一个音符开始的时间。&amp;lt;br&amp;gt;可连用，可套在减时线内使用来延长更短的时长。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;&#039;s&#039;&#039;&#039;taccato&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 断奏 || 将前一个音符实际播放的时间减半，不影响下一个音符开始的时间。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&lt;br /&gt;
| 打击乐音符（高） || 以当前的一拍为时值创建采样率为 8000Hz 的噪波音符，&amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; 可以减半或倍增其采样率。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;&lt;br /&gt;
| 打击乐音符（低） || 以当前的一拍为时值创建采样率为 (4000 √2) Hz 的噪波音符，&amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; 可以减半或倍增其采样率。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{collapse|示例：《Somebody That I Used To Know》副歌|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs*&lt;br /&gt;
bpm=129&lt;br /&gt;
aj(&#039;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&#039;) // 1=F&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;(66)|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;3&#039;.(2&#039;)2&#039;6)|655-|&lt;br /&gt;
/pp&lt;br /&gt;
3&#039;&#039;--0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|3&#039;.(2&#039;)2&#039;-|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;(2&#039;3&#039;))|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/p&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(1&#039;01&#039;07070|6060)50|&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(60)00(70)|(60)00((2&#039;3&#039;)0)|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;----)0|&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|6,,&lt;br /&gt;
]`)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|6xL-Bro islptng}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和一个 BPM 数字，使用一种移植自[https://test.vudrux.site/islp/music.html 网页版谱曲工具]的、相比于 &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 更加紧凑的语法。乐谱语法如下：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 乐谱语法说明&lt;br /&gt;
! 字符 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1 2 3 4 5 6 7&amp;lt;/code&amp;gt; &lt;br /&gt;
| 代表低音区七个音符，从 C3 到 B3。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;d r m f s l t&amp;lt;/code&amp;gt; &lt;br /&gt;
| 代表中音区七个音符，从 C4 到 B4。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D R M F S L T&amp;lt;/code&amp;gt; &lt;br /&gt;
| 代表高音区七个音符，从 C5 到 B5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8 9 x y X Y&amp;lt;/code&amp;gt;&lt;br /&gt;
| 打击乐：采样率分别为 2048√2、4096、4096√2、……、16384 Hz 的噪波音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将接下来的音符升高半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将接下来的音符降低半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将接下来的音符升高三个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将接下来的音符降低三个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延长前一个音符的时值。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
| 时值计数器增加 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
| 时值计数器除以 2。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
| 整体速度乘以 2。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| 整体速度乘以 0.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
| 开始连音组（三连音无需加点，x 连音加点数为 x-3）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 结束连音组（三连音无需加点，x 连音加点数为 x-3）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后续音符移低 12 个半音（一个八度）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后续音符移高 12 个半音（一个八度）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后续音符移高 1 个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后续音符移低 1 个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音量降低至原来的 1/1.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音量增强至原来的 1.5 倍。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[ ... &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ... ]&amp;lt;/code&amp;gt;&lt;br /&gt;
| 并行播放多个音符或和弦。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;{ ... : ... : ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
| 重复段落。用冒号分隔不同段落，每轮重复依次播放对应段落。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符，暂停一个音符的时值。&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2| *时值计数器决定下一个音符的长度，默认为 1。音符播放后重置。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{collapse|示例：《月半小夜曲》前半段|&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;ip7(&amp;quot;=&amp;gt;[3d7d--3-3d7d--4-2767--2-2544--3-3d7d--3-36dm--rr---7--(dr)m-#5-76---3d7d--3--355--(64--22)767--2-(22)544-(45-3--33)d7d--3-36dm--!rr--!_dd---7-rd!~d!~7__(33)d7d--33-355--642767--22-544-4533d7d--d3-/36d;m--rr--dd--d7-7d76---67dd---r-765-3(56----)67d---7-d-f------(mr)m---_7drmdm!d!~mdrms--ff---rd7!6!~557rf-m!r!~m367d7d7-67dm--r(r----rmr)(d----drd)7-7d76------__&amp;lt;6-[#5|3]&amp;gt;(33)d7d--3--355--64(22)767--222544-4533d7d--d336dm--rr--dd--d7-7!d!~76---67d[d---|6---][r-|7-]765-3(56)6-67d---7-d-f------(mr)m----&amp;lt;&amp;lt;|p___6mltD---26rmf---5rslt---15d-37m-,L36dmlm-26rflRlf37m#st---6mltD---6mlmD---26rflR--5rslt---15d-37m-6mltD---26rmf---dfDf7rf-37rm#s---,L36dmlm-26rfl---,S25rs---15dm37m-,L36dm-l-26rmf-r-4dld37#s-,L367d---4dfl5rt-37s-6mD-4dfl,T7df37rmlmR_7(#sm7#5m,T),M---,L-{[m-|d-|6-]:::}2-{[f-|r-|d-|6-]:::},S-{[t-|s-|f-]:::}1-[m-|d-|5-]3-[t-|#s-|m-],L-{[m-|d-|6-]:::}2-{[f-|r-|6-]:::}4df-37m-,L37dm7dm37m7t---,L367dmd-26rflfr-,S5rsr7r-15dm37#s-,L36dmlm-26rflfr-4dfd37#s-,L367d---4dld5rsr37s-,L3d-4dfd,T7df37rmlmr-7(#sm7#5m,T),M---]&amp;quot;, 184)&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;Tr3()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|cycwin}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Tr3()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和分隔符(可省略，默认为&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;)，使用一种相对松散的语法，音符可以连写。乐谱语法如下:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;Tr3()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;amp;ndash;7&amp;lt;/code&amp;gt; &lt;br /&gt;
| 音符do&amp;amp;ndash;ti。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符升高半音。最多连用两个。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符降低半音。最多连用两个，不得与&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;同时使用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符升高八度。可连用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符降低八度。可连用，不得与&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;同时使用。&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符时值增加一拍。可连用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符时值减半。可连用。&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，当某音符存在n个$后缀时，最终计算出的时值乘以n。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，当某音符存在n个%后缀时，最终计算出的时值除以n。可以结合&amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;实现三连音。&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符，被视作一个正常音符处理。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 调整bpm到...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后面的音符整体增加...个半音(12平均律)。...可以为负数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将时间往回调...&#039;&#039;&#039;拍&#039;&#039;&#039;，可利用此做和弦之类。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;j...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 若...为非负数，跳到...-1个音符的位置继续，若...为负数，则往前跳...个音符再继续，并且j...为&#039;&#039;&#039;一次性&#039;&#039;&#039;的。如:&amp;lt;code&amp;gt;12345;j-2&amp;lt;/code&amp;gt;等效于&amp;lt;code&amp;gt;1234545&amp;lt;/code&amp;gt;，&amp;lt;code&amp;gt;12345;j1&amp;lt;/code&amp;gt;等效于&amp;lt;code&amp;gt;123452345&amp;lt;/code&amp;gt;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;z Z&amp;lt;/code&amp;gt;&lt;br /&gt;
| 分别为-8000Hz与-5657.7Hz的音符，可视为鼓点使用。&lt;br /&gt;
|}&lt;br /&gt;
{{collapse|示例: 《热异常》副歌四句歌词|&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs* &lt;br /&gt;
Tr3(&amp;quot;b183 n 1.# r1 6b r1 4 6.b r1 2b r1 6b 1.# r1 6b r1 4 1. r1 5b r1 1. r1 5b r1 1 6b r1 5b r1 2b 4/3/4/4#/4 r1 2b r1 6_b n/ 3b/ 4 r1 2b 3b/4/ 3b r1 1 r1 6_ 3b r1 1 r1 6_ 4 r1 1 r1 6_ 6b/ r0.5 4/ r0.5 3b/ 6/ 7b r1 4 r1 2b 6.b r1 2b r1 6b 1.# r1 6b r1 4 1./ r0.5 4/ r0.5 2b/ 7b/ 6b r1 2b r1 7_b 4/3/4/ r0.5 2b/ 3/ 4 n 4/ r0.5 1/ 3b/4/3b/4/ r0.5 1#/ 3b/4/ r0.5 1/ r0.5 6_/3b/4/3b/4 r1 3b r1 1 2b../ r0.5 2b./ 1../ r0.5 1./ 7.b r1 4. r1 2.b r1 7b 2..b r1 2b. 6..b r1 2b. r1 6.b 2b.. r1 2.b 1.. r1 6b. r1 4. r1 1. 6b. r1 6b 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ 3./ r0.5 3/ 4.**/ r1.5 2.b**/ r1.5 7b**/ r1.5 4**/ 3.b/ 4. r1 2.b r1 7b r1 4# 3.b/ 4./ 3.b r1 1. r1 6b r1 4 3.b 4. r1 1. r1 6 r1 4 6.b/ r0.5 6b/ 6./ r0.5 6/ 7.b r1 4. r1 2.b r1 7b 6..b r1 6.b 2..b r1 6.b r1 4. r1 2.b 1../ r0.5 1./ 7.b/ r0.5 7b/ 6.b r1 4. r1 2.b r1 6b 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ n/ n 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ 3.b/ 4./ r0.5 1./ r0.5 6/ 3.b/ 2.b/ 1./ 7b&amp;quot;,&amp;quot; &amp;quot;) //right hand&lt;br /&gt;
time=0&lt;br /&gt;
Tr3(&amp;quot;b183 7b__ r1 4__ r1 7b___ 7b__**/ r1.5 4_**/ r1.5 6_b**/ 7b__/ 7b___/ 4__/ 4#__**/ 4#__ 4_/ r0.5 2_b/ 7_b r1 5_b 2b__ r1 2b___ 6b__/ 2b_/ 4_/ 6__b**/ r1 4_ r1 2_b 4__**/ r1.5 4___**/ 4__ 1_/ 4__ 7b__ r1 4__ r1 7b___ 6_b**/ r1.5 4_**/ r1.5 7__b**/ 7__b/ 7___b/ 4__/ 4#__**/ r1.5 4#___**/ 7_b r1 4_# 4_/ r0.5 2_b/ 7__b/ 4__#/ 2__b r1 2___b 6__b**/ r1.5 2_b**/ r1.5 4_**/ 6__b/ 4_ r1 2_b 4__ r1 4___ 4__/ 1_/ 4_/ 1_**/ r1 4_ r1 6_ 7__b r1 7___b 7___b/ 7__b/ 5___b/ 5__b/ r0.5 2___b/ 5___b/ 5__b/ r0.5 2___b/ 2___b/ 2__b/ r0.5 6___b/ 2___b/ 2__b/ r0.5 6___b/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7b___/ 7b__/ r0.5 4__/ 7b___/ 7b__/ r0.5 4__/ 5___b/ 5__b/ r0.5 2__b/ 5___b/ 5__b/ r0.5 2__b/ 2___b/ 2__b/ r0.5 6___b/ 2___b/ 2__b/ r0.5 6___b/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7___b/ 7__b/ r0.5 4__/ 7___b/ 7__b/ r0.5 4__/ 5___b/ 2b__/ r0.5 5b__/ 5___/ 2b__/ r0.5 5b__/ 2___b/ 2__b/ r0.5 6___b/ 2___b/ 2__b/ r0.5 6___b/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7b___/ 7b__/ r0.5 4__/ 7b___/ 7b__/ r0.5 4__/ 5___b/ 5__b/ r0.5 2__b/ 5___b/ 5__b/ r0.5 2__b/ 2___b/ 2__b/ r0.5 6___b/ 2___b/ 2__b/ r0.5 6___b/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7__b r1 4__ r1 7___b&amp;quot;,&amp;quot; &amp;quot;) //left hand&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;infxdi8music()&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;infxdi8music()&amp;lt;/code&amp;gt; 函数接受一个[[希吕表声法]]字符串并解析、播放。目前实现并不完整。&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=43076</id>
		<title>LNNBot/指令/musicjs*</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=43076"/>
		<updated>2026-02-12T05:02:29Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​/* Tr3() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LNNBot指令信息&lt;br /&gt;
|别名=musicjsx&lt;br /&gt;
|属性=别名指令&lt;br /&gt;
|所属插件=&lt;br /&gt;
|父级指令=&lt;br /&gt;
|所需权限=&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt;&#039;&#039;&#039; 是 {{LNNBot指令链接|musicjs}} 的衍生指令，提供了辅助函数用于更便捷地编写旋律。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;musicjs* &amp;lt;code...&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
除 &amp;lt;code&amp;gt;musicjs&amp;lt;/code&amp;gt; 提供的函数和变量之外，&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 还提供一些由用户定义的函数用来用更简洁的语法编写旋律。&lt;br /&gt;
&lt;br /&gt;
用户可以使用 &amp;lt;code&amp;gt;[[LNNBot/指令/evaluate|eval]]&amp;lt;/code&amp;gt; 指令向 &amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 添加辅助函数，只需在对象 &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;storage.musicjsX&amp;lt;/syntaxhighlight&amp;gt; 上创建属性，名称建议与辅助函数名称相同，值为函数声明的 JavaScript 源代码字符串。&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{LNN}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt;（最初以“&#039;&#039;&#039;A&#039;&#039;&#039;SCII &#039;&#039;&#039;简&#039;&#039;&#039;谱”命名）函数接受一个乐谱字符串，可以通过一种受简谱启发的语法编写乐曲。&lt;br /&gt;
&lt;br /&gt;
此辅助函数还定义了一个变量 &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;，控制音符 &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; 与基准音（由 &amp;lt;code&amp;gt;baseFrequency&amp;lt;/code&amp;gt; 定义，默认为 440 Hz）相差的半音数，初始为 0（即 1=C4），使用 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; 会增减其值。例如使用 5 个 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; 可使 1=F4。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 每次被调用时，会将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5，并将内部的“时值乘数”变量初始化为 1，它与 &amp;lt;code&amp;gt;bpm&amp;lt;/code&amp;gt; 及圆括号的层数共同定义一“拍”的时长。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 名称 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;amp;ndash;&amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音符 || 以当前的一拍为时值创建对应的简谱音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符 || 休止一拍。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
| 低音点 || 将前一个音符降低一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 高音点 || 将前一个音符升高一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 附点 || 将前一个音符的时值延长半拍。&amp;lt;br&amp;gt;连用多个时，每个后续附点延长的时值是前一个附点的一半。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延音线 || 将前一个音符的时值延长一拍。可以跨过小节线甚至减时线的起止。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 小节线 || 无作用，仅辅助阅读。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| 减时线 || 括号内一拍的时长减半，可以嵌套。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降号 || 使下一个音符降低一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升号 || 使下一个音符升高一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
| 分声部 || 方括号内由斜杠分隔的各部分将同时开始演奏。&amp;lt;br&amp;gt;顺序最后的一个部分演奏结束时，无论其他各部分是否演奏完毕，都会继续演奏方括号之后的乐谱。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升调 || 升调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降调 || 降调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：弱 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.33，若已经是 0.33 则设为 0.18。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：中 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：强 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.75，若已经是 0.75 则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;&#039;t&#039;&#039;&#039;riplet/&#039;&#039;&#039;t&#039;&#039;&#039;uplet&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 开始三连音或结束连音 || 如果当前时值乘数为 1，则将其设为 2 / 3；否则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref&amp;gt;irregular &#039;&#039;&#039;d&#039;&#039;&#039;ivision&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;division-num&amp;quot;&amp;gt;&#039;&#039;M&#039;&#039;、&#039;&#039;N&#039;&#039; 可以是正整数或小数；在这些指令之后不可直接跟音符或休止符，需要加空格分隔开。&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;N&#039;&#039; 连音 || 若 &#039;&#039;N&#039;&#039; 是 2 的正整数次幂，则将时值乘数设为 0.75；否则设为 &amp;lt;math&amp;gt;\frac{2^{\lfloor\log_2N\rfloor}}N&amp;lt;/math&amp;gt;。&#039;&#039;N&#039;&#039; 为 1 时实际效果为结束连音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;&#039;&#039;M&#039;&#039;&amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref&amp;gt;&#039;&#039;&#039;r&#039;&#039;&#039;atio&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;division-num&amp;quot;/&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;M&#039;&#039;:&#039;&#039;N&#039;&#039; 连音 || 将时值乘数设为 &#039;&#039;N&#039;&#039; / &#039;&#039;M&#039;&#039;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;&#039;s&#039;&#039;&#039;ustain&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 延长 || 将前一个音符实际播放的时间延长一拍，不影响下一个音符开始的时间。&amp;lt;br&amp;gt;可连用，可套在减时线内使用来延长更短的时长。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;S&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;&#039;s&#039;&#039;&#039;taccato&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 断奏 || 将前一个音符实际播放的时间减半，不影响下一个音符开始的时间。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&lt;br /&gt;
| 打击乐音符（高） || 以当前的一拍为时值创建采样率为 8000Hz 的噪波音符，&amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; 可以减半或倍增其采样率。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;&lt;br /&gt;
| 打击乐音符（低） || 以当前的一拍为时值创建采样率为 (4000 √2) Hz 的噪波音符，&amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; 可以减半或倍增其采样率。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{collapse|示例：《Somebody That I Used To Know》副歌|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs*&lt;br /&gt;
bpm=129&lt;br /&gt;
aj(&#039;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&#039;) // 1=F&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;(66)|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;3&#039;.(2&#039;)2&#039;6)|655-|&lt;br /&gt;
/pp&lt;br /&gt;
3&#039;&#039;--0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|3&#039;.(2&#039;)2&#039;-|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;(2&#039;3&#039;))|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/p&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(1&#039;01&#039;07070|6060)50|&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(60)00(70)|(60)00((2&#039;3&#039;)0)|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;----)0|&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|6,,&lt;br /&gt;
]`)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|6xL-Bro islptng}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和一个 BPM 数字，使用一种移植自[https://test.vudrux.site/islp/music.html 网页版谱曲工具]的、相比于 &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 更加紧凑的语法。乐谱语法如下：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 乐谱语法说明&lt;br /&gt;
! 字符 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1 2 3 4 5 6 7&amp;lt;/code&amp;gt; &lt;br /&gt;
| 代表低音区七个音符，从 C3 到 B3。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;d r m f s l t&amp;lt;/code&amp;gt; &lt;br /&gt;
| 代表中音区七个音符，从 C4 到 B4。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D R M F S L T&amp;lt;/code&amp;gt; &lt;br /&gt;
| 代表高音区七个音符，从 C5 到 B5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;8 9 x y X Y&amp;lt;/code&amp;gt;&lt;br /&gt;
| 打击乐：采样率分别为 2048√2、4096、4096√2、……、16384 Hz 的噪波音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将接下来的音符升高半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将接下来的音符降低半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将接下来的音符升高三个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将接下来的音符降低三个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延长前一个音符的时值。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
| 时值计数器增加 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
| 时值计数器除以 2。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
| 整体速度乘以 2。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| 整体速度乘以 0.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
| 开始连音组（三连音无需加点，x 连音加点数为 x-3）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 结束连音组（三连音无需加点，x 连音加点数为 x-3）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后续音符移低 12 个半音（一个八度）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后续音符移高 12 个半音（一个八度）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后续音符移高 1 个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后续音符移低 1 个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音量降低至原来的 1/1.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音量增强至原来的 1.5 倍。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[ ... &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ... ]&amp;lt;/code&amp;gt;&lt;br /&gt;
| 并行播放多个音符或和弦。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;{ ... : ... : ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
| 重复段落。用冒号分隔不同段落，每轮重复依次播放对应段落。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符，暂停一个音符的时值。&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2| *时值计数器决定下一个音符的长度，默认为 1。音符播放后重置。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{collapse|示例：《月半小夜曲》前半段|&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;ip7(&amp;quot;=&amp;gt;[3d7d--3-3d7d--4-2767--2-2544--3-3d7d--3-36dm--rr---7--(dr)m-#5-76---3d7d--3--355--(64--22)767--2-(22)544-(45-3--33)d7d--3-36dm--!rr--!_dd---7-rd!~d!~7__(33)d7d--33-355--642767--22-544-4533d7d--d3-/36d;m--rr--dd--d7-7d76---67dd---r-765-3(56----)67d---7-d-f------(mr)m---_7drmdm!d!~mdrms--ff---rd7!6!~557rf-m!r!~m367d7d7-67dm--r(r----rmr)(d----drd)7-7d76------__&amp;lt;6-[#5|3]&amp;gt;(33)d7d--3--355--64(22)767--222544-4533d7d--d336dm--rr--dd--d7-7!d!~76---67d[d---|6---][r-|7-]765-3(56)6-67d---7-d-f------(mr)m----&amp;lt;&amp;lt;|p___6mltD---26rmf---5rslt---15d-37m-,L36dmlm-26rflRlf37m#st---6mltD---6mlmD---26rflR--5rslt---15d-37m-6mltD---26rmf---dfDf7rf-37rm#s---,L36dmlm-26rfl---,S25rs---15dm37m-,L36dm-l-26rmf-r-4dld37#s-,L367d---4dfl5rt-37s-6mD-4dfl,T7df37rmlmR_7(#sm7#5m,T),M---,L-{[m-|d-|6-]:::}2-{[f-|r-|d-|6-]:::},S-{[t-|s-|f-]:::}1-[m-|d-|5-]3-[t-|#s-|m-],L-{[m-|d-|6-]:::}2-{[f-|r-|6-]:::}4df-37m-,L37dm7dm37m7t---,L367dmd-26rflfr-,S5rsr7r-15dm37#s-,L36dmlm-26rflfr-4dfd37#s-,L367d---4dld5rsr37s-,L3d-4dfd,T7df37rmlmr-7(#sm7#5m,T),M---]&amp;quot;, 184)&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;Tr3()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|cycwin}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Tr3()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和分隔符(可省略，默认为&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;)，使用一种相对松散的语法，音符可以连写。乐谱语法如下:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;Tr3()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;amp;ndash;7&amp;lt;/code&amp;gt; &lt;br /&gt;
| 音符do&amp;amp;ndash;ti。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符升高半音。最多连用两个。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符降低半音。最多连用两个，不得与&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;同时使用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符升高八度。可连用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符降低八度。可连用，不得与&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;同时使用。&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符时值增加一拍。可连用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符时值减半。可连用。&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符，被视作一个正常音符处理。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 调整bpm到...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后面的音符整体增加...个半音(12平均律)。...可以为负数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将时间往回调...&#039;&#039;&#039;拍&#039;&#039;&#039;，可利用此做和弦之类。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;j...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 若...为非负数，跳到...-1个音符的位置继续，若...为负数，则往前跳...个音符再继续，并且j...为&#039;&#039;&#039;一次性&#039;&#039;&#039;的。如:&amp;lt;code&amp;gt;12345;j-2&amp;lt;/code&amp;gt;等效于&amp;lt;code&amp;gt;1234545&amp;lt;/code&amp;gt;，&amp;lt;code&amp;gt;12345;j1&amp;lt;/code&amp;gt;等效于&amp;lt;code&amp;gt;123452345&amp;lt;/code&amp;gt;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;z Z&amp;lt;/code&amp;gt;&lt;br /&gt;
| 分别为-8000Hz与-5657.7Hz的音符，可视为鼓点使用。&lt;br /&gt;
|}&lt;br /&gt;
{{collapse|示例: 《热异常》副歌四句歌词|&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs* &lt;br /&gt;
Tr3(&amp;quot;b183 n 1.# r1 6b r1 4 6.b r1 2b r1 6b 1.# r1 6b r1 4 1. r1 5b r1 1. r1 5b r1 1 6b r1 5b r1 2b 4/3/4/4#/4 r1 2b r1 6_b n/ 3b/ 4 r1 2b 3b/4/ 3b r1 1 r1 6_ 3b r1 1 r1 6_ 4 r1 1 r1 6_ 6b/ r0.5 4/ r0.5 3b/ 6/ 7b r1 4 r1 2b 6.b r1 2b r1 6b 1.# r1 6b r1 4 1./ r0.5 4/ r0.5 2b/ 7b/ 6b r1 2b r1 7_b 4/3/4/ r0.5 2b/ 3/ 4 n 4/ r0.5 1/ 3b/4/3b/4/ r0.5 1#/ 3b/4/ r0.5 1/ r0.5 6_/3b/4/3b/4 r1 3b r1 1 2b../ r0.5 2b./ 1../ r0.5 1./ 7.b r1 4. r1 2.b r1 7b 2..b r1 2b. 6..b r1 2b. r1 6.b 2b.. r1 2.b 1.. r1 6b. r1 4. r1 1. 6b. r1 6b 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ 3./ r0.5 3/ 4.**/ r1.5 2.b**/ r1.5 7b**/ r1.5 4**/ 3.b/ 4. r1 2.b r1 7b r1 4# 3.b/ 4./ 3.b r1 1. r1 6b r1 4 3.b 4. r1 1. r1 6 r1 4 6.b/ r0.5 6b/ 6./ r0.5 6/ 7.b r1 4. r1 2.b r1 7b 6..b r1 6.b 2..b r1 6.b r1 4. r1 2.b 1../ r0.5 1./ 7.b/ r0.5 7b/ 6.b r1 4. r1 2.b r1 6b 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ n/ n 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ 3.b/ 4./ r0.5 1./ r0.5 6/ 3.b/ 2.b/ 1./ 7b&amp;quot;,&amp;quot; &amp;quot;) //right hand&lt;br /&gt;
time=0&lt;br /&gt;
Tr3(&amp;quot;b183 7b__ r1 4__ r1 7b___ 7b__**/ r1.5 4_**/ r1.5 6_b**/ 7b__/ 7b___/ 4__/ 4#__**/ 4#__ 4_/ r0.5 2_b/ 7_b r1 5_b 2b__ r1 2b___ 6b__/ 2b_/ 4_/ 6__b**/ r1 4_ r1 2_b 4__**/ r1.5 4___**/ 4__ 1_/ 4__ 7b__ r1 4__ r1 7b___ 6_b**/ r1.5 4_**/ r1.5 7__b**/ 7__b/ 7___b/ 4__/ 4#__**/ r1.5 4#___**/ 7_b r1 4_# 4_/ r0.5 2_b/ 7__b/ 4__#/ 2__b r1 2___b 6__b**/ r1.5 2_b**/ r1.5 4_**/ 6__b/ 4_ r1 2_b 4__ r1 4___ 4__/ 1_/ 4_/ 1_**/ r1 4_ r1 6_ 7__b r1 7___b 7___b/ 7__b/ 5___b/ 5__b/ r0.5 2___b/ 5___b/ 5__b/ r0.5 2___b/ 2___b/ 2__b/ r0.5 6___b/ 2___b/ 2__b/ r0.5 6___b/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7b___/ 7b__/ r0.5 4__/ 7b___/ 7b__/ r0.5 4__/ 5___b/ 5__b/ r0.5 2__b/ 5___b/ 5__b/ r0.5 2__b/ 2___b/ 2__b/ r0.5 6___b/ 2___b/ 2__b/ r0.5 6___b/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7___b/ 7__b/ r0.5 4__/ 7___b/ 7__b/ r0.5 4__/ 5___b/ 2b__/ r0.5 5b__/ 5___/ 2b__/ r0.5 5b__/ 2___b/ 2__b/ r0.5 6___b/ 2___b/ 2__b/ r0.5 6___b/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7b___/ 7b__/ r0.5 4__/ 7b___/ 7b__/ r0.5 4__/ 5___b/ 5__b/ r0.5 2__b/ 5___b/ 5__b/ r0.5 2__b/ 2___b/ 2__b/ r0.5 6___b/ 2___b/ 2__b/ r0.5 6___b/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7__b r1 4__ r1 7___b&amp;quot;,&amp;quot; &amp;quot;) //left hand&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;infxdi8music()&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;infxdi8music()&amp;lt;/code&amp;gt; 函数接受一个[[希吕表声法]]字符串并解析、播放。目前实现并不完整。&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=42965</id>
		<title>LNNBot/指令/musicjs*</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=42965"/>
		<updated>2026-01-25T07:47:56Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​/* Tr3() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LNNBot指令信息&lt;br /&gt;
|别名=musicjsx&lt;br /&gt;
|属性=别名指令&lt;br /&gt;
|所属插件=&lt;br /&gt;
|父级指令=musicjs&lt;br /&gt;
|所需权限=&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt;&#039;&#039;&#039; 是 {{LNNBot指令链接|musicjs}} 的衍生指令，提供了辅助函数用于更便捷地编写旋律。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;musicjs* &amp;lt;code...&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
除 &amp;lt;code&amp;gt;musicjs&amp;lt;/code&amp;gt; 提供的函数和变量之外，&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 还提供一些由用户定义的函数用来用更简洁的语法编写旋律。&lt;br /&gt;
&lt;br /&gt;
用户可以使用 &amp;lt;code&amp;gt;[[LNNBot/指令/evaluate|eval]]&amp;lt;/code&amp;gt; 指令向 &amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 添加辅助函数，只需在对象 &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;storage.musicjsX&amp;lt;/syntaxhighlight&amp;gt; 上创建属性，名称建议与辅助函数名称相同，值为函数声明的 JavaScript 源代码字符串。&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{LNN}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt;（最初以“&#039;&#039;&#039;A&#039;&#039;&#039;SCII &#039;&#039;&#039;简&#039;&#039;&#039;谱”命名）函数接受一个乐谱字符串，可以通过一种受简谱启发的语法编写乐曲。&lt;br /&gt;
&lt;br /&gt;
此辅助函数还定义了一个变量 &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;，控制音符 &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; 与基准音（由 &amp;lt;code&amp;gt;baseFrequency&amp;lt;/code&amp;gt; 定义，默认为 440 Hz）相差的半音数，初始为 0（即 1=C4），使用 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; 会增减其值。例如使用 5 个 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; 可使 1=F4。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 每次被调用时，会将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5，并将内部的“时值乘数”变量初始化为 1，它与 &amp;lt;code&amp;gt;bpm&amp;lt;/code&amp;gt; 及圆括号的层数共同定义一“拍”的时长。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 名称 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;amp;ndash;&amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音符 || 以当前的一拍为时值创建对应的简谱音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符 || 休止一拍。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
| 低音点 || 将前一个音符降低一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 高音点 || 将前一个音符升高一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 附点 || 将前一个音符的时值延长半拍。&amp;lt;br&amp;gt;连用多个时，每个后续附点延长的时值是前一个附点的一半。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延音线 || 将前一个音符的时值延长一拍。可以跨过小节线甚至减时线的起止。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 小节线 || 无作用，仅辅助阅读。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| 减时线 || 括号内一拍的时长减半，可以嵌套。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降号 || 使下一个音符降低一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升号 || 使下一个音符升高一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
| 分声部 || 方括号内由斜杠分隔的各部分将同时开始演奏。&amp;lt;br&amp;gt;顺序最后的一个部分演奏结束时，无论其他各部分是否演奏完毕，都会继续演奏方括号之后的乐谱。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升调 || 升调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降调 || 降调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：弱 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.33，若已经是 0.33 则设为 0.18。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：中 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：强 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.75，若已经是 0.75 则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;&#039;t&#039;&#039;&#039;riplet/&#039;&#039;&#039;t&#039;&#039;&#039;uplet&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 开始三连音或结束连音 || 如果当前时值乘数为 1，则将其设为 2 / 3；否则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref&amp;gt;irregular &#039;&#039;&#039;d&#039;&#039;&#039;ivision&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;division-num&amp;quot;&amp;gt;&#039;&#039;M&#039;&#039;、&#039;&#039;N&#039;&#039; 可以是正整数或小数；在这些指令之后不可直接跟音符或休止符，需要加空格分隔开。&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;N&#039;&#039; 连音 || 若 &#039;&#039;N&#039;&#039; 是 2 的正整数次幂，则将时值乘数设为 0.75；否则设为 &amp;lt;math&amp;gt;\frac{2^{\lfloor\log_2N\rfloor}}N&amp;lt;/math&amp;gt;。&#039;&#039;N&#039;&#039; 为 1 时实际效果为结束连音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;&#039;&#039;M&#039;&#039;&amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref&amp;gt;&#039;&#039;&#039;r&#039;&#039;&#039;atio&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;division-num&amp;quot;/&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;M&#039;&#039;:&#039;&#039;N&#039;&#039; 连音 || 将时值乘数设为 &#039;&#039;N&#039;&#039; / &#039;&#039;M&#039;&#039;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&amp;lt;ref&amp;gt;&#039;&#039;&#039;s&#039;&#039;&#039;ustain&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 延长 || 将前一个音符实际播放的时间延长一拍，不影响下一个音符开始的时间。&amp;lt;br&amp;gt;可连用，可套在减时线内使用来延长更短的时长。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;&lt;br /&gt;
| 打击乐音符（高） || 以当前的一拍为时值创建采样率为 8000Hz 的噪波音符，&amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; 可以减半或倍增其采样率。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;&lt;br /&gt;
| 打击乐音符（低） || 以当前的一拍为时值创建采样率为 (4000 √2) Hz 的噪波音符，&amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; 可以减半或倍增其采样率。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{collapse|示例：《Somebody That I Used To Know》副歌|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs*&lt;br /&gt;
bpm=129&lt;br /&gt;
aj(&#039;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&#039;) // 1=F&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;(66)|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;3&#039;.(2&#039;)2&#039;6)|655-|&lt;br /&gt;
/pp&lt;br /&gt;
3&#039;&#039;--0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|3&#039;.(2&#039;)2&#039;-|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;(2&#039;3&#039;))|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/p&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(1&#039;01&#039;07070|6060)50|&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(60)00(70)|(60)00((2&#039;3&#039;)0)|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;----)0|&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|6,,&lt;br /&gt;
]`)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|6xL-Bro islptng}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和一个 BPM 数字，使用一种移植自[https://test.vudrux.site/islp/music.html 网页版谱曲工具]的、相比于 &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 更加紧凑的语法。乐谱语法如下：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 乐谱语法说明&lt;br /&gt;
! 字符 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1 2 3 4 5 6 7&amp;lt;/code&amp;gt; &lt;br /&gt;
| 代表低音区七个音符，从 C3 到 B3。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;d r m f s l t&amp;lt;/code&amp;gt; &lt;br /&gt;
| 代表中音区七个音符，从 C4 到 B4。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;D R M F S L T&amp;lt;/code&amp;gt; &lt;br /&gt;
| 代表高音区七个音符，从 C5 到 B5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将接下来的音符升高半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将接下来的音符降低半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将接下来的音符升高三个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将接下来的音符降低三个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延长前一个音符的时值。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
| 时值计数器增加 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
| 时值计数器除以 2。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt;&lt;br /&gt;
| 整体速度乘以 2。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| 整体速度乘以 0.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
| 开始连音组（三连音无需加点，x 连音加点数为 x-3）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 结束连音组（三连音无需加点，x 连音加点数为 x-3）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后续音符移低 12 个半音（一个八度）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后续音符移高 12 个半音（一个八度）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后续音符移高 1 个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后续音符移低 1 个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音量降低至原来的 1/1.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音量增强至原来的 1.5 倍。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[ ... &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ... ]&amp;lt;/code&amp;gt;&lt;br /&gt;
| 并行播放多个音符或和弦。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;{ ... : ... : ... }&amp;lt;/code&amp;gt;&lt;br /&gt;
| 重复段落。用冒号分隔不同段落，每轮重复依次播放对应段落。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符，暂停一个音符的时值。&lt;br /&gt;
|-&lt;br /&gt;
|colspan=2| *时值计数器决定下一个音符的长度，默认为 1。音符播放后重置。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{collapse|示例：《月半小夜曲》前半段|&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;ip7(&amp;quot;=&amp;gt;[3d7d--3-3d7d--4-2767--2-2544--3-3d7d--3-36dm--rr---7--(dr)m-#5-76---3d7d--3--355--(64--22)767--2-(22)544-(45-3--33)d7d--3-36dm--!rr--!_dd---7-rd!~d!~7__(33)d7d--33-355--642767--22-544-4533d7d--d3-/36d;m--rr--dd--d7-7d76---67dd---r-765-3(56----)67d---7-d-f------(mr)m---_7drmdm!d!~mdrms--ff---rd7!6!~557rf-m!r!~m367d7d7-67dm--r(r----rmr)(d----drd)7-7d76------__&amp;lt;6-[#5|3]&amp;gt;(33)d7d--3--355--64(22)767--222544-4533d7d--d336dm--rr--dd--d7-7!d!~76---67d[d---|6---][r-|7-]765-3(56)6-67d---7-d-f------(mr)m----&amp;lt;&amp;lt;|p___6mltD---26rmf---5rslt---15d-37m-,L36dmlm-26rflRlf37m#st---6mltD---6mlmD---26rflR--5rslt---15d-37m-6mltD---26rmf---dfDf7rf-37rm#s---,L36dmlm-26rfl---,S25rs---15dm37m-,L36dm-l-26rmf-r-4dld37#s-,L367d---4dfl5rt-37s-6mD-4dfl,T7df37rmlmR_7(#sm7#5m,T),M---,L-{[m-|d-|6-]:::}2-{[f-|r-|d-|6-]:::},S-{[t-|s-|f-]:::}1-[m-|d-|5-]3-[t-|#s-|m-],L-{[m-|d-|6-]:::}2-{[f-|r-|6-]:::}4df-37m-,L37dm7dm37m7t---,L367dmd-26rflfr-,S5rsr7r-15dm37#s-,L36dmlm-26rflfr-4dfd37#s-,L367d---4dld5rsr37s-,L3d-4dfd,T7df37rmlmr-7(#sm7#5m,T),M---]&amp;quot;, 184)&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;Tr3()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|cycwin}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Tr3()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和分隔符(可省略，默认为&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;)，使用一种相对松散的语法，音符可以连写。乐谱语法如下:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;Tr3()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;amp;ndash;7&amp;lt;/code&amp;gt; &lt;br /&gt;
| 音符do&amp;amp;ndash;ti。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符升高半音。最多连用两个。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符降低半音。最多连用两个，不得与&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;同时使用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符升高八度。可连用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符降低八度。可连用，不得与&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;同时使用。&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符时值增加一拍。可连用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将前面的音符时值减半。可连用。&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符，被视作一个正常音符处理。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 调整bpm到...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后面的音符整体增加...个半音(12平均律)。...可以为负数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将时间往回调...&#039;&#039;&#039;拍&#039;&#039;&#039;，可利用此做和弦之类。&lt;br /&gt;
|}&lt;br /&gt;
{{collapse|示例: 《热异常》副歌四句歌词|&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs* &lt;br /&gt;
Tr3(&amp;quot;b183 n 1.# r1 6b r1 4 6.b r1 2b r1 6b 1.# r1 6b r1 4 1. r1 5b r1 1. r1 5b r1 1 6b r1 5b r1 2b 4/3/4/4#/4 r1 2b r1 6_b n/ 3b/ 4 r1 2b 3b/4/ 3b r1 1 r1 6_ 3b r1 1 r1 6_ 4 r1 1 r1 6_ 6b/ r0.5 4/ r0.5 3b/ 6/ 7b r1 4 r1 2b 6.b r1 2b r1 6b 1.# r1 6b r1 4 1./ r0.5 4/ r0.5 2b/ 7b/ 6b r1 2b r1 7_b 4/3/4/ r0.5 2b/ 3/ 4 n 4/ r0.5 1/ 3b/4/3b/4/ r0.5 1#/ 3b/4/ r0.5 1/ r0.5 6_/3b/4/3b/4 r1 3b r1 1 2b../ r0.5 2b./ 1../ r0.5 1./ 7.b r1 4. r1 2.b r1 7b 2..b r1 2b. 6..b r1 2b. r1 6.b 2b.. r1 2.b 1.. r1 6b. r1 4. r1 1. 6b. r1 6b 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ 3./ r0.5 3/ 4.**/ r1.5 2.b**/ r1.5 7b**/ r1.5 4**/ 3.b/ 4. r1 2.b r1 7b r1 4# 3.b/ 4./ 3.b r1 1. r1 6b r1 4 3.b 4. r1 1. r1 6 r1 4 6.b/ r0.5 6b/ 6./ r0.5 6/ 7.b r1 4. r1 2.b r1 7b 6..b r1 6.b 2..b r1 6.b r1 4. r1 2.b 1../ r0.5 1./ 7.b/ r0.5 7b/ 6.b r1 4. r1 2.b r1 6b 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ n/ n 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ 3.b/ 4./ r0.5 1./ r0.5 6/ 3.b/ 2.b/ 1./ 7b&amp;quot;,&amp;quot; &amp;quot;) //right hand&lt;br /&gt;
time=0&lt;br /&gt;
Tr3(&amp;quot;b183 7b__ r1 4__ r1 7b___ 7b__**/ r1.5 4_**/ r1.5 6_b**/ 7b__/ 7b___/ 4__/ 4#__**/ 4#__ 4_/ r0.5 2_b/ 7_b r1 5_b 2b__ r1 2b___ 6b__/ 2b_/ 4_/ 6__b**/ r1 4_ r1 2_b 4__**/ r1.5 4___**/ 4__ 1_/ 4__ 7b__ r1 4__ r1 7b___ 6_b**/ r1.5 4_**/ r1.5 7__b**/ 7__b/ 7___b/ 4__/ 4#__**/ r1.5 4#___**/ 7_b r1 4_# 4_/ r0.5 2_b/ 7__b/ 4__#/ 2__b r1 2___b 6__b**/ r1.5 2_b**/ r1.5 4_**/ 6__b/ 4_ r1 2_b 4__ r1 4___ 4__/ 1_/ 4_/ 1_**/ r1 4_ r1 6_ 7__b r1 7___b 7___b/ 7__b/ 5___b/ 5__b/ r0.5 2___b/ 5___b/ 5__b/ r0.5 2___b/ 2___b/ 2__b/ r0.5 6___b/ 2___b/ 2__b/ r0.5 6___b/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7b___/ 7b__/ r0.5 4__/ 7b___/ 7b__/ r0.5 4__/ 5___b/ 5__b/ r0.5 2__b/ 5___b/ 5__b/ r0.5 2__b/ 2___b/ 2__b/ r0.5 6___b/ 2___b/ 2__b/ r0.5 6___b/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7___b/ 7__b/ r0.5 4__/ 7___b/ 7__b/ r0.5 4__/ 5___b/ 2b__/ r0.5 5b__/ 5___/ 2b__/ r0.5 5b__/ 2___b/ 2__b/ r0.5 6___b/ 2___b/ 2__b/ r0.5 6___b/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7b___/ 7b__/ r0.5 4__/ 7b___/ 7b__/ r0.5 4__/ 5___b/ 5__b/ r0.5 2__b/ 5___b/ 5__b/ r0.5 2__b/ 2___b/ 2__b/ r0.5 6___b/ 2___b/ 2__b/ r0.5 6___b/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7__b r1 4__ r1 7___b&amp;quot;,&amp;quot; &amp;quot;) //left hand&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;code&amp;gt;infxdi8music()&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;infxdi8music()&amp;lt;/code&amp;gt; 函数接受一个[[希吕表声法]]字符串并解析、播放。目前实现并不完整。&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=42875</id>
		<title>LNNBot/指令/musicjs*</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=42875"/>
		<updated>2026-01-03T13:17:59Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​/* tr3() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LNNBot指令信息&lt;br /&gt;
|别名=&lt;br /&gt;
|属性=别名指令&lt;br /&gt;
|所属插件=&lt;br /&gt;
|父级指令=musicjs&lt;br /&gt;
|所需权限=&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt;&#039;&#039;&#039; 是 {{LNNBot指令链接|musicjs}} 的衍生指令，提供了辅助函数用于更便捷地编写旋律。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;musicjs* &amp;lt;code...&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
除 &amp;lt;code&amp;gt;musicjs&amp;lt;/code&amp;gt; 提供的函数和变量之外，&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 还提供一些由用户定义的函数用来用更简洁的语法编写旋律。&lt;br /&gt;
&lt;br /&gt;
用户可以使用 &amp;lt;code&amp;gt;[[LNNBot/指令/evaluate|eval]]&amp;lt;/code&amp;gt; 指令向 &amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 添加辅助函数，只需在对象 &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;storage.musicjsX&amp;lt;/syntaxhighlight&amp;gt; 上创建属性，名称建议与辅助函数名称相同，值为函数声明的 JavaScript 源代码。&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{LNN}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt;（“&#039;&#039;&#039;A&#039;&#039;&#039;SCII &#039;&#039;&#039;简&#039;&#039;&#039;谱”）函数接受一个乐谱字符串，可以通过一种受简谱启发的语法编写乐曲。&lt;br /&gt;
&lt;br /&gt;
此辅助函数还定义了一个变量 &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;，控制音符 &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; 与基准音（由 &amp;lt;code&amp;gt;baseFrequency&amp;lt;/code&amp;gt; 定义，默认为 440 Hz）相差的半音数，初始为 0（即 1=C4），使用 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; 会增减其值。例如使用 5 个 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; 可使 1=F4。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 每次被调用时，会将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5，并将内部的“时值乘数”变量初始化为 1，它与 &amp;lt;code&amp;gt;bpm&amp;lt;/code&amp;gt; 及圆括号的层数共同定义一“拍”的时长。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 名称 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;amp;ndash;&amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音符 || 以当前的一拍为时值创建对应的简谱音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符 || 休止一拍。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
| 低音点 || 将前一个音符降低一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 高音点 || 将前一个音符升高一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 附点 || 将前一个音符的时值延长半拍。&amp;lt;br&amp;gt;连用多个时，每个后续附点延长的时值是前一个附点的一半。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延音线 || 将前一个音符的时值延长一拍。可以跨过小节线甚至减时线的起止。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 小节线 || 无作用，仅辅助阅读。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| 减时线 || 括号内一拍的时长减半，可以嵌套。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降号 || 使下一个音符降低一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升号 || 使下一个音符升高一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
| 分声部 || 方括号内由斜杠分隔的各部分将同时开始演奏。&amp;lt;br&amp;gt;顺序最后的一个部分演奏结束时，无论其他各部分是否演奏完毕，都会继续演奏方括号之后的乐谱。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升调 || 升调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降调 || 降调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：弱 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.33，若已经是 0.33 则设为 0.18。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：中 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：强 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.75，若已经是 0.75 则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;&lt;br /&gt;
| 开始三连音或结束连音（&#039;&#039;&#039;t&#039;&#039;&#039;riplet/&#039;&#039;&#039;t&#039;&#039;&#039;uplet） || 如果当前时值乘数为 1，则将其设为 2 / 3；否则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref name=&amp;quot;division-num&amp;quot;&amp;gt;&#039;&#039;M&#039;&#039;、&#039;&#039;N&#039;&#039; 可以是正整数或小数；在这些指令之后不可直接跟音符或休止符，需要加空格分隔开。&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;N&#039;&#039; 连音（irregular &#039;&#039;&#039;d&#039;&#039;&#039;ivision） || 若 &#039;&#039;N&#039;&#039; 是 2 的正整数次幂，则将时值乘数设为 0.75；否则设为 &amp;lt;math&amp;gt;\frac{2^{\lfloor\log_2N\rfloor}}N&amp;lt;/math&amp;gt;。&#039;&#039;N&#039;&#039; 为 1 时实际效果为结束连音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;&#039;&#039;M&#039;&#039;&amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref name=&amp;quot;division-num&amp;quot;/&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;M&#039;&#039;:&#039;&#039;N&#039;&#039; 连音（&#039;&#039;&#039;r&#039;&#039;&#039;atio） || 将时值乘数设为 &#039;&#039;N&#039;&#039; / &#039;&#039;M&#039;&#039;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延长（&#039;&#039;&#039;s&#039;&#039;&#039;ustain） || 将前一个音符实际播放的时间延长一拍，不影响下一个音符开始的时间。&amp;lt;br&amp;gt;可连用，可套在减时线内使用来延长更短的时长。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{collapse|示例：《Somebody That I Used To Know》副歌|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs*&lt;br /&gt;
bpm=129&lt;br /&gt;
aj(&#039;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&#039;) // 1=F&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;(66)|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;3&#039;.(2&#039;)2&#039;6)|655-|&lt;br /&gt;
/pp&lt;br /&gt;
3&#039;&#039;--0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|3&#039;.(2&#039;)2&#039;-|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;(2&#039;3&#039;))|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/p&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(1&#039;01&#039;07070|6060)50|&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(60)00(70)|(60)00((2&#039;3&#039;)0)|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;----)0|&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|6,,&lt;br /&gt;
]`)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|6xL-Bro islptng}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和一个 BPM 数字，使用一种相比于 &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 更加紧凑的语法。乐谱语法见此页面：[https://test.vudrux.site/islp/music.html ip7 music]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|cycwin}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和分隔符(可省略，默认为;)，使用一种相对松散的语法，在音符间可以省略空格。返回的是音符列表字符串，需搭配模板代码使用(参见示例)。乐谱语法如下:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;amp;ndash;7&amp;lt;/code&amp;gt; &lt;br /&gt;
| 音符do&amp;amp;ndash;ti。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符升高半度。最多连用两个。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符降低半度。最多连用两个。不得与&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;重复。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符&#039;&#039;&#039;延长&#039;&#039;&#039;一拍。可复用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符时值除以2。可复用。&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符，被视作一个正常音符处理。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 调整bpm到...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后面的音符整体增加...个音(12平均律)。...可以为负数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将时间往回调...&#039;&#039;&#039;拍&#039;&#039;&#039;，可利用此做和弦之类。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{{collapse|示例: 《热异常》副歌四句歌词(似乎有问题) |&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs* &lt;br /&gt;
for(let i of eval(tr3(&amp;quot;g0 b183 n 1.# r1 6b r1 4 6.b r1 2b r1 6b 1.# r1 6b r1 4 1. r1 5b r1 1. r1 5b r1 1 6b r1 5b r1 2b 4/3/4/4#/4 r1 2b r1 6_b n/ 3b/ 4 r1 2b 3b/4/ 3b r1 1 r1 6_ 3b r1 1 r1 6_ 4 r1 1 r1 6_ 6b/ r0.5 4/ r0.5 3b/ 6/ 7b r1 4 r1 2b 6.b r1 2b r1 6b 1.# r1 6b r1 4 1./ r0.5 4/ r0.5 2b/ 7b/ 6b r1 2b r1 7_b 4/3/4/ r0.5 2b/ 3/ 4 n 4/ r0.5 1/ 3b/4/3b/4/ r0.5 1#/ 3b/4/ r0.5 1/ r0.5 6_/3b/4/3b/4 r1 3b r1 1 2b../ r0.5 2b./ 1../ r0.5 1./ 7.b r1 4. r1 2.b r1 7b 2..b r1 2b. 6..b r1 2b. r1 6.b 2b.. r1 2.b 1.. r1 6b. r1 4. r1 1. 6b. r1 6b 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ 3./ r0.5 3/ 4.**/ r1.5 2.b**/ r1.5 7b**/ r1.5 4**/ 3.b/ 4. r1 2.b r1 7b r1 4# 3.b/ 4./ 3.b r1 1. r1 6b r1 4 3.b 4. r1 1. r1 6 r1 4 6.b/ r0.5 6b/ 6./ r0.5 6/ 7.b r1 4. r1 2.b r1 7b 6..b r1 6.b 2..b r1 6.b r1 4. r1 2.b 1../ r0.5 1./ 7.b/ r0.5 7b/ 6.b r1 4. r1 2.b r1 6b 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ n/ n 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ 3.b/ 4./ r0.5 1./ r0.5 6/ 3.b/ 2.b/ 1./ 7b&amp;quot;,&amp;quot; &amp;quot;)))note(eval(i[0]),i[1]) //right hand&lt;br /&gt;
time=0&lt;br /&gt;
for(let i of eval(tr3(&amp;quot;b183 7b__ r1 4__ r1 7b___ 7b__**/ r1.5 4_**/ r1.5 6_b**/ 7b__/ 7b___/ 4__/ 4#__**/ 4#__ 4_/ r0.5 2_b/ 7_b r1 5_b 2b__ r1 2b___ 6b__/ 2b_/ 4_/ 6__b**/ r1 4_ r1 2_b 4__**/ r1.5 4___**/ 4__ 1_/ 4__ 7b__ r1 4__ r1 7b___ 6_b**/ r1.5 4_**/ r1.5 7__b**/ 7__b/ 7___b/ 4__/ 4#__**/ r1.5 4#___**/ 7_b r1 4_# 4_/ r1 2_b/ 7__b/ 4__#/ 2__b r1 2___b 6__b**/ r1.5 2_b**/ r1.5 4_**/ 6__b/ 4_ r1 2_b 4__ r1 4___ 4__/ 1_/ 4_/ 1_**/ r1 4_ r1 6_ 7__b r1 7___b 7___b/ 7__b/ 5___b/ r0.5 2___b/ 7__b/ 5___b/ r0.5 2___b/ 2____b/ 5___b/ r0.5 1___/ 2____b/ 5___b/ r0.5 1___/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7b___/ 7b__/ r0.5 4__/ 7b___/ 7b__/ r0.5 4__/ 5___b/ 5__b/ r0.5 2__b/ 5___b/ 5__b/ r0.5 2__b/ 2____b/ 5___b/ r0.5 1___/ 2____b/ 5___b/ r0.5 1___/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7___b/ 7__b/ r0.5 4__/ 7___b/ 7__b/ r0.5 4__/ 4___/ 2b__/ r0.5 5b__/ 4___/ 2b__/ r0.5 5b__/ g0.8 7__b/ 5___b/ r0.5 2___b/ 7__b/ 5___b/ r0.5 2___b/ 2____b/ 5___b/ r0.5 1___/ 2____b/ 5___b/ r0.5 1___/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7b___/ 7b__/ r0.5 4__/ 7b___/ 7b__/ r0.5 4__/ 5___b/ 5__b/ r0.5 2__b/ 5___b/ 5__b/ r0.5 2__b/ 2____b/ 5___b/ r0.5 1___/ 2____b/ 5___b/ r0.5 1___/ n 7__b r1 4__ r1 7___b&amp;quot;,&amp;quot; &amp;quot;)))note(eval(i[0]),i[1])//left hand&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=42874</id>
		<title>LNNBot/指令/musicjs*</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=42874"/>
		<updated>2026-01-03T12:50:01Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​/* tr3() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LNNBot指令信息&lt;br /&gt;
|别名=&lt;br /&gt;
|属性=别名指令&lt;br /&gt;
|所属插件=&lt;br /&gt;
|父级指令=musicjs&lt;br /&gt;
|所需权限=&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt;&#039;&#039;&#039; 是 {{LNNBot指令链接|musicjs}} 的衍生指令，提供了辅助函数用于更便捷地编写旋律。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;musicjs* &amp;lt;code...&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
除 &amp;lt;code&amp;gt;musicjs&amp;lt;/code&amp;gt; 提供的函数和变量之外，&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 还提供一些由用户定义的函数用来用更简洁的语法编写旋律。&lt;br /&gt;
&lt;br /&gt;
用户可以使用 &amp;lt;code&amp;gt;[[LNNBot/指令/evaluate|eval]]&amp;lt;/code&amp;gt; 指令向 &amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 添加辅助函数，只需在对象 &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;storage.musicjsX&amp;lt;/syntaxhighlight&amp;gt; 上创建属性，名称建议与辅助函数名称相同，值为函数声明的 JavaScript 源代码。&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{LNN}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt;（“&#039;&#039;&#039;A&#039;&#039;&#039;SCII &#039;&#039;&#039;简&#039;&#039;&#039;谱”）函数接受一个乐谱字符串，可以通过一种受简谱启发的语法编写乐曲。&lt;br /&gt;
&lt;br /&gt;
此辅助函数还定义了一个变量 &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;，控制音符 &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; 与基准音（由 &amp;lt;code&amp;gt;baseFrequency&amp;lt;/code&amp;gt; 定义，默认为 440 Hz）相差的半音数，初始为 0（即 1=C4），使用 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; 会增减其值。例如使用 5 个 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; 可使 1=F4。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 每次被调用时，会将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5，并将内部的“时值乘数”变量初始化为 1，它与 &amp;lt;code&amp;gt;bpm&amp;lt;/code&amp;gt; 及圆括号的层数共同定义一“拍”的时长。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 名称 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;amp;ndash;&amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音符 || 以当前的一拍为时值创建对应的简谱音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符 || 休止一拍。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
| 低音点 || 将前一个音符降低一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 高音点 || 将前一个音符升高一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 附点 || 将前一个音符的时值延长半拍。&amp;lt;br&amp;gt;连用多个时，每个后续附点延长的时值是前一个附点的一半。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延音线 || 将前一个音符的时值延长一拍。可以跨过小节线甚至减时线的起止。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 小节线 || 无作用，仅辅助阅读。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| 减时线 || 括号内一拍的时长减半，可以嵌套。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降号 || 使下一个音符降低一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升号 || 使下一个音符升高一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
| 分声部 || 方括号内由斜杠分隔的各部分将同时开始演奏。&amp;lt;br&amp;gt;顺序最后的一个部分演奏结束时，无论其他各部分是否演奏完毕，都会继续演奏方括号之后的乐谱。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升调 || 升调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降调 || 降调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：弱 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.33，若已经是 0.33 则设为 0.18。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：中 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：强 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.75，若已经是 0.75 则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;&lt;br /&gt;
| 开始三连音或结束连音（&#039;&#039;&#039;t&#039;&#039;&#039;riplet/&#039;&#039;&#039;t&#039;&#039;&#039;uplet） || 如果当前时值乘数为 1，则将其设为 2 / 3；否则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref name=&amp;quot;division-num&amp;quot;&amp;gt;&#039;&#039;M&#039;&#039;、&#039;&#039;N&#039;&#039; 可以是正整数或小数；在这些指令之后不可直接跟音符或休止符，需要加空格分隔开。&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;N&#039;&#039; 连音（irregular &#039;&#039;&#039;d&#039;&#039;&#039;ivision） || 若 &#039;&#039;N&#039;&#039; 是 2 的正整数次幂，则将时值乘数设为 0.75；否则设为 &amp;lt;math&amp;gt;\frac{2^{\lfloor\log_2N\rfloor}}N&amp;lt;/math&amp;gt;。&#039;&#039;N&#039;&#039; 为 1 时实际效果为结束连音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;&#039;&#039;M&#039;&#039;&amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref name=&amp;quot;division-num&amp;quot;/&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;M&#039;&#039;:&#039;&#039;N&#039;&#039; 连音（&#039;&#039;&#039;r&#039;&#039;&#039;atio） || 将时值乘数设为 &#039;&#039;N&#039;&#039; / &#039;&#039;M&#039;&#039;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延长（&#039;&#039;&#039;s&#039;&#039;&#039;ustain） || 将前一个音符实际播放的时间延长一拍，不影响下一个音符开始的时间。&amp;lt;br&amp;gt;可连用，可套在减时线内使用来延长更短的时长。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{collapse|示例：《Somebody That I Used To Know》副歌|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs*&lt;br /&gt;
bpm=129&lt;br /&gt;
aj(&#039;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&#039;) // 1=F&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;(66)|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;3&#039;.(2&#039;)2&#039;6)|655-|&lt;br /&gt;
/pp&lt;br /&gt;
3&#039;&#039;--0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|3&#039;.(2&#039;)2&#039;-|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;(2&#039;3&#039;))|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/p&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(1&#039;01&#039;07070|6060)50|&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(60)00(70)|(60)00((2&#039;3&#039;)0)|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;----)0|&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|6,,&lt;br /&gt;
]`)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|6xL-Bro islptng}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和一个 BPM 数字，使用一种相比于 &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 更加紧凑的语法。乐谱语法见此页面：[https://test.vudrux.site/islp/music.html ip7 music]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|cycwin}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和分隔符(可省略，默认为;)，使用一种相对松散的语法，在音符间可以省略空格。返回的是音符列表字符串，需搭配模板代码使用(参见示例)。乐谱语法如下:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;amp;ndash;7&amp;lt;/code&amp;gt; &lt;br /&gt;
| 音符do&amp;amp;ndash;ti。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符升高半度。最多连用两个。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符降低半度。最多连用两个。不得与&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;重复。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符&#039;&#039;&#039;延长&#039;&#039;&#039;一拍。可复用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符时值除以2。可复用。&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符，被视作一个正常音符处理。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 调整bpm到...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后面的音符整体增加...个音(12平均律)。...可以为负数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将时间往回调...&#039;&#039;&#039;拍&#039;&#039;&#039;，可利用此做和弦之类。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{{collapse|示例: 《热异常》副歌四句歌词(似乎有问题) |&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs* &lt;br /&gt;
for(let i of eval(tr3(&amp;quot;g0 b183 n 1.# r1 6b r1 4 6.b r1 2b r1 6b 1.# r1 6b r1 4 1. r1 5b r1 1. r1 5b r1 1 6b r1 5b r1 2b 4/3/4/4#/4 r1 2b r1 6_b n/ 3b/ 4 r1 2b 3b/4/ 3b r1 1 r1 6_ 3b r1 1 r1 6_ 4 r1 1 r1 6_ 6b/ r0.5 4/ r0.5 3b/ 6/ 7b r1 4 r1 2b 6.b r1 2b r1 6b 1.# r1 6b r1 4 1./ r0.5 4/ r0.5 2b/ 7b/ 6b r1 2b r1 7_b 4/3/4/ r0.5 2b/ 3/ 4 n 4/ r0.5 1/ 3b/4/3b/4/ r0.5 1#/ 3b/4/ r0.5 1/ r0.5 6_/3b/4/3b/4 r1 3b r1 1 2b../ r0.5 2b./ 1../ r0.5 1./ 7.b r1 4. r1 2.b r1 7b 2..b r1 2b. 6..b r1 2b. r1 6.b 2b.. r1 2.b 1.. r1 6b. r1 4. r1 1. 6b. r1 6b 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ 3./ r0.5 3/ 4.**/ r1.5 2.b**/ r1.5 7b**/ r1.5 4**/ 3.b/ 4. r1 2.b r1 7b r1 4# 3.b/ 4./ 3.b r1 1. r1 6b r1 4 3.b 4. r1 1. r1 6 r1 4 6.b/ r0.5 6b/ 6./ r0.5 6/ 7.b r1 4. r1 2.b r1 7b 6..b r1 6.b 2..b r1 6.b r1 4. r1 2.b 1../ r0.5 1./ 7.b/ r0.5 7b/ 6.b r1 4. r1 2.b r1 6b 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ 3./ r0.5 3/ 4./ r0.5 4/ n/ n 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ r0.5 2.b/ r0.5 7b/ 3.b/ 4./ 3.b/ 4./ r0.5 1./ r0.5 6/ 3.b/ 2.b/ 1./ 7b&amp;quot;,&amp;quot; &amp;quot;)))note(eval(i[0]),i[1]) //right hand&lt;br /&gt;
time=0&lt;br /&gt;
for(let i of eval(tr3(&amp;quot;b183 7b__ r1 4__ r1 7b___ 7b__**/ r1.5 4_**/ r1.5 6_b**/ 7b__/ 7b___/ 4__/ 4#__**/ 4#__ 4_/ r0.5 2_b/ 7_b r1 5_b 2b__ r1 2b___ 6b__/ 2b_/ 4_/ 6__b**/ r1 4_ r1 2_b 4__**/ r1.5 4___**/ 4__ 1_/ 4__ 7b__ r1 4__ r1 7b___ 6_b**/ r1.5 4_**/ r1.5 7__b**/ 7__b/ 7___b/ 4__/ 4#__**/ r1.5 4#___**/ 7_b r1 4_# 4_/ r1 2_b/ 7__b/ 4__#/ 2__b r1 2___b 6__b**/ r1.5 2_b**/ r1.5 4_**/ 6__b/ 4_ r1 2_b 4__ r1 4___ 4__/ 1_/ 4_/ 1_**/ r1 4_ r1 6_ 7__b r1 7___b 7___b/ 7__b/ 5___b/ r0.5 2___b/ 7__b/ 5___b/ r0.5 2___b/ 2____b/ 5___b/ r0.5 1___/ 2____b/ 5___b/ r0.5 1___/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7b___/ 7b__/ r0.5 4__/ 7b___/ 7b__/ r0.5 4__/ 5___b/ 5__b/ r0.5 2__b/ 5___b/ 5__b/ r0.5 2__b/ 2____b/ 5___b/ r0.5 1___/ 2____b/ 5___b/ r0.5 1___/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7___b/ 7__b/ r0.5 4__/ 7___b/ 7__b/ r0.5 4__/ 4___/ 2b__/ r0.5 5b__/ 4___/ 2b__/ r0.5 5b__/ g0.8 7__b/ 5___b/ r0.5 2___b/ 7__b/ 5___b/ r0.5 2___b/ 2____b/ 5___b/ r0.5 1___/ 2____b/ 5___b/ r0.5 1___/ 4___/ 4__/ r0.5 1__/ 4___/ 4__/ r0.5 1__/ 7b___/ 7b__/ r0.5 4__/ 7b___/ 7b__/ r0.5 4__/ 5___b/ 5__b/ r0.5 2__b/ 5___b/ 5__b/ r0.5 2__b/ 2____b/ 5___b/ r0.5 1___/ 2____b/ 5___b/ r0.5 1___/ n 7__b r1 4__ r1 7___b&amp;quot;,&amp;quot; &amp;quot;)))note(eval(i[0]),i[1])//left hand&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=42873</id>
		<title>LNNBot/指令/musicjs*</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=42873"/>
		<updated>2026-01-03T11:30:24Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​/* tr3() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LNNBot指令信息&lt;br /&gt;
|别名=&lt;br /&gt;
|属性=别名指令&lt;br /&gt;
|所属插件=&lt;br /&gt;
|父级指令=musicjs&lt;br /&gt;
|所需权限=&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt;&#039;&#039;&#039; 是 {{LNNBot指令链接|musicjs}} 的衍生指令，提供了辅助函数用于更便捷地编写旋律。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;musicjs* &amp;lt;code...&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
除 &amp;lt;code&amp;gt;musicjs&amp;lt;/code&amp;gt; 提供的函数和变量之外，&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 还提供一些由用户定义的函数用来用更简洁的语法编写旋律。&lt;br /&gt;
&lt;br /&gt;
用户可以使用 &amp;lt;code&amp;gt;[[LNNBot/指令/evaluate|eval]]&amp;lt;/code&amp;gt; 指令向 &amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 添加辅助函数，只需在对象 &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;storage.musicjsX&amp;lt;/syntaxhighlight&amp;gt; 上创建属性，名称建议与辅助函数名称相同，值为函数声明的 JavaScript 源代码。&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{LNN}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt;（“&#039;&#039;&#039;A&#039;&#039;&#039;SCII &#039;&#039;&#039;简&#039;&#039;&#039;谱”）函数接受一个乐谱字符串，可以通过一种受简谱启发的语法编写乐曲。&lt;br /&gt;
&lt;br /&gt;
此辅助函数还定义了一个变量 &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;，控制音符 &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; 与基准音（由 &amp;lt;code&amp;gt;baseFrequency&amp;lt;/code&amp;gt; 定义，默认为 440 Hz）相差的半音数，初始为 0（即 1=C4），使用 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; 会增减其值。例如使用 5 个 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; 可使 1=F4。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 每次被调用时，会将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5，并将内部的“时值乘数”变量初始化为 1，它与 &amp;lt;code&amp;gt;bpm&amp;lt;/code&amp;gt; 及圆括号的层数共同定义一“拍”的时长。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 名称 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;amp;ndash;&amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音符 || 以当前的一拍为时值创建对应的简谱音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符 || 休止一拍。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
| 低音点 || 将前一个音符降低一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 高音点 || 将前一个音符升高一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 附点 || 将前一个音符的时值延长半拍。&amp;lt;br&amp;gt;连用多个时，每个后续附点延长的时值是前一个附点的一半。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延音线 || 将前一个音符的时值延长一拍。可以跨过小节线甚至减时线的起止。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 小节线 || 无作用，仅辅助阅读。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| 减时线 || 括号内一拍的时长减半，可以嵌套。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降号 || 使下一个音符降低一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升号 || 使下一个音符升高一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
| 分声部 || 方括号内由斜杠分隔的各部分将同时开始演奏。&amp;lt;br&amp;gt;顺序最后的一个部分演奏结束时，无论其他各部分是否演奏完毕，都会继续演奏方括号之后的乐谱。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升调 || 升调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降调 || 降调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：弱 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.33，若已经是 0.33 则设为 0.18。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：中 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：强 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.75，若已经是 0.75 则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;&lt;br /&gt;
| 开始三连音或结束连音（&#039;&#039;&#039;t&#039;&#039;&#039;riplet/&#039;&#039;&#039;t&#039;&#039;&#039;uplet） || 如果当前时值乘数为 1，则将其设为 2 / 3；否则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref name=&amp;quot;division-num&amp;quot;&amp;gt;&#039;&#039;M&#039;&#039;、&#039;&#039;N&#039;&#039; 可以是正整数或小数；在这些指令之后不可直接跟音符或休止符，需要加空格分隔开。&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;N&#039;&#039; 连音（irregular &#039;&#039;&#039;d&#039;&#039;&#039;ivision） || 若 &#039;&#039;N&#039;&#039; 是 2 的正整数次幂，则将时值乘数设为 0.75；否则设为 &amp;lt;math&amp;gt;\frac{2^{\lfloor\log_2N\rfloor}}N&amp;lt;/math&amp;gt;。&#039;&#039;N&#039;&#039; 为 1 时实际效果为结束连音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;&#039;&#039;M&#039;&#039;&amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref name=&amp;quot;division-num&amp;quot;/&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;M&#039;&#039;:&#039;&#039;N&#039;&#039; 连音（&#039;&#039;&#039;r&#039;&#039;&#039;atio） || 将时值乘数设为 &#039;&#039;N&#039;&#039; / &#039;&#039;M&#039;&#039;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延长（&#039;&#039;&#039;s&#039;&#039;&#039;ustain） || 将前一个音符实际播放的时间延长一拍，不影响下一个音符开始的时间。&amp;lt;br&amp;gt;可连用，可套在减时线内使用来延长更短的时长。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{collapse|示例：《Somebody That I Used To Know》副歌|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs*&lt;br /&gt;
bpm=129&lt;br /&gt;
aj(&#039;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&#039;) // 1=F&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;(66)|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;3&#039;.(2&#039;)2&#039;6)|655-|&lt;br /&gt;
/pp&lt;br /&gt;
3&#039;&#039;--0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|3&#039;.(2&#039;)2&#039;-|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;(2&#039;3&#039;))|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/p&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(1&#039;01&#039;07070|6060)50|&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(60)00(70)|(60)00((2&#039;3&#039;)0)|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;----)0|&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|6,,&lt;br /&gt;
]`)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|6xL-Bro islptng}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和一个 BPM 数字，使用一种相比于 &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 更加紧凑的语法。乐谱语法见此页面：[https://test.vudrux.site/islp/music.html ip7 music]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|cycwin}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和分隔符(可省略，默认为;)，使用一种相对松散的语法，在音符间可以省略空格。返回的是音符列表字符串，需搭配模板代码使用(参见示例)。乐谱语法如下:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;amp;ndash;7&amp;lt;/code&amp;gt; &lt;br /&gt;
| 音符do&amp;amp;ndash;ti。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符升高半度。最多连用两个。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符降低半度。最多连用两个。不得与&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;重复。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符&#039;&#039;&#039;延长&#039;&#039;&#039;一拍。可复用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符时值除以2。可复用。&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符，被视作一个正常音符处理。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 调整bpm到...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后面的音符整体增加...个音(12平均律)。...可以为负数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将时间往回调...&#039;&#039;&#039;拍&#039;&#039;&#039;，可利用此做和弦之类。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
{{collapse|示例: 《热异常》前两句歌词 |&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs* &lt;br /&gt;
for(let i of eval(tr3(&amp;quot;g0 b183 n 1.# 5.# r1 2.# r1 7b 1.# 1. r1 4 r1 2# 6b 4/ r0.5 1/ 3/4/3/ 4 r1 2b r1 7b_ n/ g0.6 3b.******/ r3.5 5b******/ n/ n/// 1.#/// 2b.**// 3b./ 4./ 6b/ 7b/ n 3b/ 4/4/3b/4/3b/ n/3b46b/6/7b r1 4 r1 2b 5_b/ 4/ n/ 5_b/2b/ r0.5 7_b/1/6_b/n/6_b/n/3b/6_b/1&amp;quot;,&amp;quot; &amp;quot;)))note(eval(i[0]),i[1])&lt;br /&gt;
time=0&lt;br /&gt;
for(let i of eval(tr3(&amp;quot;b183 7___b r1 7____b 7__b/ 4_ 7_b/ 2b/ 4**/ 2b_**/ r1.5 2b__**/ 4__**/ r1.5 4___**/ 5__b/ r0.5 5___b/ 7___b/ 5___b/ 5__b************/ 7__b r1 7___b 7___b/ 4__ 7b__ 7b_**/ r1.5 6b_**/ r1.5 4_**/ 7b__/ 7b___**/ 7b___/ 4__/ r0.5 4___/ 6___b/ 5__b**/ r1.5 5___b**/ 5__b/ 2b_****/ 4_ 2b_4_/4__/6__b/&amp;quot;,&amp;quot; &amp;quot;)))note(eval(i[0]),i[1])&amp;lt;/syntaxhighlight&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=42872</id>
		<title>LNNBot/指令/musicjs*</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=42872"/>
		<updated>2026-01-03T11:28:05Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​/* tr3() */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LNNBot指令信息&lt;br /&gt;
|别名=&lt;br /&gt;
|属性=别名指令&lt;br /&gt;
|所属插件=&lt;br /&gt;
|父级指令=musicjs&lt;br /&gt;
|所需权限=&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt;&#039;&#039;&#039; 是 {{LNNBot指令链接|musicjs}} 的衍生指令，提供了辅助函数用于更便捷地编写旋律。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;musicjs* &amp;lt;code...&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
除 &amp;lt;code&amp;gt;musicjs&amp;lt;/code&amp;gt; 提供的函数和变量之外，&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 还提供一些由用户定义的函数用来用更简洁的语法编写旋律。&lt;br /&gt;
&lt;br /&gt;
用户可以使用 &amp;lt;code&amp;gt;[[LNNBot/指令/evaluate|eval]]&amp;lt;/code&amp;gt; 指令向 &amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 添加辅助函数，只需在对象 &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;storage.musicjsX&amp;lt;/syntaxhighlight&amp;gt; 上创建属性，名称建议与辅助函数名称相同，值为函数声明的 JavaScript 源代码。&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{LNN}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt;（“&#039;&#039;&#039;A&#039;&#039;&#039;SCII &#039;&#039;&#039;简&#039;&#039;&#039;谱”）函数接受一个乐谱字符串，可以通过一种受简谱启发的语法编写乐曲。&lt;br /&gt;
&lt;br /&gt;
此辅助函数还定义了一个变量 &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;，控制音符 &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; 与基准音（由 &amp;lt;code&amp;gt;baseFrequency&amp;lt;/code&amp;gt; 定义，默认为 440 Hz）相差的半音数，初始为 0（即 1=C4），使用 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; 会增减其值。例如使用 5 个 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; 可使 1=F4。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 每次被调用时，会将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5，并将内部的“时值乘数”变量初始化为 1，它与 &amp;lt;code&amp;gt;bpm&amp;lt;/code&amp;gt; 及圆括号的层数共同定义一“拍”的时长。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 名称 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;amp;ndash;&amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音符 || 以当前的一拍为时值创建对应的简谱音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符 || 休止一拍。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
| 低音点 || 将前一个音符降低一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 高音点 || 将前一个音符升高一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 附点 || 将前一个音符的时值延长半拍。&amp;lt;br&amp;gt;连用多个时，每个后续附点延长的时值是前一个附点的一半。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延音线 || 将前一个音符的时值延长一拍。可以跨过小节线甚至减时线的起止。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 小节线 || 无作用，仅辅助阅读。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| 减时线 || 括号内一拍的时长减半，可以嵌套。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降号 || 使下一个音符降低一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升号 || 使下一个音符升高一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
| 分声部 || 方括号内由斜杠分隔的各部分将同时开始演奏。&amp;lt;br&amp;gt;顺序最后的一个部分演奏结束时，无论其他各部分是否演奏完毕，都会继续演奏方括号之后的乐谱。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升调 || 升调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降调 || 降调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：弱 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.33，若已经是 0.33 则设为 0.18。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：中 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：强 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.75，若已经是 0.75 则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;&lt;br /&gt;
| 开始三连音或结束连音（&#039;&#039;&#039;t&#039;&#039;&#039;riplet/&#039;&#039;&#039;t&#039;&#039;&#039;uplet） || 如果当前时值乘数为 1，则将其设为 2 / 3；否则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref name=&amp;quot;division-num&amp;quot;&amp;gt;&#039;&#039;M&#039;&#039;、&#039;&#039;N&#039;&#039; 可以是正整数或小数；在这些指令之后不可直接跟音符或休止符，需要加空格分隔开。&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;N&#039;&#039; 连音（irregular &#039;&#039;&#039;d&#039;&#039;&#039;ivision） || 若 &#039;&#039;N&#039;&#039; 是 2 的正整数次幂，则将时值乘数设为 0.75；否则设为 &amp;lt;math&amp;gt;\frac{2^{\lfloor\log_2N\rfloor}}N&amp;lt;/math&amp;gt;。&#039;&#039;N&#039;&#039; 为 1 时实际效果为结束连音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;&#039;&#039;M&#039;&#039;&amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref name=&amp;quot;division-num&amp;quot;/&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;M&#039;&#039;:&#039;&#039;N&#039;&#039; 连音（&#039;&#039;&#039;r&#039;&#039;&#039;atio） || 将时值乘数设为 &#039;&#039;N&#039;&#039; / &#039;&#039;M&#039;&#039;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延长（&#039;&#039;&#039;s&#039;&#039;&#039;ustain） || 将前一个音符实际播放的时间延长一拍，不影响下一个音符开始的时间。&amp;lt;br&amp;gt;可连用，可套在减时线内使用来延长更短的时长。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{collapse|示例：《Somebody That I Used To Know》副歌|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs*&lt;br /&gt;
bpm=129&lt;br /&gt;
aj(&#039;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&#039;) // 1=F&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;(66)|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;3&#039;.(2&#039;)2&#039;6)|655-|&lt;br /&gt;
/pp&lt;br /&gt;
3&#039;&#039;--0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|3&#039;.(2&#039;)2&#039;-|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;(2&#039;3&#039;))|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/p&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(1&#039;01&#039;07070|6060)50|&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(60)00(70)|(60)00((2&#039;3&#039;)0)|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;----)0|&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|6,,&lt;br /&gt;
]`)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|6xL-Bro islptng}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和一个 BPM 数字，使用一种相比于 &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 更加紧凑的语法。乐谱语法见此页面：[https://test.vudrux.site/islp/music.html ip7 music]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|cycwin}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和分隔符(可省略，默认为;)，使用一种相对松散的语法，在音符间可以省略空格。乐谱语法如下:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;amp;ndash;7&amp;lt;/code&amp;gt; &lt;br /&gt;
| 音符do&amp;amp;ndash;ti。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符升高半度。最多连用两个。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符降低半度。最多连用两个。不得与&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;重复。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符&#039;&#039;&#039;延长&#039;&#039;&#039;一拍。可复用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符时值除以2。可复用。&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符，被视作一个正常音符处理。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 调整bpm到...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后面的音符整体增加...个音(12平均律)。...可以为负数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将时间往回调...&#039;&#039;&#039;拍&#039;&#039;&#039;，可利用此做和弦之类。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
{{collapse|示例: 《热异常》前两句歌词 |&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs* for(let i of eval(tr3(&amp;quot;g0 b183 n 1.# 5.# r1 2.# r1 7b 1.# 1. r1 4 r1 2# 6b 4/ r0.5 1/ 3/4/3/ 4 r1 2b r1 7b_ n/ g0.6 3b.******/ r3.5 5b******/ n/ n/// 1.#/// 2b.**// 3b./ 4./ 6b/ 7b/ n 3b/ 4/4/3b/4/3b/ n/3b46b/6/7b r1 4 r1 2b 5_b/ 4/ n/ 5_b/2b/ r0.5 7_b/1/6_b/n/6_b/n/3b/6_b/1&amp;quot;,&amp;quot; &amp;quot;)))note(eval(i[0]),i[1])&lt;br /&gt;
time=0&lt;br /&gt;
for(let i of eval(tr3(&amp;quot;b183 7___b r1 7____b 7__b/ 4_ 7_b/ 2b/ 4**/ 2b_**/ r1.5 2b__**/ 4__**/ r1.5 4___**/ 5__b/ r0.5 5___b/ 7___b/ 5___b/ 5__b************/ 7__b r1 7___b 7___b/ 4__ 7b__ 7b_**/ r1.5 6b_**/ r1.5 4_**/ 7b__/ 7b___**/ 7b___/ 4__/ r0.5 4___/ 6___b/ 5__b**/ r1.5 5___b**/ 5__b/ 2b_****/ 4_ 2b_4_/4__/6__b/&amp;quot;,&amp;quot; &amp;quot;)))note(eval(i[0]),i[1])&amp;lt;/syntaxhighlight&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=42871</id>
		<title>LNNBot/指令/musicjs*</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/%E6%8C%87%E4%BB%A4/musicjs*&amp;diff=42871"/>
		<updated>2026-01-03T11:26:41Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​/* 用法 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LNNBot指令信息&lt;br /&gt;
|别名=&lt;br /&gt;
|属性=别名指令&lt;br /&gt;
|所属插件=&lt;br /&gt;
|父级指令=musicjs&lt;br /&gt;
|所需权限=&lt;br /&gt;
}}&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt;&#039;&#039;&#039; 是 {{LNNBot指令链接|musicjs}} 的衍生指令，提供了辅助函数用于更便捷地编写旋律。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;musicjs* &amp;lt;code...&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
除 &amp;lt;code&amp;gt;musicjs&amp;lt;/code&amp;gt; 提供的函数和变量之外，&amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 还提供一些由用户定义的函数用来用更简洁的语法编写旋律。&lt;br /&gt;
&lt;br /&gt;
用户可以使用 &amp;lt;code&amp;gt;[[LNNBot/指令/evaluate|eval]]&amp;lt;/code&amp;gt; 指令向 &amp;lt;code&amp;gt;musicjs*&amp;lt;/code&amp;gt; 添加辅助函数，只需在对象 &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;storage.musicjsX&amp;lt;/syntaxhighlight&amp;gt; 上创建属性，名称建议与辅助函数名称相同，值为函数声明的 JavaScript 源代码。&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{LNN}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt;（“&#039;&#039;&#039;A&#039;&#039;&#039;SCII &#039;&#039;&#039;简&#039;&#039;&#039;谱”）函数接受一个乐谱字符串，可以通过一种受简谱启发的语法编写乐曲。&lt;br /&gt;
&lt;br /&gt;
此辅助函数还定义了一个变量 &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;，控制音符 &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt; 与基准音（由 &amp;lt;code&amp;gt;baseFrequency&amp;lt;/code&amp;gt; 定义，默认为 440 Hz）相差的半音数，初始为 0（即 1=C4），使用 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; 会增减其值。例如使用 5 个 &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; 可使 1=F4。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 每次被调用时，会将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5，并将内部的“时值乘数”变量初始化为 1，它与 &amp;lt;code&amp;gt;bpm&amp;lt;/code&amp;gt; 及圆括号的层数共同定义一“拍”的时长。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 名称 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&amp;amp;ndash;&amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| 音符 || 以当前的一拍为时值创建对应的简谱音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符 || 休止一拍。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
| 低音点 || 将前一个音符降低一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 高音点 || 将前一个音符升高一个八度。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 附点 || 将前一个音符的时值延长半拍。&amp;lt;br&amp;gt;连用多个时，每个后续附点延长的时值是前一个附点的一半。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延音线 || 将前一个音符的时值延长一拍。可以跨过小节线甚至减时线的起止。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 小节线 || 无作用，仅辅助阅读。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;(&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
| 减时线 || 括号内一拍的时长减半，可以嵌套。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降号 || 使下一个音符降低一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升号 || 使下一个音符升高一个半音。不会影响后续的音符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
| 分声部 || 方括号内由斜杠分隔的各部分将同时开始演奏。&amp;lt;br&amp;gt;顺序最后的一个部分演奏结束时，无论其他各部分是否演奏完毕，都会继续演奏方括号之后的乐谱。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 升调 || 升调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 降调 || 降调一个半音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：弱 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.33，若已经是 0.33 则设为 0.18。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：中 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.5。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;f&amp;lt;/code&amp;gt;&lt;br /&gt;
| 力度：强 || 将 &amp;lt;code&amp;gt;gain&amp;lt;/code&amp;gt; 设为 0.75，若已经是 0.75 则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;&lt;br /&gt;
| 开始三连音或结束连音（&#039;&#039;&#039;t&#039;&#039;&#039;riplet/&#039;&#039;&#039;t&#039;&#039;&#039;uplet） || 如果当前时值乘数为 1，则将其设为 2 / 3；否则设为 1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;d&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref name=&amp;quot;division-num&amp;quot;&amp;gt;&#039;&#039;M&#039;&#039;、&#039;&#039;N&#039;&#039; 可以是正整数或小数；在这些指令之后不可直接跟音符或休止符，需要加空格分隔开。&amp;lt;/ref&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;N&#039;&#039; 连音（irregular &#039;&#039;&#039;d&#039;&#039;&#039;ivision） || 若 &#039;&#039;N&#039;&#039; 是 2 的正整数次幂，则将时值乘数设为 0.75；否则设为 &amp;lt;math&amp;gt;\frac{2^{\lfloor\log_2N\rfloor}}N&amp;lt;/math&amp;gt;。&#039;&#039;N&#039;&#039; 为 1 时实际效果为结束连音。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r&amp;lt;/code&amp;gt;&#039;&#039;M&#039;&#039;&amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&#039;&#039;N&#039;&#039;&amp;lt;ref name=&amp;quot;division-num&amp;quot;/&amp;gt;&lt;br /&gt;
| 开始 &#039;&#039;M&#039;&#039;:&#039;&#039;N&#039;&#039; 连音（&#039;&#039;&#039;r&#039;&#039;&#039;atio） || 将时值乘数设为 &#039;&#039;N&#039;&#039; / &#039;&#039;M&#039;&#039;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;&lt;br /&gt;
| 延长（&#039;&#039;&#039;s&#039;&#039;&#039;ustain） || 将前一个音符实际播放的时间延长一拍，不影响下一个音符开始的时间。&amp;lt;br&amp;gt;可连用，可套在减时线内使用来延长更短的时长。&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{collapse|示例：《Somebody That I Used To Know》副歌|&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs*&lt;br /&gt;
bpm=129&lt;br /&gt;
aj(&#039;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&#039;) // 1=F&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;(66)|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;3&#039;.(2&#039;)2&#039;6)|655-|&lt;br /&gt;
/pp&lt;br /&gt;
3&#039;&#039;--0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0(5561&#039;1&#039;6)|4&#039;.(3&#039;)3&#039;-|&lt;br /&gt;
0(2&#039;3&#039;2&#039;2&#039;2&#039;2&#039;|5&#039;5&#039;5&#039;5&#039;4&#039;)3&#039;(2&#039;)|&lt;br /&gt;
1&#039;-(61&#039;1&#039;6)|3&#039;.(2&#039;)2&#039;-|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;-----2&#039;&#039;|-)&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
]`)&lt;br /&gt;
aj(`[f&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;2&#039;)|2&#039;1&#039;1&#039;-|&lt;br /&gt;
0000|0000|&lt;br /&gt;
(2&#039;3&#039;3&#039;3&#039;1&#039;2&#039;2&#039;(2&#039;3&#039;))|2&#039;1&#039;1&#039;-|&lt;br /&gt;
/p&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(1&#039;01&#039;07070|6060)50|&lt;br /&gt;
(50502&#039;02&#039;0|3&#039;4&#039;5&#039;3&#039;)2&#039;0|&lt;br /&gt;
(60)00(70)|(60)00((2&#039;3&#039;)0)|&lt;br /&gt;
/pp&lt;br /&gt;
(03&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|1&#039;&#039;-(5&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----)0|00(5&#039;&#039;--2&#039;&#039;|&lt;br /&gt;
-3&#039;&#039;----02&#039;&#039;|-1&#039;&#039;----)0|&lt;br /&gt;
/m&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|&lt;br /&gt;
6,,.(6,,)5,,.(5,,)|4,,.(4,,)5,,.(5,,)|6,,&lt;br /&gt;
]`)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|6xL-Bro islptng}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ip7()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和一个 BPM 数字，使用一种相比于 &amp;lt;code&amp;gt;aj()&amp;lt;/code&amp;gt; 更加紧凑的语法。乐谱语法见此页面：[https://test.vudrux.site/islp/music.html ip7 music]&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
辅助函数作者：{{U|cycwin}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; 函数接受一个乐谱字符串和分隔符(可省略，默认为;)，使用一种相对松散的语法，在音符间可以省略空格。乐谱语法如下:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ &amp;lt;code&amp;gt;tr3()&amp;lt;/code&amp;gt; 乐谱语法&lt;br /&gt;
! 字符 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;amp;ndash;7&amp;lt;/code&amp;gt; &lt;br /&gt;
| 音符do&amp;amp;ndash;ti。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符升高半度。最多连用两个。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符降低半度。最多连用两个。不得与&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;重复。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符&#039;&#039;&#039;延长&#039;&#039;&#039;一拍。可复用。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;&lt;br /&gt;
| 后缀，将最前面第一个音符时值除以2。可复用。&lt;br /&gt;
|- &lt;br /&gt;
| &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;&lt;br /&gt;
| 休止符，被视作一个正常音符处理。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 调整bpm到...&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;m...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将后面的音符整体增加...个音(12平均律)。...可以为负数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;r...&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将时间往回调...&#039;&#039;&#039;拍&#039;&#039;&#039;，可利用此做和弦之类。&lt;br /&gt;
{{collapse|示例: 《热异常》前两句歌词 |&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;//musicjs* for(let i of eval(tr3(&amp;quot;g0 b183 n 1.# 5.# r1 2.# r1 7b 1.# 1. r1 4 r1 2# 6b 4/ r0.5 1/ 3/4/3/ 4 r1 2b r1 7b_ n/ g0.6 3b.******/ r3.5 5b******/ n/ n/// 1.#/// 2b.**// 3b./ 4./ 6b/ 7b/ n 3b/ 4/4/3b/4/3b/ n/3b46b/6/7b r1 4 r1 2b 5_b/ 4/ n/ 5_b/2b/ r0.5 7_b/1/6_b/n/6_b/n/3b/6_b/1&amp;quot;,&amp;quot; &amp;quot;)))note(eval(i[0]),i[1])&lt;br /&gt;
time=0&lt;br /&gt;
for(let i of eval(tr3(&amp;quot;b183 7___b r1 7____b 7__b/ 4_ 7_b/ 2b/ 4**/ 2b_**/ r1.5 2b__**/ 4__**/ r1.5 4___**/ 5__b/ r0.5 5___b/ 7___b/ 5___b/ 5__b************/ 7__b r1 7___b 7___b/ 4__ 7b__ 7b_**/ r1.5 6b_**/ r1.5 4_**/ 7b__/ 7b___**/ 7b___/ 4__/ r0.5 4___/ 6___b/ 5__b**/ r1.5 5___b**/ 5__b/ 2b_****/ 4_ 2b_4_/4__/6__b/&amp;quot;,&amp;quot; &amp;quot;)))note(eval(i[0]),i[1])&amp;lt;/syntaxhighlight&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/WhatCommands%E6%8C%87%E4%BB%A4/wthsvg&amp;diff=42803</id>
		<title>LNNBot/WhatCommands指令/wthsvg</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/WhatCommands%E6%8C%87%E4%BB%A4/wthsvg&amp;diff=42803"/>
		<updated>2025-12-22T12:16:42Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WhatCommands 指令 &#039;&#039;&#039;&amp;lt;code&amp;gt;wthsvg&amp;lt;/code&amp;gt;&#039;&#039;&#039; 可根据输入的一系列中文指令绘制图像。主要作者为 {{U|Cycwin}}，{{LNN}} 补充完善部分功能。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
&lt;br /&gt;
 ¿¿wthsvg 指令...&lt;br /&gt;
&lt;br /&gt;
wthsvg 的参数中每行为一条指令，指令分为操作和属性，操作以横杠（&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;）开头，属性跟在其所属的操作之后。&lt;br /&gt;
&lt;br /&gt;
=== 操作 ===&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;-画布 &#039;&#039;w&#039;&#039; &#039;&#039;h&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:指定画布宽为&#039;&#039;w&#039;&#039;，高为&#039;&#039;h&#039;&#039;，一般写在最开头作为第一个操作。&lt;br /&gt;
;&amp;lt;code&amp;gt;-左下角坐标&amp;lt;/code&amp;gt;&lt;br /&gt;
:特殊操作：此操作执行后，后续的所有操作中坐标原点在左下角，纵轴向上。未使用此操作时原点在左上角，纵轴向下。&lt;br /&gt;
;&amp;lt;code&amp;gt;-线段 &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制从 (&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;) 到 (&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;) 的线段。&amp;lt;br/&amp;gt;线段目前没有默认颜色，必须通过&amp;lt;code&amp;gt;颜色&amp;lt;/code&amp;gt;属性手动设置颜色才可绘制。&lt;br /&gt;
;&amp;lt;code&amp;gt;-圆形 &#039;&#039;r&#039;&#039; &#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制一个圆心在 (&#039;&#039;x&#039;&#039;, &#039;&#039;y&#039;&#039;)，半径为 &#039;&#039;r&#039;&#039; 的圆形。&lt;br /&gt;
;&amp;lt;code&amp;gt;-矩形 &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制一个对角为 (&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;) 与 (&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;)，平行于坐标轴的矩形。可以缺省任意一个坐标，默认值为(0,0)。&lt;br /&gt;
;&amp;lt;code&amp;gt;-多边形 &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039; &#039;&#039;x3&#039;&#039;,&#039;&#039;y3&#039;&#039;...&amp;lt;/code&amp;gt;&lt;br /&gt;
:以给定的一系列坐标为顶点绘制多边形。&lt;br /&gt;
;&amp;lt;code&amp;gt;-文字 &#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039; &#039;&#039;内容&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:在 (&#039;&#039;x&#039;&#039;, &#039;&#039;y&#039;&#039;) 处绘制文本。&lt;br /&gt;
;&amp;lt;code&amp;gt;-扇形 &#039;&#039;r&#039;&#039; &#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039; &#039;&#039;a1&#039;&#039; &#039;&#039;a2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制一个圆心在 (&#039;&#039;x&#039;&#039;, &#039;&#039;y&#039;&#039;)，圆心角(顺时针)为 &#039;&#039;a1&#039;&#039;，半径为 &#039;&#039;r&#039;&#039; ，起始角度(顺时针)为 &#039;&#039;a2&#039;&#039; 的扇形。 &#039;&#039;a2&#039;&#039; 可以缺省，默认值为0。&lt;br /&gt;
图形操作（不包括 &amp;lt;code&amp;gt;-文字&amp;lt;/code&amp;gt;）可以一次输入多组参数，用英文分号（&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;）分隔，此时将同时绘制多个同类图形并共用属性。建议在分号之后或前后均添加空格以便阅读。例如，绘制四个半径 50 单位，紧挨在一起的圆：&amp;lt;code&amp;gt;-圆形 50 100,100; 50 100,200; 50 200,100; 50 200,200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 属性 ===&lt;br /&gt;
&lt;br /&gt;
设置颜色时，可以使用方括号括起并以空格分隔的 RGB 颜色值（&amp;lt;code&amp;gt;[&#039;&#039;r&#039;&#039; &#039;&#039;g&#039;&#039; &#039;&#039;b&#039;&#039;]&amp;lt;/code&amp;gt;），CSS 颜色语法（包括 &amp;lt;code&amp;gt;rgb(&#039;&#039;R&#039;&#039;,&#039;&#039;G&#039;&#039;,&#039;&#039;B&#039;&#039;)&amp;lt;/code&amp;gt;、井号开头的十六进制颜色值、英文关键字颜色名）和[http://lnnbot.哼.site/whatcolorreplacer/ 我们预先定义的中文颜色名]表示。&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;背景 &#039;&#039;c&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:只对 &amp;lt;code&amp;gt;-画布&amp;lt;/code&amp;gt; 指令有效：设置画布背景颜色为 &#039;&#039;c&#039;&#039;。可以是“&amp;lt;code&amp;gt;透明&amp;lt;/code&amp;gt;”。未设置时默认为白色。&lt;br /&gt;
;&amp;lt;code&amp;gt;颜色 &#039;&#039;c&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置图形的颜色为 &#039;&#039;c&#039;&#039;。&amp;lt;br/&amp;gt;对于除线段之外的图形，未设置时默认为黑色；可将&amp;lt;code&amp;gt;颜色&amp;lt;/code&amp;gt;设置为“&amp;lt;code&amp;gt;透明&amp;lt;/code&amp;gt;”后再设置&amp;lt;code&amp;gt;描边&amp;lt;/code&amp;gt;属性来绘制空心的图形。&lt;br /&gt;
;&amp;lt;code&amp;gt;描边 &#039;&#039;c&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:为图形添加颜色为 &#039;&#039;c&#039;&#039; 的描边。&amp;lt;br/&amp;gt;对于线段，与&amp;lt;code&amp;gt;颜色&amp;lt;/code&amp;gt;属性等价。&lt;br /&gt;
;&amp;lt;code&amp;gt;粗细 &#039;&#039;d&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置线段或描边的宽度为 &#039;&#039;d&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;旋转 &#039;&#039;a&#039;&#039; &#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:将图形沿点 (&#039;&#039;x&#039;&#039;, &#039;&#039;y&#039;&#039;) 旋转 &#039;&#039;a&#039;&#039; 度(顺时针)。&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变 &#039;&#039;c1&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变描边 &#039;&#039;c1&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置图形（或描边）为渐变色，从 (&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;) 处颜色 &#039;&#039;c1&#039;&#039; 平滑过渡到 (&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;) 处颜色 &#039;&#039;c2&#039;&#039;。&amp;lt;br/&amp;gt;(&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;)、(&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;) 两个点可以连成一条线段，称为渐变轴，颜色的 RGB 值在渐变轴上分别均匀变化；图形上任何一个其他的点，都与渐变轴上离那个点最近的一个点的颜色相同。也就是说，让渐变轴沿着垂直于自身的方向平移，扫过的面积里颜色均匀变化，而没有扫过的地方颜色与相应端点的颜色相同，即 &#039;&#039;c1&#039;&#039; 和 &#039;&#039;c2&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变 &#039;&#039;c0&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c1&#039;&#039; &#039;&#039;t1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;t2&#039;&#039; ... &#039;&#039;cn&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变描边 &#039;&#039;c0&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c1&#039;&#039; &#039;&#039;t1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;t2&#039;&#039; ... &#039;&#039;cn&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:除了渐变轴的两个端点外，可以在渐变轴上选定更多控制点并设置颜色，每两个相邻控制点之间颜色的 RGB 值都会均匀变化。每个中间控制点由一个颜色 &#039;&#039;c&#039;&#039; 和一个位置比值定义，比值可以是一个百分比 &#039;&#039;t&#039;&#039;% 或分数 &#039;&#039;m&#039;&#039;/&#039;&#039;n&#039;&#039;，表示控制点位置到渐变轴起点的距离与渐变轴长度的比值。若两个中间控制点的位置重合，会形成一个颜色突变，分界线垂直于渐变轴。&lt;br /&gt;
;&amp;lt;code&amp;gt;虚线 &#039;&#039;l&#039;&#039; &#039;&#039;d&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置线段或描边为许多短线组成的虚线，短线长度为 &#039;&#039;l&#039;&#039;，每两条短线之间空出 &#039;&#039;d&#039;&#039; 的距离。&amp;lt;br/&amp;gt;&#039;&#039;d&#039;&#039; 与 &#039;&#039;l&#039;&#039; 相同时可省略 &#039;&#039;d&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;虚线 &#039;&#039;l1&#039;&#039; &#039;&#039;d1&#039;&#039; &#039;&#039;l2&#039;&#039; &#039;&#039;d2&#039;&#039; &#039;&#039;l3&#039;&#039; ...&amp;lt;/code&amp;gt;&lt;br /&gt;
:高级虚线：从图形轮廓的起点开始先画长 &#039;&#039;l1&#039;&#039; 的短线，空出 &#039;&#039;d1&#039;&#039; 的距离，再画 &#039;&#039;l2&#039;&#039; 的短线，空出 &#039;&#039;d2&#039;&#039;，以此类推，直到最后一组 &#039;&#039;ln&#039;&#039;、&#039;&#039;dn&#039;&#039; 后循环。若最后一组只有 &#039;&#039;ln&#039;&#039; 没有 &#039;&#039;dn&#039;&#039;（即总共有奇数个数字），则最后一个短线长度 &#039;&#039;ln&#039;&#039; 跟循环回开头的第一个短线长度 &#039;&#039;l1&#039;&#039; 合并为一条长 &#039;&#039;ln&#039;&#039; + &#039;&#039;l1&#039;&#039; 的短线，之后再空出 &#039;&#039;d1&#039;&#039; 的距离，画 &#039;&#039;l2&#039;&#039; 的短线……这样继续下去。&lt;br /&gt;
;&amp;lt;code&amp;gt;平头&amp;lt;/code&amp;gt;&lt;br /&gt;
:取消线段或虚线两端默认存在的小半圆，使本来圆头的线变为平头。&lt;br /&gt;
;&amp;lt;code&amp;gt;方头&amp;lt;/code&amp;gt;&lt;br /&gt;
:将线段或虚线两端本来的小半圆改为小长方形，类似于&amp;lt;code&amp;gt;平头&amp;lt;/code&amp;gt;但是视觉上使线的两端各延长了线宽度的一半。&lt;br /&gt;
;&amp;lt;code&amp;gt;字号 &#039;&#039;s&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置文字的大小为 &#039;&#039;s&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;字体 &#039;&#039;名称&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置文字使用的字体族名称。&lt;br /&gt;
;&amp;lt;code&amp;gt;字重 &#039;&#039;w&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置字重（文字形状的粗细）为 &#039;&#039;w&#039;&#039;。&amp;lt;br/&amp;gt;字重是一个 1000 以内的正整数，未设置时默认为 400，即常规。&#039;&#039;w&#039;&#039; 也可以是汉字“&amp;lt;code&amp;gt;粗&amp;lt;/code&amp;gt;”，表示 700，即粗体。只有部分字体支持任意设置字重，多数只支持几个固定的值，如果字体不支持你设置的字重，会自动选择一个比较接近的可用值。&lt;br /&gt;
;&amp;lt;code&amp;gt;字宽 &#039;&#039;w&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置字宽为 &#039;&#039;w&#039;&#039;%。&amp;lt;br/&amp;gt;字宽是一个 50% 到 200% 之间的百分数，未设置时为 100%。只有部分字体支持设置字宽。&lt;br /&gt;
;&amp;lt;code&amp;gt;斜体&amp;lt;/code&amp;gt;&lt;br /&gt;
:使文字倾斜（使用意大利体的字母）。&lt;br /&gt;
;&amp;lt;code&amp;gt;斜体 &#039;&#039;a&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;斜体&amp;lt;/code&amp;gt; 后面也可以跟一个角度 &#039;&#039;a&#039;&#039;，表示让文字倾斜大约 &#039;&#039;a&#039;&#039; 度。正常的倾斜体是 14 度。很少有字体支持任意设置倾斜角度。&lt;br /&gt;
;&amp;lt;code&amp;gt;左对齐&amp;lt;/code&amp;gt;&lt;br /&gt;
;&amp;lt;code&amp;gt;右对齐&amp;lt;/code&amp;gt;&lt;br /&gt;
:让文字的左/右端对准设置的坐标。未设置时，默认是让文字的中心落在设置的坐标处。&lt;br /&gt;
&lt;br /&gt;
== 示例 ==&lt;br /&gt;
&lt;br /&gt;
待添加&lt;br /&gt;
&lt;br /&gt;
== 一些想说的 ==&lt;br /&gt;
{{quote|&lt;br /&gt;
这条命令实际上是受一位有着视力障碍的群友激发而产生的。这位群友在我们不知道的地方打听到了某款电脑专用的盲用画图软件(经过LNN的逆向可知这是一个Python程序，根据原作者的描述实际上是给盲人写论文画示例图用的)，又打听到LNN有个LNNBot(大概因为他也是玩造语的)于是前来询问LNN能否将这个盲用画图软件移植到LNNBot上使用。我一时兴起建了一个SVGpath解析器，后来觉得太难用于是搓出来了wthsvg的最初模样:只有画布、线段，以及颜色、描边。我很不想很不想辜负这位发言极其真诚的群友，我一再声明：这不符合那款软件的语法！这里的漏洞还有很多！但这位群友仍然在鼓励我(他截止目前已画出来了许多我们认为不错的作品)，于是在大概一周内有了整整八个操作。LNN的加入实际上以我们替换中文颜色的词库匮乏而起，他在渐变的语法判定上、圆形的语法转化上以及关于字体的所有属性等等都做出了巨大的贡献！包括这篇文档也是他写的。我很感谢一直支持这个项目的人(尽管这项目才开展了两周不到，我编辑时离月考只有两三天了)，包括代码贡献者，指令使用者(尽管有预防)。能做成一个对他人有着帮助的wc指令我感到高兴至极！即便不为人知，这件事已成为我人生漆黑夜空中一颗不亮的闪星，在我极匮乏的内心世界中照耀。十分感谢各位。我们会在除这个指令外的世界中共同走下去，可能在将来不再有互联网上的联系，但这段旅程我会铭记于心。(好申必的升华啊) &lt;br /&gt;
|{{U|Cycwin}}}}&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/WhatCommands%E6%8C%87%E4%BB%A4/wthsvg&amp;diff=42802</id>
		<title>LNNBot/WhatCommands指令/wthsvg</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/WhatCommands%E6%8C%87%E4%BB%A4/wthsvg&amp;diff=42802"/>
		<updated>2025-12-22T12:13:40Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WhatCommands 指令 &#039;&#039;&#039;&amp;lt;code&amp;gt;wthsvg&amp;lt;/code&amp;gt;&#039;&#039;&#039; 可根据输入的一系列中文指令绘制图像。主要作者为 {{U|Cycwin}}，{{LNN}} 补充完善部分功能。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
&lt;br /&gt;
 ¿¿wthsvg 指令...&lt;br /&gt;
&lt;br /&gt;
wthsvg 的参数中每行为一条指令，指令分为操作和属性，操作以横杠（&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;）开头，属性跟在其所属的操作之后。&lt;br /&gt;
&lt;br /&gt;
=== 操作 ===&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;-画布 &#039;&#039;w&#039;&#039; &#039;&#039;h&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:指定画布宽为&#039;&#039;w&#039;&#039;，高为&#039;&#039;h&#039;&#039;，一般写在最开头作为第一个操作。&lt;br /&gt;
;&amp;lt;code&amp;gt;-左下角坐标&amp;lt;/code&amp;gt;&lt;br /&gt;
:特殊操作：此操作执行后，后续的所有操作中坐标原点在左下角，纵轴向上。未使用此操作时原点在左上角，纵轴向下。&lt;br /&gt;
;&amp;lt;code&amp;gt;-线段 &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制从 (&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;) 到 (&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;) 的线段。&amp;lt;br/&amp;gt;线段目前没有默认颜色，必须通过&amp;lt;code&amp;gt;颜色&amp;lt;/code&amp;gt;属性手动设置颜色才可绘制。&lt;br /&gt;
;&amp;lt;code&amp;gt;-圆形 &#039;&#039;r&#039;&#039; &#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制一个圆心在 (&#039;&#039;x&#039;&#039;, &#039;&#039;y&#039;&#039;)，半径为 &#039;&#039;r&#039;&#039; 的圆形。&lt;br /&gt;
;&amp;lt;code&amp;gt;-矩形 &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制一个对角为 (&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;) 与 (&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;)，平行于坐标轴的矩形。可以缺省任意一个坐标，默认值为(0,0)。&lt;br /&gt;
;&amp;lt;code&amp;gt;-多边形 &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039; &#039;&#039;x3&#039;&#039;,&#039;&#039;y3&#039;&#039;...&amp;lt;/code&amp;gt;&lt;br /&gt;
:以给定的一系列坐标为顶点绘制多边形。&lt;br /&gt;
;&amp;lt;code&amp;gt;-文字 &#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039; &#039;&#039;内容&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:在 (&#039;&#039;x&#039;&#039;, &#039;&#039;y&#039;&#039;) 处绘制文本。&lt;br /&gt;
;&amp;lt;code&amp;gt;-扇形 &#039;&#039;r&#039;&#039; &#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039; &#039;&#039;a1&#039;&#039; &#039;&#039;a2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制一个圆心在 (&#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039;)，圆心角(顺时针)为&#039;&#039;a1&#039;&#039;，半径为&#039;&#039;r&#039;&#039;，起始角度(顺时针)为&#039;&#039;a2&#039;&#039;的扇形。&#039;&#039;a2&#039;&#039;可以缺省，默认值为0。&lt;br /&gt;
图形操作（不包括 &amp;lt;code&amp;gt;-文字&amp;lt;/code&amp;gt;）可以一次输入多组参数，用英文分号（&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;）分隔，此时将同时绘制多个同类图形并共用属性。建议在分号之后或前后均添加空格以便阅读。例如，绘制四个半径 50 单位，紧挨在一起的圆：&amp;lt;code&amp;gt;-圆形 50 100,100; 50 100,200; 50 200,100; 50 200,200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 属性 ===&lt;br /&gt;
&lt;br /&gt;
设置颜色时，可以使用方括号括起并以空格分隔的 RGB 颜色值（&amp;lt;code&amp;gt;[&#039;&#039;r&#039;&#039; &#039;&#039;g&#039;&#039; &#039;&#039;b&#039;&#039;]&amp;lt;/code&amp;gt;），CSS 颜色语法（包括 &amp;lt;code&amp;gt;rgb(&#039;&#039;R&#039;&#039;,&#039;&#039;G&#039;&#039;,&#039;&#039;B&#039;&#039;)&amp;lt;/code&amp;gt;、井号开头的十六进制颜色值、英文关键字颜色名）和[http://lnnbot.哼.site/whatcolorreplacer/ 我们预先定义的中文颜色名]表示。&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;背景 &#039;&#039;c&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:只对 &amp;lt;code&amp;gt;-画布&amp;lt;/code&amp;gt; 指令有效：设置画布背景颜色为 &#039;&#039;c&#039;&#039;。可以是“&amp;lt;code&amp;gt;透明&amp;lt;/code&amp;gt;”。未设置时默认为白色。&lt;br /&gt;
;&amp;lt;code&amp;gt;颜色 &#039;&#039;c&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置图形的颜色为 &#039;&#039;c&#039;&#039;。&amp;lt;br/&amp;gt;对于除线段之外的图形，未设置时默认为黑色；可将&amp;lt;code&amp;gt;颜色&amp;lt;/code&amp;gt;设置为“&amp;lt;code&amp;gt;透明&amp;lt;/code&amp;gt;”后再设置&amp;lt;code&amp;gt;描边&amp;lt;/code&amp;gt;属性来绘制空心的图形。&lt;br /&gt;
;&amp;lt;code&amp;gt;描边 &#039;&#039;c&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:为图形添加颜色为 &#039;&#039;c&#039;&#039; 的描边。&amp;lt;br/&amp;gt;对于线段，与&amp;lt;code&amp;gt;颜色&amp;lt;/code&amp;gt;属性等价。&lt;br /&gt;
;&amp;lt;code&amp;gt;粗细 &#039;&#039;d&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置线段或描边的宽度为 &#039;&#039;d&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;旋转 &#039;&#039;a&#039;&#039; &#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:将图形沿点(&#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039;)旋转&#039;&#039;a&#039;&#039;度(顺时针)。&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变 &#039;&#039;c1&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变描边 &#039;&#039;c1&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置图形（或描边）为渐变色，从 (&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;) 处颜色 &#039;&#039;c1&#039;&#039; 平滑过渡到 (&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;) 处颜色 &#039;&#039;c2&#039;&#039;。&amp;lt;br/&amp;gt;(&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;)、(&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;) 两个点可以连成一条线段，称为渐变轴，颜色的 RGB 值在渐变轴上分别均匀变化；图形上任何一个其他的点，都与渐变轴上离那个点最近的一个点的颜色相同。也就是说，让渐变轴沿着垂直于自身的方向平移，扫过的面积里颜色均匀变化，而没有扫过的地方颜色与相应端点的颜色相同，即 &#039;&#039;c1&#039;&#039; 和 &#039;&#039;c2&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变 &#039;&#039;c0&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c1&#039;&#039; &#039;&#039;t1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;t2&#039;&#039; ... &#039;&#039;cn&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变描边 &#039;&#039;c0&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c1&#039;&#039; &#039;&#039;t1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;t2&#039;&#039; ... &#039;&#039;cn&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:除了渐变轴的两个端点外，可以在渐变轴上选定更多控制点并设置颜色，每两个相邻控制点之间颜色的 RGB 值都会均匀变化。每个中间控制点由一个颜色 &#039;&#039;c&#039;&#039; 和一个位置比值定义，比值可以是一个百分比 &#039;&#039;t&#039;&#039;% 或分数 &#039;&#039;m&#039;&#039;/&#039;&#039;n&#039;&#039;，表示控制点位置到渐变轴起点的距离与渐变轴长度的比值。若两个中间控制点的位置重合，会形成一个颜色突变，分界线垂直于渐变轴。&lt;br /&gt;
;&amp;lt;code&amp;gt;虚线 &#039;&#039;l&#039;&#039; &#039;&#039;d&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置线段或描边为许多短线组成的虚线，短线长度为 &#039;&#039;l&#039;&#039;，每两条短线之间空出 &#039;&#039;d&#039;&#039; 的距离。&amp;lt;br/&amp;gt;&#039;&#039;d&#039;&#039; 与 &#039;&#039;l&#039;&#039; 相同时可省略 &#039;&#039;d&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;虚线 &#039;&#039;l1&#039;&#039; &#039;&#039;d1&#039;&#039; &#039;&#039;l2&#039;&#039; &#039;&#039;d2&#039;&#039; &#039;&#039;l3&#039;&#039; ...&amp;lt;/code&amp;gt;&lt;br /&gt;
:高级虚线：从图形轮廓的起点开始先画长 &#039;&#039;l1&#039;&#039; 的短线，空出 &#039;&#039;d1&#039;&#039; 的距离，再画 &#039;&#039;l2&#039;&#039; 的短线，空出 &#039;&#039;d2&#039;&#039;，以此类推，直到最后一组 &#039;&#039;ln&#039;&#039;、&#039;&#039;dn&#039;&#039; 后循环。若最后一组只有 &#039;&#039;ln&#039;&#039; 没有 &#039;&#039;dn&#039;&#039;（即总共有奇数个数字），则最后一个短线长度 &#039;&#039;ln&#039;&#039; 跟循环回开头的第一个短线长度 &#039;&#039;l1&#039;&#039; 合并为一条长 &#039;&#039;ln&#039;&#039; + &#039;&#039;l1&#039;&#039; 的短线，之后再空出 &#039;&#039;d1&#039;&#039; 的距离，画 &#039;&#039;l2&#039;&#039; 的短线……这样继续下去。&lt;br /&gt;
;&amp;lt;code&amp;gt;平头&amp;lt;/code&amp;gt;&lt;br /&gt;
:取消线段或虚线两端默认存在的小半圆，使本来圆头的线变为平头。&lt;br /&gt;
;&amp;lt;code&amp;gt;方头&amp;lt;/code&amp;gt;&lt;br /&gt;
:将线段或虚线两端本来的小半圆改为小长方形，类似于&amp;lt;code&amp;gt;平头&amp;lt;/code&amp;gt;但是视觉上使线的两端各延长了线宽度的一半。&lt;br /&gt;
;&amp;lt;code&amp;gt;字号 &#039;&#039;s&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置文字的大小为 &#039;&#039;s&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;字体 &#039;&#039;名称&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置文字使用的字体族名称。&lt;br /&gt;
;&amp;lt;code&amp;gt;字重 &#039;&#039;w&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置字重（文字形状的粗细）为 &#039;&#039;w&#039;&#039;。&amp;lt;br/&amp;gt;字重是一个 1000 以内的正整数，未设置时默认为 400，即常规。&#039;&#039;w&#039;&#039; 也可以是汉字“&amp;lt;code&amp;gt;粗&amp;lt;/code&amp;gt;”，表示 700，即粗体。只有部分字体支持任意设置字重，多数只支持几个固定的值，如果字体不支持你设置的字重，会自动选择一个比较接近的可用值。&lt;br /&gt;
;&amp;lt;code&amp;gt;字宽 &#039;&#039;w&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置字宽为 &#039;&#039;w&#039;&#039;%。&amp;lt;br/&amp;gt;字宽是一个 50% 到 200% 之间的百分数，未设置时为 100%。只有部分字体支持设置字宽。&lt;br /&gt;
;&amp;lt;code&amp;gt;斜体&amp;lt;/code&amp;gt;&lt;br /&gt;
:使文字倾斜（使用意大利体的字母）。&lt;br /&gt;
;&amp;lt;code&amp;gt;斜体 &#039;&#039;a&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;斜体&amp;lt;/code&amp;gt; 后面也可以跟一个角度 &#039;&#039;a&#039;&#039;，表示让文字倾斜大约 &#039;&#039;a&#039;&#039; 度。正常的倾斜体是 14 度。很少有字体支持任意设置倾斜角度。&lt;br /&gt;
;&amp;lt;code&amp;gt;左对齐&amp;lt;/code&amp;gt;&lt;br /&gt;
;&amp;lt;code&amp;gt;右对齐&amp;lt;/code&amp;gt;&lt;br /&gt;
:让文字的左/右端对准设置的坐标。未设置时，默认是让文字的中心落在设置的坐标处。&lt;br /&gt;
&lt;br /&gt;
== 示例 ==&lt;br /&gt;
&lt;br /&gt;
待添加&lt;br /&gt;
&lt;br /&gt;
== 一些想说的 ==&lt;br /&gt;
{{quote|&lt;br /&gt;
这条命令实际上是受一位有着视力障碍的群友激发而产生的。这位群友在我们不知道的地方打听到了某款电脑专用的盲用画图软件(经过LNN的逆向可知这是一个Python程序，根据原作者的描述实际上是给盲人写论文画示例图用的)，又打听到LNN有个LNNBot(大概因为他也是玩造语的)于是前来询问LNN能否将这个盲用画图软件移植到LNNBot上使用。我一时兴起建了一个SVGpath解析器，后来觉得太难用于是搓出来了wthsvg的最初模样:只有画布、线段，以及颜色、描边。我很不想很不想辜负这位发言极其真诚的群友，我一再声明：这不符合那款软件的语法！这里的漏洞还有很多！但这位群友仍然在鼓励我(他截止目前已画出来了许多我们认为不错的作品)，于是在大概一周内有了整整八个操作。LNN的加入实际上以我们替换中文颜色的词库匮乏而起，他在渐变的语法判定上、圆形的语法转化上以及关于字体的所有属性等等都做出了巨大的贡献！包括这篇文档也是他写的。我很感谢一直支持这个项目的人(尽管这项目才开展了两周不到，我编辑时离月考只有两三天了)，包括代码贡献者，指令使用者(尽管有预防)。能做成一个对他人有着帮助的wc指令我感到高兴至极！即便不为人知，这件事已成为我人生漆黑夜空中一颗不亮的闪星，在我极匮乏的内心世界中照耀。十分感谢各位。我们会在除这个指令外的世界中共同走下去，可能在将来不再有互联网上的联系，但这段旅程我会铭记于心。(好申必的升华啊) &lt;br /&gt;
|{{U|Cycwin}}}}&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=User:Cycwin/%E6%88%91%E7%9A%84%E7%BB%8F%E5%8E%86&amp;diff=42796</id>
		<title>User:Cycwin/我的经历</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=User:Cycwin/%E6%88%91%E7%9A%84%E7%BB%8F%E5%8E%86&amp;diff=42796"/>
		<updated>2025-12-21T14:28:26Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​创建页面，内容为“要不来瞎写写我的成长经历？ 只是接触现代网络技术之类的。  ==第一台电脑== 二三年级，我得到了付琴的电脑，不知道是不是赶上了各类营销号盛行的时期，每日在电脑上测试所谓“恶搞代码”，印象更深的是一个20行Python马里奥，后来在评论区大海捞针竟未寻得一个细看代码发现这只是import的花招的人，我记得那代码我是一个一个字敲电脑上去的…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;要不来瞎写写我的成长经历？&lt;br /&gt;
只是接触现代网络技术之类的。&lt;br /&gt;
&lt;br /&gt;
==第一台电脑==&lt;br /&gt;
二三年级，我得到了付琴的电脑，不知道是不是赶上了各类营销号盛行的时期，每日在电脑上测试所谓“恶搞代码”，印象更深的是一个20行Python马里奥，后来在评论区大海捞针竟未寻得一个细看代码发现这只是import的花招的人，我记得那代码我是一个一个字敲电脑上去的。但我敲完之前，&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
电脑被我整坏了。我点击了自带PE系统的引导修复，然后引导TMD炸了。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
几个月后，付琴拿着电脑去电脑店，装回来了8.1，系统盘啥也没了，我对电脑依旧不知所以，但是...&lt;br /&gt;
==PE时代==&lt;br /&gt;
我也忘了我如何接触到了Windows PE。我将付琴的2G优盘格式化(得到同意啦)，激活了UltraISO，然后烧进去了第一个PE镜像。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TMD引导也坏了！&lt;br /&gt;
&lt;br /&gt;
从此我在网上搜集各种winPE，无一例外烧U盘里面都是引导错误，我寻找最小化的PE，同时，我跟着一个教程制作了人生中第一个有桌面的PE:桌面从newbeePE偷的，工具从tangoPE借的，PECMD从软件园下载的。但是我成啦！(实际上之前我直接把东西塞boot.wim里面造过一堆废物PE，install.wim都没删)&lt;br /&gt;
&lt;br /&gt;
一天下午我拿360U盘扩容检测测试U盘，这破U盘原来才108M。我被气着了整整一下午。&lt;br /&gt;
&lt;br /&gt;
还是几个月后，我寻得了令我震惊的PE:不到100M还能联网还带dism++的win10PE，我烧进了U盘还把一个不到10M的浏览器扔进去，啊！成了！&lt;br /&gt;
&lt;br /&gt;
自此，我进入短短的空档期。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==编程时代==&lt;br /&gt;
我脑子终于好使了，六年级，我开始学Python。我在社团跟同学们炫耀0.1+0.2!=0.3，炫耀自己沟槽的turtle技术，然后太闲了又学了HTML+CSS+JS(JS还是我在外面玩的路上学的)，做了一堆CSS动画，那时的新目标就是纯CSS游戏。我搓出来过但是差强人意。&lt;br /&gt;
&lt;br /&gt;
这部分我想一笔带过。因为重头戏即将到来。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==QQ时代==&lt;br /&gt;
六年级毕业那个暑假后期，一个名为“这只是只瓜诶”的UP找上了我，经过几十条消息的迂回后，我安装了QQ，加入了一个重磅大群:esolang交流群。我TM认识了预防，UrnEn这个天才，还有亲爱的DGCK81LNN。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
开始只是聊天，我依旧记得那晚我在路灯下询问TC与TM的含义，等着他们的回复，esolang在我心中种下了种子。&lt;br /&gt;
&lt;br /&gt;
==ESO时代==&lt;br /&gt;
我的第一个esolang:sdac2在入学考场上被构思了出来，我又接连制作了好几个esolang，我为他们感到自豪，为别的esolang证明图灵完备性感到苦恼，为自己的esolang寻找TC介质而迷茫，在我偷偷向外界交流的一块电子书被没收后，我似乎不再对esolang兴趣浓厚了。&lt;br /&gt;
&lt;br /&gt;
==WL时代==&lt;br /&gt;
看到群友们都在搞的whatlang，我跃跃欲试，在sinπ们的指导下我终于学会了whatlang，我频繁地编写Whatcommand，四处搜寻API，那是我对WL最狂热的时期。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
................（未完待续&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=User:Cycwin&amp;diff=42794</id>
		<title>User:Cycwin</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=User:Cycwin&amp;diff=42794"/>
		<updated>2025-12-21T14:01:04Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vnu8 们好！我是Cycwin。LNN想叫我写点什么到用户页上我就干脆瞎写了，我也不知道该写什么。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
本人是一位二初生，河南人但说的不是河南话，和所属城市的方言也有差异。本人爱好于在QQ与一群人自娱自乐，起初本人是把编程这项作为爱好日日挂在嘴边的，现在已经提不起大兴趣了，本人在生活的流水中冲掉了乐趣，冲掉了爱好，冲掉了态度，冲掉了梦想，依旧乐哉。&lt;br /&gt;
&lt;br /&gt;
本人在班里是一位疯子，在课上被公开宣布是“从精神病院里跑出来的”，被班里倒数嬉皮笑脸的询问了一遍，本人严辞拒绝了。现任左同桌自号沐风大帝，对近代历史的兴趣远超班中其他同学，政治素养不用想也是极好的。右同桌是班长，我现在没啥好介绍的。&lt;br /&gt;
&lt;br /&gt;
本人为假期作业所折磨，编辑时还有错题本未整理，语数英外的作业一笔未动。&lt;br /&gt;
&lt;br /&gt;
本人读现代文时，常想到一段话，若读者认为断章取义还请指出，“在遭受后现代文化的洗礼之后，我们的作家更是如获至宝，把缺失视为强项，奉行‘躲避崇高’的策略，鄙视宏大叙事，消解终极追问。”&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/WhatCommands%E6%8C%87%E4%BB%A4/wthsvg&amp;diff=42793</id>
		<title>LNNBot/WhatCommands指令/wthsvg</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/WhatCommands%E6%8C%87%E4%BB%A4/wthsvg&amp;diff=42793"/>
		<updated>2025-12-21T08:14:16Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WhatCommands 指令 &#039;&#039;&#039;&amp;lt;code&amp;gt;wthsvg&amp;lt;/code&amp;gt;&#039;&#039;&#039; 可根据输入的一系列中文指令绘制图像。主要作者为 {{U|Cycwin}}，{{LNN}} 补充完善部分功能。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
&lt;br /&gt;
 ¿¿wthsvg 指令...&lt;br /&gt;
&lt;br /&gt;
wthsvg 的参数中每行为一条指令，指令分为操作和属性，操作以横杠（&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;）开头，属性跟在其所属的操作之后。&lt;br /&gt;
&lt;br /&gt;
=== 操作 ===&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;-画布 &#039;&#039;w&#039;&#039; &#039;&#039;h&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:指定画布宽为&#039;&#039;w&#039;&#039;，高为&#039;&#039;h&#039;&#039;，一般写在最开头作为第一个操作。&lt;br /&gt;
;&amp;lt;code&amp;gt;-左下角坐标&amp;lt;/code&amp;gt;&lt;br /&gt;
:特殊操作：此操作执行后，后续的所有操作中坐标原点在左下角，纵轴向上。未使用此操作时原点在左上角，纵轴向下。&lt;br /&gt;
;&amp;lt;code&amp;gt;-线段 &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制从 (&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;) 到 (&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;) 的线段。&amp;lt;br/&amp;gt;线段目前没有默认颜色，必须通过&amp;lt;code&amp;gt;颜色&amp;lt;/code&amp;gt;属性手动设置颜色才可绘制。&lt;br /&gt;
;&amp;lt;code&amp;gt;-圆形 &#039;&#039;r&#039;&#039; &#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制一个圆心在 (&#039;&#039;x&#039;&#039;, &#039;&#039;y&#039;&#039;)，半径为 &#039;&#039;r&#039;&#039; 的圆形。&lt;br /&gt;
;&amp;lt;code&amp;gt;-矩形 &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制一个对角为 (&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;) 与 (&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;)，平行于坐标轴的矩形。&lt;br /&gt;
;&amp;lt;code&amp;gt;-多边形 &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039; &#039;&#039;x3&#039;&#039;,&#039;&#039;y3&#039;&#039;...&amp;lt;/code&amp;gt;&lt;br /&gt;
:以给定的一系列坐标为顶点绘制多边形。&lt;br /&gt;
;&amp;lt;code&amp;gt;-文字 &#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039; &#039;&#039;内容&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:在 (&#039;&#039;x&#039;&#039;, &#039;&#039;y&#039;&#039;) 处绘制文本。&lt;br /&gt;
&lt;br /&gt;
图形操作（不包括 &amp;lt;code&amp;gt;-文字&amp;lt;/code&amp;gt;）可以一次输入多组参数，用英文分号（&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;）分隔，此时将同时绘制多个同类图形并共用属性。建议在分号之后或前后均添加空格以便阅读。例如，绘制四个半径 50 单位，紧挨在一起的圆：&amp;lt;code&amp;gt;-圆形 50 100,100; 50 100,200; 50 200,100; 50 200,200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 属性 ===&lt;br /&gt;
&lt;br /&gt;
设置颜色时，可以使用方括号括起并以空格分隔的 RGB 颜色值（&amp;lt;code&amp;gt;[&#039;&#039;r&#039;&#039; &#039;&#039;g&#039;&#039; &#039;&#039;b&#039;&#039;]&amp;lt;/code&amp;gt;），CSS 颜色语法（包括 &amp;lt;code&amp;gt;rgb(&#039;&#039;R&#039;&#039;,&#039;&#039;G&#039;&#039;,&#039;&#039;B&#039;&#039;)&amp;lt;/code&amp;gt;、井号开头的十六进制颜色值、英文关键字颜色名）和[http://lnnbot.哼.site/whatcolorreplacer/ 我们预先定义的中文颜色名]表示。&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;背景 &#039;&#039;c&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:只对 &amp;lt;code&amp;gt;-画布&amp;lt;/code&amp;gt; 指令有效：设置画布背景颜色为 &#039;&#039;c&#039;&#039;。可以是“&amp;lt;code&amp;gt;透明&amp;lt;/code&amp;gt;”。未设置时默认为白色。&lt;br /&gt;
;&amp;lt;code&amp;gt;颜色 &#039;&#039;c&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置图形的颜色为 &#039;&#039;c&#039;&#039;。&amp;lt;br/&amp;gt;对于除线段之外的图形，未设置时默认为黑色；可将&amp;lt;code&amp;gt;颜色&amp;lt;/code&amp;gt;设置为“&amp;lt;code&amp;gt;透明&amp;lt;/code&amp;gt;”后再设置&amp;lt;code&amp;gt;描边&amp;lt;/code&amp;gt;属性来绘制空心的图形。&lt;br /&gt;
;&amp;lt;code&amp;gt;描边 &#039;&#039;c&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:为图形添加颜色为 &#039;&#039;c&#039;&#039; 的描边。&amp;lt;br/&amp;gt;对于线段，与&amp;lt;code&amp;gt;颜色&amp;lt;/code&amp;gt;属性等价。&lt;br /&gt;
;&amp;lt;code&amp;gt;粗细 &#039;&#039;d&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置线段或描边的宽度为 &#039;&#039;d&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变 &#039;&#039;c1&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变描边 &#039;&#039;c1&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置图形（或描边）为渐变色，从 (&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;) 处颜色 &#039;&#039;c1&#039;&#039; 平滑过渡到 (&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;) 处颜色 &#039;&#039;c2&#039;&#039;。&amp;lt;br/&amp;gt;(&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;)、(&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;) 两个点可以连成一条线段，称为渐变轴，颜色的 RGB 值在渐变轴上分别均匀变化；图形上任何一个其他的点，都与渐变轴上离那个点最近的一个点的颜色相同。也就是说，让渐变轴沿着垂直于自身的方向平移，扫过的面积里颜色均匀变化，而没有扫过的地方颜色与相应端点的颜色相同，即 &#039;&#039;c1&#039;&#039; 和 &#039;&#039;c2&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变 &#039;&#039;c0&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c1&#039;&#039; &#039;&#039;t1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;t2&#039;&#039; ... &#039;&#039;cn&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变描边 &#039;&#039;c0&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c1&#039;&#039; &#039;&#039;t1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;t2&#039;&#039; ... &#039;&#039;cn&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:除了渐变轴的两个端点外，可以在渐变轴上选定更多控制点并设置颜色，每两个相邻控制点之间颜色的 RGB 值都会均匀变化。每个中间控制点由一个颜色 &#039;&#039;c&#039;&#039; 和一个位置比值定义，比值可以是一个百分比 &#039;&#039;t&#039;&#039;% 或分数 &#039;&#039;m&#039;&#039;/&#039;&#039;n&#039;&#039;，表示控制点位置到渐变轴起点的距离与渐变轴长度的比值。若两个中间控制点的位置重合，会形成一个颜色突变，分界线垂直于渐变轴。&lt;br /&gt;
;&amp;lt;code&amp;gt;虚线 &#039;&#039;l&#039;&#039; &#039;&#039;d&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置线段或描边为许多短线组成的虚线，短线长度为 &#039;&#039;l&#039;&#039;，每两条短线之间空出 &#039;&#039;d&#039;&#039; 的距离。&amp;lt;br/&amp;gt;&#039;&#039;d&#039;&#039; 与 &#039;&#039;l&#039;&#039; 相同时可省略 &#039;&#039;d&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;虚线 &#039;&#039;l1&#039;&#039; &#039;&#039;d1&#039;&#039; &#039;&#039;l2&#039;&#039; &#039;&#039;d2&#039;&#039; &#039;&#039;l3&#039;&#039; ...&amp;lt;/code&amp;gt;&lt;br /&gt;
:高级虚线：从图形轮廓的起点开始先画长 &#039;&#039;l1&#039;&#039; 的短线，空出 &#039;&#039;d1&#039;&#039; 的距离，再画 &#039;&#039;l2&#039;&#039; 的短线，空出 &#039;&#039;d2&#039;&#039;，以此类推，直到最后一组 &#039;&#039;ln&#039;&#039;、&#039;&#039;dn&#039;&#039; 后循环。若最后一组只有 &#039;&#039;ln&#039;&#039; 没有 &#039;&#039;dn&#039;&#039;（即总共有奇数个数字），则最后一个短线长度 &#039;&#039;ln&#039;&#039; 跟循环回开头的第一个短线长度 &#039;&#039;l1&#039;&#039; 合并为一条长 &#039;&#039;ln&#039;&#039; + &#039;&#039;l1&#039;&#039; 的短线，之后再空出 &#039;&#039;d1&#039;&#039; 的距离，画 &#039;&#039;l2&#039;&#039; 的短线……这样继续下去。&lt;br /&gt;
;&amp;lt;code&amp;gt;平头&amp;lt;/code&amp;gt;&lt;br /&gt;
:取消线段或虚线两端默认存在的小半圆，使本来圆头的线变为平头。&lt;br /&gt;
;&amp;lt;code&amp;gt;方头&amp;lt;/code&amp;gt;&lt;br /&gt;
:将线段或虚线两端本来的小半圆改为小长方形，类似于&amp;lt;code&amp;gt;平头&amp;lt;/code&amp;gt;但是视觉上使线的两端各延长了线宽度的一半。&lt;br /&gt;
;&amp;lt;code&amp;gt;字号 &#039;&#039;s&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置文字的大小为 &#039;&#039;s&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;字体 &#039;&#039;名称&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置文字使用的字体族名称。&lt;br /&gt;
;&amp;lt;code&amp;gt;字重 &#039;&#039;w&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置字重（文字形状的粗细）为 &#039;&#039;w&#039;&#039;。&amp;lt;br/&amp;gt;字重是一个 1000 以内的正整数，未设置时默认为 400，即常规。&#039;&#039;w&#039;&#039; 也可以是汉字“&amp;lt;code&amp;gt;粗&amp;lt;/code&amp;gt;”，表示 700，即粗体。只有部分字体支持任意设置字重，多数只支持几个固定的值，如果字体不支持你设置的字重，会自动选择一个比较接近的可用值。&lt;br /&gt;
;&amp;lt;code&amp;gt;字宽 &#039;&#039;w&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置字宽为 &#039;&#039;w&#039;&#039;%。&amp;lt;br/&amp;gt;字宽是一个 50% 到 200% 之间的百分数，未设置时为 100%。只有部分字体支持设置字宽。&lt;br /&gt;
;&amp;lt;code&amp;gt;斜体&amp;lt;/code&amp;gt;&lt;br /&gt;
:使文字倾斜（使用意大利体的字母）。&lt;br /&gt;
;&amp;lt;code&amp;gt;斜体 &#039;&#039;a&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;斜体&amp;lt;/code&amp;gt; 后面也可以跟一个角度 &#039;&#039;a&#039;&#039;，表示让文字倾斜大约 &#039;&#039;a&#039;&#039; 度。正常的倾斜体是 14 度。很少有字体支持任意设置倾斜角度。&lt;br /&gt;
;&amp;lt;code&amp;gt;左对齐&amp;lt;/code&amp;gt;&lt;br /&gt;
;&amp;lt;code&amp;gt;右对齐&amp;lt;/code&amp;gt;&lt;br /&gt;
:让文字的左/右端对准设置的坐标。未设置时，默认是让文字的中心落在设置的坐标处。&lt;br /&gt;
&lt;br /&gt;
== 示例 ==&lt;br /&gt;
&lt;br /&gt;
待添加&lt;br /&gt;
&lt;br /&gt;
== 一些想说的 ==&lt;br /&gt;
{{quote|&lt;br /&gt;
这条命令实际上是受一位有着视力障碍的群友激发而产生的。这位群友在我们不知道的地方打听到了某款电脑专用的盲用画图软件(经过LNN的逆向可知这是一个Python程序，根据原作者的描述实际上是给盲人写论文画示例图用的)，又打听到LNN有个LNNBot(大概因为他也是玩造语的)于是前来询问LNN能否将这个盲用画图软件移植到LNNBot上使用。我一时兴起建了一个SVGpath解析器，后来觉得太难用于是搓出来了wthsvg的最初模样:只有画布、线段，以及颜色、描边。我很不想很不想辜负这位发言极其真诚的群友，我一再声明：这不符合那款软件的语法！这里的漏洞还有很多！但这位群友仍然在鼓励我(他截止目前已画出来了许多我们认为不错的作品)，于是在大概一周内有了整整八个操作。LNN的加入实际上以我们替换中文颜色的词库匮乏而起，他在渐变的语法判定上、圆形的语法转化上以及关于字体的所有属性等等都做出了巨大的贡献！包括这篇文档也是他写的。我很感谢一直支持这个项目的人(尽管这项目才开展了两周不到，我编辑时离月考只有两三天了)，包括代码贡献者，指令使用者(尽管有预防)。能做成一个对他人有着帮助的wc指令我感到高兴至极！即便不为人知，这件事已成为我人生漆黑夜空中一颗不亮的闪星，在我极匮乏的内心世界中照耀。十分感谢各位。我们会在除这个指令外的世界中共同走下去，可能在将来不再有互联网上的联系，但这段旅程我会铭记于心。(好申必的升华啊) &lt;br /&gt;
|{{U|Cycwin}}}}&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=User:Cycwin&amp;diff=42792</id>
		<title>User:Cycwin</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=User:Cycwin&amp;diff=42792"/>
		<updated>2025-12-20T08:11:34Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vnu8 们好！我是Cycwin。LNN想叫我写点什么到用户页上我就干脆瞎写了，我也不知道该写什么。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
本人是一位二初生，河南人但说的不是河南话，和所属城市的方言也有差异。本人爱好于在QQ与一群人自娱自乐，起初本人是把编程这项作为爱好日日挂在嘴边的，现在已经提不起大兴趣了，本人在生活的流水中冲掉了乐趣，冲掉了爱好，冲掉了态度，冲掉了梦想，依旧乐哉。&lt;br /&gt;
&lt;br /&gt;
本人在班里是一位疯子，在课上被公开宣布是“从精神病院里跑出来的”，被班里倒数嬉皮笑脸的询问了一遍，本人严辞拒绝了。现任左同桌自号沐风大帝，对近代历史的兴趣远超班中其他同学，政治素养不用想也是极好的。右同桌是班长，我现在没啥好介绍的。&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=User:Cycwin&amp;diff=42791</id>
		<title>User:Cycwin</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=User:Cycwin&amp;diff=42791"/>
		<updated>2025-12-20T07:35:42Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vnu8 们好！我是Cycwin。LNN想叫我写点什么到用户页上我就干脆瞎写了，我也不知道该写什么。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
本人是一位二初生，河南人但说的不是河南话，和所属城市的方言也有差异。本人爱好于在QQ与一群人自娱自乐，起初本人是把编程这项作为爱好日日挂在嘴边的，现在已经提不起大兴趣了，本人在生活的流水中冲掉了乐趣，冲掉了爱好，冲掉了态度，冲掉了梦想，依旧乐哉。&lt;br /&gt;
&lt;br /&gt;
本人在班里是一位疯子，在课上被公开宣布是“从精神病院里跑出来的”，被班里倒数嬉皮笑脸的询问了一遍，本人严辞拒绝了。现任左同桌自号沐风大帝，对近代历史的兴趣远超班中其他同学，政治素养不用想也是极好的。.........&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=User_talk:Cycwin&amp;diff=42786</id>
		<title>User talk:Cycwin</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=User_talk:Cycwin&amp;diff=42786"/>
		<updated>2025-12-17T14:23:38Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​/* 欢迎 */ 回复&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{欢迎}}&lt;br /&gt;
&lt;br /&gt;
==欢迎==&lt;br /&gt;
感谢您造访希顶维基。因为没有欢迎模板就手动欢迎吧，我是 [[User:ColorfulGalaxy|ColorfulGalaxy]]（[[User talk:ColorfulGalaxy|留言]]） [[User:ColorfulGalaxy|ColorfulGalaxy]]（[[User talk:ColorfulGalaxy|留言]]） 2025年12月17日 (三) 13:03 (CST)&amp;lt;br&amp;gt;&lt;br /&gt;
Thanks for your visiting and there is a manual welcoming in case of that there is no welcoming template. I&#039;m [[User:ColorfulGalaxy|ColorfulGalaxy]]（[[User talk:ColorfulGalaxy|留言]]） 2025年12月17日 (三) 13:03 (CST)&lt;br /&gt;
&lt;br /&gt;
:感谢您的祝福！ [[User:Cycwin|Cycwin]]（[[User talk:Cycwin|留言]]） 2025年12月17日 (三) 22:23 (CST)&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=User:Cycwin&amp;diff=42776</id>
		<title>User:Cycwin</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=User:Cycwin&amp;diff=42776"/>
		<updated>2025-12-16T13:25:03Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​创建页面，内容为“我能创建了！”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;我能创建了！&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/WhatCommands%E6%8C%87%E4%BB%A4/lrcsrc&amp;diff=42771</id>
		<title>LNNBot/WhatCommands指令/lrcsrc</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/WhatCommands%E6%8C%87%E4%BB%A4/lrcsrc&amp;diff=42771"/>
		<updated>2025-12-13T14:12:06Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​/* 用法 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WhatCommands 指令 &#039;&#039;&#039;&amp;lt;code&amp;gt;lrcsrc&amp;lt;/code&amp;gt;&#039;&#039;&#039; 可从网易云音乐获取歌曲的歌词。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
待完善&lt;br /&gt;
&amp;lt;div style=&amp;quot;opacity:0;&amp;quot;&amp;gt;写个屁！我是山里灵活的狗！&amp;lt;/div&amp;gt;&lt;br /&gt;
$$$分割参数。&lt;br /&gt;
#第一参数:歌名。&lt;br /&gt;
#第二参数(可选):第几个搜索结果。&lt;br /&gt;
#第三参数(可选):不为空就输出罗马音。&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/WhatCommands%E6%8C%87%E4%BB%A4/wthsvg&amp;diff=42768</id>
		<title>LNNBot/WhatCommands指令/wthsvg</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/WhatCommands%E6%8C%87%E4%BB%A4/wthsvg&amp;diff=42768"/>
		<updated>2025-12-13T14:00:00Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WhatCommands 指令 &#039;&#039;&#039;&amp;lt;code&amp;gt;wthsvg&amp;lt;/code&amp;gt;&#039;&#039;&#039; 可根据输入的一系列中文指令绘制图像。主要作者为 {{U|Cycwin}}，{{LNN}} 补充完善部分功能。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
&lt;br /&gt;
 ¿¿wthsvg 指令...&lt;br /&gt;
&lt;br /&gt;
wthsvg 的参数中每行为一条指令，指令分为操作和属性，操作以横杠（&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;）开头，属性跟在其所属的操作之后。&lt;br /&gt;
&lt;br /&gt;
=== 操作 ===&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;-画布 &#039;&#039;w&#039;&#039; &#039;&#039;h&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:指定画布宽为&#039;&#039;w&#039;&#039;，高为&#039;&#039;h&#039;&#039;，一般写在最开头作为第一个操作。&lt;br /&gt;
;&amp;lt;code&amp;gt;-左下角坐标&amp;lt;/code&amp;gt;&lt;br /&gt;
:特殊操作：此操作执行后，后续的所有操作中坐标原点在左下角，纵轴向上。未使用此操作时原点在左上角，纵轴向下。&lt;br /&gt;
;&amp;lt;code&amp;gt;-线段 &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制从 (&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;) 到 (&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;) 的线段。&amp;lt;br/&amp;gt;线段目前没有默认颜色，必须通过&amp;lt;code&amp;gt;颜色&amp;lt;/code&amp;gt;属性手动设置颜色才可绘制。&lt;br /&gt;
;&amp;lt;code&amp;gt;-圆形 &#039;&#039;r&#039;&#039; &#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制一个圆心在 (&#039;&#039;x&#039;&#039;, &#039;&#039;y&#039;&#039;)，半径为 &#039;&#039;r&#039;&#039; 的圆形。&lt;br /&gt;
;&amp;lt;code&amp;gt;-矩形 &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:绘制一个对角为 (&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;) 与 (&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;)，平行于坐标轴的矩形。&lt;br /&gt;
;&amp;lt;code&amp;gt;-多边形 &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039; &#039;&#039;x3&#039;&#039;,&#039;&#039;y3&#039;&#039;...&amp;lt;/code&amp;gt;&lt;br /&gt;
:以给定的一系列坐标为顶点绘制多边形。&lt;br /&gt;
;&amp;lt;code&amp;gt;-文字 &#039;&#039;x&#039;&#039;,&#039;&#039;y&#039;&#039; &#039;&#039;内容&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:在 (&#039;&#039;x&#039;&#039;, &#039;&#039;y&#039;&#039;) 处绘制文本。&lt;br /&gt;
&lt;br /&gt;
图形操作（不包括 &amp;lt;code&amp;gt;-文字&amp;lt;/code&amp;gt;）可以一次输入多组参数，用英文分号（&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;）分隔，此时将同时绘制多个同类图形并共用属性。建议在分号之后或前后均添加空格以便阅读。例如，绘制四个半径 50 单位，紧挨在一起的圆：&amp;lt;code&amp;gt;-圆形 50 100,100; 50 100,200; 50 200,100; 50 200,200&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 属性 ===&lt;br /&gt;
&lt;br /&gt;
设置颜色时，可以使用方括号括起并以空格分隔的 RGB 颜色值（&amp;lt;code&amp;gt;[&#039;&#039;r&#039;&#039; &#039;&#039;g&#039;&#039; &#039;&#039;b&#039;&#039;]&amp;lt;/code&amp;gt;），CSS 颜色语法（包括 &amp;lt;code&amp;gt;rgb(&#039;&#039;R&#039;&#039;,&#039;&#039;G&#039;&#039;,&#039;&#039;B&#039;&#039;)&amp;lt;/code&amp;gt;、井号开头的十六进制颜色值、英文关键字颜色名）和[http://lnnbot.哼.site/whatcolorreplacer/ 我们预先定义的中文颜色名]表示。&lt;br /&gt;
&lt;br /&gt;
;&amp;lt;code&amp;gt;背景 &#039;&#039;c&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:只对 &amp;lt;code&amp;gt;-画布&amp;lt;/code&amp;gt; 指令有效：设置画布背景颜色为 &#039;&#039;c&#039;&#039;。可以是“&amp;lt;code&amp;gt;透明&amp;lt;/code&amp;gt;”。未设置时默认为白色。&lt;br /&gt;
;&amp;lt;code&amp;gt;颜色 &#039;&#039;c&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置图形的颜色为 &#039;&#039;c&#039;&#039;。&amp;lt;br/&amp;gt;对于除线段之外的图形，未设置时默认为黑色；可将&amp;lt;code&amp;gt;颜色&amp;lt;/code&amp;gt;设置为“&amp;lt;code&amp;gt;透明&amp;lt;/code&amp;gt;”后再设置&amp;lt;code&amp;gt;描边&amp;lt;/code&amp;gt;属性来绘制空心的图形。&lt;br /&gt;
;&amp;lt;code&amp;gt;描边 &#039;&#039;c&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:为图形添加颜色为 &#039;&#039;c&#039;&#039; 的描边。&amp;lt;br/&amp;gt;对于线段，与&amp;lt;code&amp;gt;颜色&amp;lt;/code&amp;gt;属性等价。&lt;br /&gt;
;&amp;lt;code&amp;gt;粗细 &#039;&#039;d&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置线段或描边的宽度为 &#039;&#039;d&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变 &#039;&#039;c1&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变描边 &#039;&#039;c1&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置图形（或描边）为渐变色，从 (&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;) 处颜色 &#039;&#039;c1&#039;&#039; 平滑过渡到 (&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;) 处颜色 &#039;&#039;c2&#039;&#039;。&amp;lt;br/&amp;gt;(&#039;&#039;x1&#039;&#039;, &#039;&#039;y1&#039;&#039;)、(&#039;&#039;x2&#039;&#039;, &#039;&#039;y2&#039;&#039;) 两个点可以连成一条线段，称为渐变轴，颜色的 RGB 值在渐变轴上分别均匀变化；图形上任何一个其他的点，都与渐变轴上离那个点最近的一个点的颜色相同。也就是说，让渐变轴沿着垂直于自身的方向平移，扫过的面积里颜色均匀变化，而没有扫过的地方颜色与相应端点的颜色相同，即 &#039;&#039;c1&#039;&#039; 和 &#039;&#039;c2&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变 &#039;&#039;c0&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c1&#039;&#039; &#039;&#039;t1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;t2&#039;&#039; ... &#039;&#039;cn&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
;&amp;lt;code&amp;gt;渐变描边 &#039;&#039;c0&#039;&#039; &#039;&#039;x1&#039;&#039;,&#039;&#039;y1&#039;&#039; &#039;&#039;c1&#039;&#039; &#039;&#039;t1&#039;&#039; &#039;&#039;c2&#039;&#039; &#039;&#039;t2&#039;&#039; ... &#039;&#039;cn&#039;&#039; &#039;&#039;x2&#039;&#039;,&#039;&#039;y2&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:除了渐变轴的两个端点外，可以在渐变轴上选定更多控制点并设置颜色，每两个相邻控制点之间颜色的 RGB 值都会均匀变化。每个中间控制点由一个颜色 &#039;&#039;c&#039;&#039; 和一个位置比值定义，比值可以是一个百分比 &#039;&#039;t&#039;&#039;% 或分数 &#039;&#039;m&#039;&#039;/&#039;&#039;n&#039;&#039;，表示控制点位置到渐变轴起点的距离与渐变轴长度的比值。若两个中间控制点的位置重合，会形成一个颜色突变，分界线垂直于渐变轴。&lt;br /&gt;
;&amp;lt;code&amp;gt;虚线 &#039;&#039;l&#039;&#039; &#039;&#039;d&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置线段或描边为许多短线组成的虚线，短线长度为 &#039;&#039;l&#039;&#039;，每两条短线之间空出 &#039;&#039;d&#039;&#039; 的距离。&amp;lt;br/&amp;gt;&#039;&#039;d&#039;&#039; 与 &#039;&#039;l&#039;&#039; 相同时可省略 &#039;&#039;d&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;虚线 &#039;&#039;l1&#039;&#039; &#039;&#039;d1&#039;&#039; &#039;&#039;l2&#039;&#039; &#039;&#039;d2&#039;&#039; &#039;&#039;l3&#039;&#039; ...&amp;lt;/code&amp;gt;&lt;br /&gt;
:高级虚线：从图形轮廓的起点开始先画长 &#039;&#039;l1&#039;&#039; 的短线，空出 &#039;&#039;d1&#039;&#039; 的距离，再画 &#039;&#039;l2&#039;&#039; 的短线，空出 &#039;&#039;d2&#039;&#039;，以此类推，直到最后一组 &#039;&#039;ln&#039;&#039;、&#039;&#039;dn&#039;&#039; 后循环。若最后一组只有 &#039;&#039;ln&#039;&#039; 没有 &#039;&#039;dn&#039;&#039;（即总共有奇数个数字），则最后一个短线长度 &#039;&#039;ln&#039;&#039; 跟循环回开头的第一个短线长度 &#039;&#039;l1&#039;&#039; 合并为一条长 &#039;&#039;ln&#039;&#039; + &#039;&#039;l1&#039;&#039; 的短线，之后再空出 &#039;&#039;d1&#039;&#039; 的距离，画 &#039;&#039;l2&#039;&#039; 的短线……这样继续下去。&lt;br /&gt;
;&amp;lt;code&amp;gt;平头&amp;lt;/code&amp;gt;&lt;br /&gt;
:取消线段或虚线两端默认存在的小半圆，使本来圆头的线变为平头。&lt;br /&gt;
;&amp;lt;code&amp;gt;方头&amp;lt;/code&amp;gt;&lt;br /&gt;
:将线段或虚线两端本来的小半圆改为小长方形，类似于&amp;lt;code&amp;gt;平头&amp;lt;/code&amp;gt;但是视觉上使线的两端各延长了线宽度的一半。&lt;br /&gt;
;&amp;lt;code&amp;gt;字号 &#039;&#039;s&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置文字的大小为 &#039;&#039;s&#039;&#039;。&lt;br /&gt;
;&amp;lt;code&amp;gt;字体 &#039;&#039;名称&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置文字使用的字体族名称。&lt;br /&gt;
;&amp;lt;code&amp;gt;字重 &#039;&#039;w&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置字重（文字形状的粗细）为 &#039;&#039;w&#039;&#039;。&amp;lt;br/&amp;gt;字重是一个 1000 以内的正整数，未设置时默认为 400，即常规。&#039;&#039;w&#039;&#039; 也可以是汉字“&amp;lt;code&amp;gt;粗&amp;lt;/code&amp;gt;”，表示 700，即粗体。只有部分字体支持任意设置字重，多数只支持几个固定的值，如果字体不支持你设置的字重，会自动选择一个比较接近的可用值。&lt;br /&gt;
;&amp;lt;code&amp;gt;字宽 &#039;&#039;w&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:设置字宽为 &#039;&#039;w&#039;&#039;%。&amp;lt;br/&amp;gt;字宽是一个 50% 到 200% 之间的百分数，未设置时为 100%。只有部分字体支持设置字宽。&lt;br /&gt;
;&amp;lt;code&amp;gt;斜体&amp;lt;/code&amp;gt;&lt;br /&gt;
:使文字倾斜（使用意大利体的字母）。&lt;br /&gt;
;&amp;lt;code&amp;gt;斜体 &#039;&#039;a&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;斜体&amp;lt;/code&amp;gt; 后面也可以跟一个角度 &#039;&#039;a&#039;&#039;，表示让文字倾斜大约 &#039;&#039;a&#039;&#039; 度。正常的倾斜体是 14 度。很少有字体支持任意设置倾斜角度。&lt;br /&gt;
;&amp;lt;code&amp;gt;左对齐&amp;lt;/code&amp;gt;&lt;br /&gt;
;&amp;lt;code&amp;gt;右对齐&amp;lt;/code&amp;gt;&lt;br /&gt;
:让文字的左/右端对准设置的坐标。未设置时，默认是让文字的中心落在设置的坐标处。&lt;br /&gt;
&lt;br /&gt;
== 示例 ==&lt;br /&gt;
&lt;br /&gt;
待添加&lt;br /&gt;
&lt;br /&gt;
== 一些想说的 ==&lt;br /&gt;
LNN会让这条内容过审吗？&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
这条命令实际上是受一位有着视力障碍的群友激发而产生的。这位群友在我们不知道的地方打听到了某款电脑专用的盲用画图软件(经过LNN的逆向可知这是一个Python程序，根据原作者的描述实际上是给盲人写论文画示例图用的)，又打听到LNN有个LNNBot(大概因为他也是玩造语的)于是前来询问LNN能否将这个盲用画图软件移植到LNNBot上使用。我一时兴起建了一个SVGpath解析器，后来觉得太难用于是搓出来了wthsvg的最初模样:只有画布、线段，以及颜色、描边。我很不想很不想辜负这位发言极其真诚的群友，我一再声明：这不符合那款软件的语法！这里的漏洞还有很多！但这位群友仍然在鼓励我(他截止目前已画出来了许多我们认为不错的作品)，于是在大概一周内有了整整八个操作。LNN的加入实际上以我们替换中文颜色的词库匮乏而起，他在渐变的语法判定上、圆形的语法转化上以及关于字体的所有属性等等都做出了巨大的贡献！包括这篇文档也是他写的。我很感谢一直支持这个项目的人(尽管这项目才开展了两周不到，我编辑时离月考只有两三天了)，包括代码贡献者，指令使用者(尽管有预防)。能做成一个对他人有着帮助的wc指令我感到高兴至极！即便不为人知，这件事已成为我人生漆黑夜空中一颗不亮的闪星，在我极匮乏的内心世界中照耀。十分感谢各位。我们会在除这个指令外的世界中共同走下去，可能在将来不再有互联网上的联系，但这段旅程我会铭记于心。(好申必的升华啊)(编辑者:[[User:Cycwin]])&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
	<entry>
		<id>https://wiki.xdi8.top/index.php?title=LNNBot/WhatCommands%E6%8C%87%E4%BB%A4/song&amp;diff=42767</id>
		<title>LNNBot/WhatCommands指令/song</title>
		<link rel="alternate" type="text/html" href="https://wiki.xdi8.top/index.php?title=LNNBot/WhatCommands%E6%8C%87%E4%BB%A4/song&amp;diff=42767"/>
		<updated>2025-12-13T13:25:45Z</updated>

		<summary type="html">&lt;p&gt;Cycwin：​/* 用法 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{消歧义|搜索并解析网易云音乐，输出为语音消息的WhatCommands指令|检索荆哲歌单的指令|LNNBot/指令/song}}&lt;br /&gt;
WhatCommands 指令 &#039;&#039;&#039;&amp;lt;code&amp;gt;song&amp;lt;/code&amp;gt;&#039;&#039;&#039; 可将网易云音乐上的歌曲发送为语音消息。&lt;br /&gt;
&lt;br /&gt;
== 用法 ==&lt;br /&gt;
以$$$分隔参数，&lt;br /&gt;
第一参数:要搜索的名称，这里你完全可以相信网易云的搜索。&lt;br /&gt;
第二参数(可选):选择第几个搜索结果。最多十个。&lt;/div&gt;</summary>
		<author><name>Cycwin</name></author>
	</entry>
</feed>