Skip to content

ssJSKFJDJ/listen2me

 
 

listen2me

download

此分支为Windows版本。

listen2me是为Dice!编写的Lua脚本,用于mml(Music Macro Language)作曲试听。

如果在使用过程中遇到了困难,欢迎到原仓库提交issue;如果在使用过程中修改出更有意思的玩法,也欢迎到原仓库提交PR

{
    "mod":"listen2me",
    "author":"简律纯",
    "ver":"2.1.0",
    "dice_build":612,
    "brief":"使用mml作曲",
    "comment":"",
    "helpdoc":{
        "listen2me":"【listen2me[Windows]】\n使用mml语言进行作曲\nhttps://github.com/HsiangNianian/listen2me",
        "loopstraining":"基于listen2me的听音训练娱乐模块"
    }
}
  • Windows 版本
  • Linux 版本

安装

  • Dice版本2.6.5beta12(624+)以上安装方法:

    1. ./DiceQQ/conf/mod/source.list文件内(没有mod文件夹和这文件就新建)输入 https://ssjskfjdj.netlify.app/Module/
    2. 使用 .system load命令重载bot,这样做的目的是为了让步骤1里的远程地址生效。
    3. 对bot发送 .mod get listen2me命令,等待安装。
    4. 回到第二步,这样做的目的是为了让mod被加载。
    5. Enjoy Your Self!
  • Dice版本2.6.4b(612+)以上安装方法:

    1. 浏览器访问 https://github.com/ssJSKFJDJ/listen2me并点击绿色按钮 Code下的 Download Zip按钮下载仓库压缩包。
    2. 解压压缩包,将里面的文件和文件夹全部丢进 ./DiceQQ/mod/文件夹内。
    3. 使用 .system load命令重载。
    4. Enjoy Your Self!

配置

使用功能模块前先根据注释内容修改合适的配置

--------------------settings---------------------
Settings = {
    _FRAMWORK = "Gocq", -- "Mirai",
    -- 框架名称,必填,可选参数:'Mirai'或'Gocq'(默认).

    _ONEFILE = "xx", -- os.date("%A"),
    -- 是否将每次的乐谱记录在同一个文件内.

    _WARNING = 18,
    -- 音频文件过多报警上限,未填时默认18

    _AUTOCLR = 21,
    -- 音频文件自动清理,未填时默认21

    _SUBNAME = ".mp3", -- ".wav",
    -- 规定输出格式,填写mp3时需要安装ffmpeg.

    _UPLOAD = false, -- false,
    -- 是否在发出语音同时上传mid文件(仅限Gocq).
    -- 对应下参数_APIPORT.

    _APIPORT = 15700 -- nil
    -- Gocq 本地 API 端口,填nil时将自动搜寻,若报错请自行填入.
}

指令

