GitHub
在线作曲插件
安装方法下载见 release
打开 plugins 文件夹 丢进去 关闭文件夹 效果你看到了一张图
BV1gS4y1W7cj
在 mider code 中, >params>sequence 可以称作一条轨道
params参数之间用;号分隔
支持的参数 params 详细说明如下:
sequence 可以是音名序列或是唱名序列, 音名序列的判断标准是序列里是否出现了 c~a 或 C~B 中任何一个字符
音符音名序列下, 使用 cdefgabCDEFGAB 表示, 其中小写写表示 pitch=4的音符, 大写表示比小写高一个八度的音符
唱名序列下, 使用 1234567 表示
创建的音符默认时值是四分音符, 要修改其时值, 可以使用 + 来拉长音符时值, - 以缩短时值
例如以下示例就创建了一个八分音符, 十六分音符和一个二分音符
要为音符添加附点, 请在该音符后加上 ., 而特殊时值例如三连音可以使用 /
>g>a. c/3 c/3 c/3# 和 $ 分别可以让音符升高或降低半音, @ 表示给音符添加一个还原符号
>g>$e @f #c& 可以将多个音符的时值连在一起组成一个音符
>g>a&a- # 等价于以下 >g>a.而在唱名序列中, $ 可以用 b 代替
>g>12b3在音符后加上数字可以改变其八度
>g>c3 e5而更推荐的做法是使用 ↑ 和 ↓ 在 pitch=4 的基础上进行八度的增减. 而在唱名序列中, ↑ 和 ↓ 可以用 i 和 ! 代替
>g>c↓ e↑ g↑↑ >g>1↓ 3↑ 5↑↑ >g>1! 3i 5ii% 可以设置单个音符的力度, 范围是 0~127, 未设置的情况下默认力度为 100
>g>c%60使用 o 或 O 创建四分休止符或二分休止符, 休止符同样可以使用 +, - . 甚至 / 来修改时值. 在 唱名序列中 0 相当于 四分休止符
>g>o-O+O.[ 配合 ] 可以给单个音符加上歌词
>g>1[打]2[倒]3[列]1[强]要重复单个音符多次可以使用 *
>g>c*100~ 可以克隆前一个音符, 适合偷懒
>g>c~~~~~~^ 和 v 可以将上一个音符克隆并升高或降低一个音, 升高或降低的音满足在 C大调 下的音程关系. 类似的用法还有 m-w, n-u, q-p, i-!, s-z 升高或降低度数在 ^-v 的基础上逐步递增或递减
>g>c^^^ # 等价于 cdef 和弦使用 : 可以将多个音符组成一个和弦, 第一个音的时值将会是和弦的时值
>g>c:e:g^ 和 v 等 也是可用的
>g>c:m:m # 等价于 c:e:g但是 使用 ^ 和 v 等 时要注意, # 和 $(b) 将不起作用
>g>c:m:#m #号 将不起作用可以使用 " 和 ' 代替 # 和 $(b) 问就是起名废
>g>c:m:m'↟ 和 ↡ 可以创建向上或向下琶音 符号越来越奇怪了啊喂
>g>c:e:g↟ 倚音; 连接两个音符组成一个短前倚音, 倚音时值为第二个音符的时值
>g>c;e若要构建后倚音只需要在第二个音符后加上 t
>g>c;et 滑音/刮奏(Glissando)使用 =, 可以连接多个音符, 时值为所有组成音符的时值. 默认只刮白键
>g>c=b若要白键和黑键一起刮, 在后面加上 t
>g>c=bt 宏mider code 中宏的本质是对某段序列或其中的字母或数字的重复或简单修改替换.
碍于技术原因, 目前宏均不可嵌套使用
宏的定义始于 ( 终于 ), () 内便是宏的作用域, 以下是支持的宏:
定义一个音符序列: (def symbol=note sequence)
>g>aaa(def na=cde)aaa >g>aaaaaa # 实际输入的序列定义一个音符序列, 并在此处展开: (def symbol:note sequence)
>g>aaa(def na=cde)aaa >g>aaacdeaaa # 实际输入的序列展开 symbol 对应音符序列: (=symbol)
>g>(def a=cde)a(=a) >g>acde # 实际输入的序列读取 path 代表的资源并展开, 如果是文件默认目录是插件的数据文件夹: (include path)
>g>(include ./seq.midercode)将音符序列重复 times 次: (repeat time: note sequence)
>g>c(repeat 3: oa) >g>coaoaoa # 实际输入的序列如果定义了 symbol 则展开: (ifdef symbol: note sequence)
如果未定义 symbol 则展开: (if!def symbol: note sequence)
>g>(def s=abc) (ifdef s: cfg) (if!def s: bbc) >g>cfg #实际输入的序列定义宏(类似函数, 但实际表现得更蠢一些): (macro name param1[,params]: note sequence @[param1])
展开宏: (!name arg1[,arg2])
>g>(m p1: a@[p1]dc@[p1]) (!m b) >g>abdcb #实际输入的序列调整 note sequence 的力度, 仅适用于长音名序列: (velocity linear from~to: note sequence)
>g>(velocity linear 50~80: cde) >g>c%50 d%60 e%70 环境指令: >!config>供 MidiProduce 内部调用
获取帮助
设置 formatMode
>!formatMode=mode>清理缓存
>!clear-cache> todo list 解析音符为语音 渲染乐谱 识别乐谱并转化为音符 示例 1. 小星星 >g>1155665 4433221 5544332 5544332 等同于 >g>ccggaag+ffeeddc+ggffeed+ggffeed 等同于 >g>c~g~^~v+f~v~v~v+(repeat 2:g~v~v~v+) (酌情使用 2. KFC 可达鸭 >g;bE>g^m+C-wmD+D^m+G-wmE+D^w+C-wmD+DvagaC 3. 碎月 >85b>F+^$BC6GFG C$E F D$ED$b C+ g$b C$E F$E F+ F$E F$B G++ G$B C6C6$B C6 G+ G$E FGF$E C+ C$b C+C$EF$EFG $E 等同于 >85b;Cmin>F+^BC6GFG CE F DEDb C+ gb CE FE F+ FE FB G++ GB C6C6B C6 G+ GE FGFE C+ Cb C+CEFEFG E 4. 生日快乐 >88b>d.d- e+v g+ #f++ d.d- e+v a+ v+ d.d- D+b+g+ #f+ e+ C.C- b+ g+^ v+ 5. 茉莉花 >110b>e+em^m~wv+g^v++e+em^m~wv+g^v++g+~~em^+av~++e+d^m+evv+c^v++evvmv+.eg+amg++d+egd^cwv++ ^-c+d+.ec^vwv++ 6. bad apple! >100b>e#fgab+ ED b+ e+ b a-- B-- A- g#f e#fga b+ ag #fe#fg #f--G--#F-e #d#f e#fgab+ ED b+e+ ba--B--A- g#f e#fgab+ ag 7. Jingle Bells >100b>E~~+E~~+EmC^^++F~~+Fv~+Ev~^ D+G+E~~+E~~+EmC^^++F~~+Fv~~m~vDv++ 8. 两只老虎 卡农 >g;3>(def tiger:1231 1231 3450 3450 5-6-5-4-31 5-6-5-4-31 15!10 15!10) >g;4>00(=tiger) >g;5>0000(=tiger) >g;6>000000(=tiger) >g;7>00000000(=tiger)更多示例见 awesome-melody
若想分享自己编写的旋律欢迎提 pr 到这个文件夹, 建议使用英文名称, 后续可能会考虑打包进发布版本供 include 使用
转换乐谱此功能需要首先安装 Muse Score
下载 Muse Score : 可以根据官方 下载页面 也可以参考 snapcraft
附官方 linux 安装指北
安装完成后将 Muse Score 的运行目录 (包括bin/) 添加到环境变量
或者也可以修改配置中mscoreConvertMidi2MSCZCommand 等的值为安装目录
如您的安装的可执行程序启动命令(可执行程序的名字)不是 MuseScore3, 您需要手动将 config.yml 中的 MuseScore3 替换成正确的 MuseScore 启动命令最后在轨道中添加 ;pdf 或 ;img 即可得到渲染好的乐谱
44f9b717-4c28-453e-b99c-2fc8567828c8-image.png
若想修改 Muse Score 命令格式和参数, 请参考 官方使用手册
注意 唱名序列中 \s{2} 和 \s\|\s 会被自动替换成 0 也就是休止符, 可以在配置中修改这部分行为 若为使用 internal 模式则生成的语音音色会随着系统底层实现的不同而不同 如果最后输出的格式是 silk 那么好友和群聊都有效, 如果是 mp3 则仅群聊有效, 好友会出现感叹号 mp3 格式在 pc 端听不了, mac 据说可以 , 哪位富婆可以给咱买一台测试一下( 命令还未加入权限, 可以在 #3 进行讨论 好友环境下生成 silk 格式会比 mp3 音质低得多 , 听个响属于是 构建由于使用了 RainChan 的 silk4j 所以 clone 到本地后要修改 build.gradle.kts 中的 username 和 password 为自己的才能成功构建
服务器环境下生成语音在服务器环境插件可能会由于缺少硬件或驱动支持无法生成语音, 可以尝试安装 timidity 和 ffmpeg 解决
具体安装可以参考 这篇
这里提供一个 sf2 的 音色库
安装完成以后确保 timidity 和 ffmpeg 位于环境变量中, 或者也可以修改 ffmpegConvertCommand 和 timidityConvertCommand
最后修改 formatMode 即可使用 timidity 和 ffmpeg 生成语音
修改音色目前 internal 无法修改音色
可以通过安装 timidity 或 Muse Score 来实现
release 中的多个发行包带 bundled-silkf4 的是打包了 silk4j 的包
若确定不需要使用转换 silk 的功能可以直接下载不带后缀版本的包