跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
社群首页
帮助
希顶相关网站
希顶社区官网
希服维基
Nyoeghau翻译器
〇改希顶转写器
语圈山海经
搜索
搜索
外观
创建账号
登录
个人工具
创建账号
登录
查看“︁LNNBot/指令/musicjs”︁的源代码
页面
讨论
不转换
不转换
简体
繁體
新加坡简体
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
←
LNNBot/指令/musicjs
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:
用户
、storagereadable
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
{{LNNBot指令信息 |别名= |属性=严格选项解析 |所属插件=[https://github.com/DGCK81LNN/koishi-plugin-music @dgck81lnn/music] |父级指令=util.script |所需权限= }} '''<code>musicjs</code>''' 允许用户通过一套 JavaScript API 来合成旋律。 == 用法 == musicjs <code:{{LNNBot值类型链接|rawtext}}> <code>code</code> 为 JavaScript 代码,提供以下函数和变量: * <code>note(tone: number, beats: number, temperament = 12)</code> 创建平均律音符 *: 相当于 <code>noteHz(baseFrequency * (2 ** (tone / temperament)), beats)</code>。 ** <code>tone</code> 音符相对于基准音的偏移(默认情况下,单位为半音) ** <code>beats</code> 音符时长(拍) ** <code>temperament</code> 平均律的音阶数;决定了多少 <code>tone</code> 为一个八度 * <code>noteJust(ratio: number, beats: number)</code> 创建纯律音符 *: 相当于 <code>noteHz(baseFrequency * ratio, beats)</code>。 ** <code>ratio</code> 音符音高与基准音频率的比值 ** <code>beats</code> 音符时长(拍) * <code>noteHz(frequency: number, beats: number)</code> 创建指定频率音高的音符 ** <code>frequency</code> 频率(赫兹);为负数时播放噪波,绝对值为采样率 ** <code>beats</code> 音符时长(拍) * <code>rest(beats: number)</code> 休止 ** <code>beats</code> 休止时长(拍) * <code>bpm: Number = 120</code> 每分钟拍数 *: 为了兼容一些旧的代码,该变量的初始值是一个可以被隐式转换成数字的函数,可以通过调用修改速度;对其进行有效的赋值后,会变成普通数字。 * <code>baseFrequency = 440</code> 基准音频率 * <code>gain = 0.5</code> 音量 * <code>time = 0</code> 当前时间(秒) 每次创建音符时其开始时间由 <code>time</code> 变量决定,创建音符或休止都会使其值增加。可通过手动减少此值(或用 <code>rest()</code> 休止负的时间)后再创建音符来使其与已创建的音符同时播放。例如,演奏《D大调卡农》靠近开头的两小节: <syntaxhighlight lang="javascript"> bpm = 60 note(9, 1); note(7, 1); note(5, 1); note(4, 1) // #F5 E5 D5 #C5 note(2, 1); note(0, 1); note(2, 1); note(4, 1) // B4 A4 B4 #C5 // 由于速度为每分钟 60 拍,演奏了 8 个一拍长的音符,此时 time 为 8.0 // 我们回到最开头,再创建大提琴的音符 time = 0 // 也可以用 rest(-8),后退 8 拍 note(-19, 1); note(-24, 1); note(-22, 1); note(-27, 1) // D3 A2 B2 #F2 note(-26, 1); note(-31, 1); note(-26, 1); note(-24, 1) // G2 D2 G2 A2 </syntaxhighlight> == 参见 == * <code>[[LNNBot/指令/musicjs*|musicjs*]]</code>:在本指令的基础上提供了 <code>aj()</code> 等辅助函数,方便编写旋律
该页面使用的模板:
Template:!!
(
查看源代码
)
Template:!-
(
查看源代码
)
Template:Infobox
(
查看源代码
)
Template:LNNBot值类型链接
(
查看源代码
)
Template:LNNBot指令信息
(
查看源代码
)
Module:String
(
查看源代码
)
返回
LNNBot/指令/musicjs
。