一般指令格式:l2m>[opt=clr|mml|...]

  • 清理缓存 成功执行一次mml命令后会在 ./project/生成这几样东西:

    1. fileName.mid
    2. fileName.mml
    3. fileName.mp3|wav

    这些就是所谓的缓存,一次生成三个,因此才有了 _WARNING_AUTOCLR配置——但要注意的是,这些配置的存在只是为了那些不会主动的清理的人罢了,如果你比较勤快那么我想除了添加 _ONEFILE配置项外,你一定会经常使用 l2m>clr指令去清理这些缓存的。

  • 生成曲谱 指令格式:l2m>[mml],由于mml语法过于繁琐因此在这里不一一赘述,只是做几个示例,日后会写专门的文档系统介绍此功能模块的mml语法。

    1. 单轨示例
    l2m>A cdefgab
    
    1. 多轨示例
    l2m>
    A l8d+>d+d+d+d4<a+4>cc<a+g+a+2d+>d+d+d+d4.<a+b+2g+4a+4d+>d+d+fd4<a+4>cl16d+f8.d+<a+4.&a+gfl8d+>d+d+gfd+dl16<a+>d+4.&d+cdd+8dd+8.<a+8>fgf2gg8.fd+f8cd+4&d+<a+8>gg8.fd+f8d+<a+4.&a+>gg8.fd+f8cd+4d+d+8dd8.cc8.<a+a+8.>cd+g+8.g8.fd+f8cd+4&d+<a+8>dd8d+8f<a+8ga+8>f8d+d+8.<a+a+8g+gg+8>d+d+2<a+a+8g+gg+8>ff4.&fd+8d+8df8d+2.
    
    B /*M 0  */  <c8g8>d+4<<g8>d8a+4/*M 1  */  <g+8>d+8<a+4>d+4d4/*M 2  */  c8g8>d+4<<g8>d8a+4/*M 3  */  <g+8>d+8>c8<d+8<g+8>d+8<a+8b8/*M 4  */  >c8g8>d+8<g8<g8>d8a+8d8/*M 5  */  <g+8>d+8<a+4>d+8a+8d4/*M 6  */  c8g8>d+8<g8<g8>d8a+8d8/*M 7  */  <g+8>d+8>c8.<<a+16b4g+4/*M 8  */  a+8>f8a+4<<a+2/*M 9  */  >g+8>d+8>c8<d+8<g+8>d8a+8d8/*M 10 */  <g8>d+8a+8d+8c8g8>d8d+8/*M 11 */  <<f8>g8>d+8<g+8<a+8>f8>d8<a+8/*M 12 */  <d+8a+8>d+8<a+8>c+8<a+8>c+8<<a+8/*M 13 */  >g+8>d+8>c8<d+8<g+8>d8a+8d8/*M 14 */  <g8>d8.<g8.>c4<d8d+8/*M 15 */  f8>c8g+8c8<g8>d+8a+8d+8/*M 16 */  <g+8>d+8>c8<d+16.<<a+32o4d2/*M 17 */  <<d+16a+16>g16g+16a+8.<d+4.&d+16d+8
    

音源

Musescore 提供的三个常见音色库

FluidSynth 提供的音源下载网站

参考

日志

此日志写的比工程文件要晚那么一点。


2022年11月20日 开了一个新的坑——听音练习。
新增
1.loopstraining新增听音练习娱乐模块。
改动
1.mml2mid.lua将所有的局部变量名称首字母大写。
2022年10月29日 发现了几个bug,更新了readme。
issue
1.mml2mid.luatimidity线程问题,速度过快会导致timidity错误。
新增
1.readme.md新增指令介绍。
2022年10月13日 完善Gocq上传群文件机制。
新增
1.mml2mid.lua_UPLOAD_APIPORT完善,预期功能已实现。
改动
1.mml2mid.lua原本注释的_WARNING配置项现已恢复原有功能。
2.mml2mid.lua配置项_AUTOCLR默认上限提高。
2022年10月11日 新增配置项。
新增
1.mml2mid.lua新增_UPLOAD_APIPORT配置,详细使用说明见脚本。
2022年10月9日 实现了timidity.cfg的自动写入。
新增
1. mml2mid.lua 新增了对timidity音源的检测。
2.mml2mid.lua 新增_FRAMWORK配置项,判断框架类型。
3.mml2mid.lua 新增mml语法报错检测和输出(如果你看得懂那会很有帮助就是了)。
修复
1. 修复了因timidity.cfg参数dir固定而无法输出有声音的音频问题。
2022年10月8日 初步框架版本编写完毕。
新增
1. mml2mid.lua 新增一些配置项。
2. 新增了对 timidity.cfg 的查询功能。
删减
1. 改动了部分语法。
2022年10月2日 准备套壳,已经实现mml转mid,mid转wav,下一阶段将会编写脚本使其脚本化。
新增
1. 添加timidity,放弃了原本直接发送midi序列的方式(这样Go-cqhttp会发不出语音),在发送语音前会对*.mid文件进行转码再发送。
修复
1. 修复了一些bug。

2022年11月20日02点00分

About

No description or website provided.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 100.0%