Musicreater/docs/功能使用说明.md
2022-11-27 18:13:01 +08:00

16 KiB
Raw Blame History

音·创 Musicreater

库版 Package Version

演示程序使用教程

由于先前的 读我文件(README.md) 过于冗杂,现另辟蹊径来给大家全方位的教程。

这是演示程序demo的使用教程将在这里提供演示程序的相应的使用教程

视窗(Windows)操作系统

运行环境安装

  1. 安装 Python3.6+

    首先需要下载Python的安装包最好是 Python3.8,因为作者就用的是这个版本

    下载64位Python安装包 下载32位Python安装包

    在安装时,最好需要勾选 Add Python 3.X to PATH,如下图所示,当然,如果您对自己非常自信,您也可以手动设置此项目:

    若您对Python一知半解或者不怎么了解、并对自己的系统盘通常是C盘有大约150兆字节(MB)的信心的话,您可以在安装时直接选择快速安装(Install Now)

    若您选择了自定义安装(Customize Installation),请务必勾选 pippy launcher 便于后续安装依赖,如下图:

    安装结束之后可以在终端(命令行/PowerShell/Bash/etc)中输入python 试试是否安装成功成功安装之后在终端中输入python会显示诸如如下图片的提示

  2. 安装依赖

    请以管理员模式打开您的终端(命令行/PowerShell/Bash/etc)

    例如,命令行,可以如此打开:在视窗开始菜单(Windows开始)中搜索 cmd, 并以管理员身份运行

    打开了终端之后,请在终端中输入以下指令

    pip install mido -i https://mirrors.aliyun.com/pypi/simple/
    pip install brotli -i https://mirrors.aliyun.com/pypi/simple/
    

    安装成功后您可能会见到类似下图的提示:

本工具的下载与使用

  1. 下载本代码库以及演示程序

    • 若您使用git请直接克隆本仓库
    git clone -b pkgver https://gitee.com/EillesWan/Musicreater.git
    
  2. 开始使用

    在目录下打开终端,例如,打开命令行,请进入到目录下,在地址框内输入cmd

    执行以下命令:(选择你需要的)

    python demo_convert.py
    python demo_convert_bdx_byDelay.py
    

补充错误说明

  1. Microsoft Visual C++ Redistributable 环境出错

    如果你遇到了类似以下这种情况:

    请下载最新的VCREDIST安装包可以参照这个网页的说明,也可以在这直接选择你需要的安装包下载:

    下载64位VCREDIST安装包 下载32位VCREDIST安装包

    感谢群友Mono帮我们发现这个问题

里纽克斯(Linux)操作系统

运行环境安装

  1. 安装并检验Python运行环境

    一般的Linux发行版都有安装Python环境我们只需要保证其版本即可理论上 ≥Python3.6 都可以运行我们的库

    我们可以使用

    python -V
    

    来查看 Python 版本,如下

    • 非必要环节

      如果你跟作者一样,觉得 Python 3.10+ 太难用很烦人的话,那真是皆大欢喜,让我们一起来回退版本吧!

      • pacman 包管理器多用于Arch Linux上

        让我们先来把 python3 加入忽略升级的列表中,使用vim修改/etc/pacman.conf,在IgnorePkg后加上python3

        sudo vim /etc/pacman.conf
        

        然后我们开始从Arch Achieve上找Python的版本列表。这里说明一下在Arch中Python默认指的是Python3而与其他某些Linux发行版中Python默认指代Python2不同所以在Arch Achieve中也是如此。)我这里找到的是Python3.8.6,于是我们用pacman把她下载下来:

        sudo pacman -U https://archive.archlinux.org/packages/p/python/python-3.8.6-1-x86_64.pkg.tar.zst
        

        完美!

  2. 检查并安装pip包管理器依赖

    我们在安装依赖库之前应该确认一下Python自带的包管理器pip是否安装到位

    python -m pip				# 确认pip是否安装
    # 当这个命令输入后有长段提示出现则为已经安装
    
    # 如果返回如下那么则pip尚未安装
    /usr/bin/python: No module named pip
    # 可以使用如下命令来安装pip
    sudo pacman -S python-pip
    # 安装完成后记得验证
    python -m pip
    
    
    # 如果还是失败那么就需要用其他工具安装pip
    wget https://bootstrap.pypa.io/get-pip.py
    sudo python get-pip.py
    # 安装完成后一定要验证!!!
    python -m pip
    

    确认完成之后,我们来安装一下依赖库:

    pip install mido -i https://mirrors.aliyun.com/pypi/simple/
    pip install brotli -i https://mirrors.aliyun.com/pypi/simple/
    

    安装成功后您可能会见到类似下图的提示:

本代码库的下载与使用

  1. 使用Git下载本库及其示例代码

    git clone -b pkgver https://gitee.com/EillesWan/Musicreater.git MSCTpkgver
    

    当上述命令执行成功,你会在执行此命令的所在位置发现一个名为 MSCTpkgver 的文件夹,其中包含的正是我们心心念念下载的本程序和示例代码。 而我们要运行的也正是示例代码,因此,赶快进入下载到的文件夹:

    cd MSCTpkgver
    
  2. 开始使用

    在目录下打开终端,执行以下命令:(选择你需要的)

    python demo_convert.py
    python demo_convert_bdx_byDelay.py
    

安卓(Android)与安卓衍生操作系统

使用前的准备工作

  1. 安装终端工具

    这里我们选用 Termux 作为我们的终端工具来安装这是一个强大的终端模拟器旨在安卓环境下模拟Linux的软件包环境。

    下载可以通过 GitHub 或者 F-Droid ,个人建议选择 F-Droid 源,因为在国内可以访问得到,而 GitHub 源就看运气。

    下载后直接按照,打开后可以看到一个类似这样的界面:

    恭喜你,你已经获得了一个极客般流畅地操作你手机的终端工具。

  2. 安装运行环境

    接下来,我们就要来安装一下 Python 运行环境了,这是运行 Python 源代码必要的。

    首先,我估计你等不了多久,急得要死,所以我们要让下载速度稍微快一点,先来换个源。换源要手动编辑个文档,那用啥?用普通的编辑器肯定可以,于是我们就让他更普通一点,用nano吧!

    Termux 中,输入以下指令:

    export EDITOR=nano
    apt edit-sources
    

    你可能会看到如下一个简单的界面:

    好,让我们动起你的双手,把它变成这样吧:

    • 图片中的文件,最后应该加入的两行为:

      deb https://mirrors.ustc.edu.cn/termux/apt/termux-main/ stable main
      deb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main/ stable main
      

    然后键入 Ctrl+S,再键入 Ctrl+X,你会见到差不多如下的提示:

    Your '/data/data/com.termux/files/usr/etc/apt/sources.list' file changed. Please run 'apt-get update'.
    

    那就遵循它的指引,输入:

    apt-get update
    

    然后就完美了,我们来安装 Python 吧!

    apt-get install python3
    

    如果遇到提示问是否继续,那就输入Y表示是,如图。

    如果你安装成功,应该是差不多这样的:

    我们来试一试 Python 是不是安装成了吧,输入

    python3 -V
    

    如果输出了形如 Python 3.X.X 的提示,则完成。

    确认完成之后,我们来安装一下依赖库:

    # 首先换源
    pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/
    # 然后安装
    pip install mido
    pip install brotli
    
    • 如果出现以下情况,真是死了鬼的,我们要来再搞个设置:

      我们来修改收信任的源设置:

      pip config set global.trusted-host mirrors.aliyun.com/
      

      之后再来安装即可

      pip install mido
      pip install brotli
      

    安装成功后您可能会见到类似下图的提示:

  3. 安装下载工具

    既然已经有了运行环境,那么我们就需要下载下我们的音·创库版示例代码工具,我非常推崇Git这种方便快捷好用还能下载仓库的代码管理器,这个世界上你也找不到第二个,所以我们来安装一下:

    pkg install git
    

    安装完成后记得测试一下:

本代码库的下载与使用

  1. 使用Git下载本库及其示例代码

    git clone -b pkgver https://gitee.com/EillesWan/Musicreater.git MSCTpkgver
    

    当上述命令执行成功,你会在执行此命令的所在位置发现一个名为 MSCTpkgver 的文件夹,其中包含的正是我们心心念念下载的本程序和示例代码。 而我们要运行的也正是示例代码,因此,赶快进入下载到的文件夹:

    cd MSCTpkgver
    
  2. 开始使用

    在目录下打开终端,执行以下命令:(选择你需要的)

    python demo_convert.py
    python demo_convert_bdx_byDelay.py
    

    运行成功了,哦耶!

其他说明

对于 延迟播放器 的说明

问1什么是延迟播放器

答1播放音乐不同的音符之间存在间隔可以用不同的方式实现音符间空白的时间。其一是计分板通过给计分板加分对应分数播放对应的音符就可以间隔到还有就是命令方块自带的延迟这样也可以实现音符间空白。延迟播放器即后者但是因为只能对命令方块写入这样的延迟数据所以仅可以使用包含NBT的结构导出或者直接输出至世界。

问2可不可以不要积分板

答2详见问1切换你所需要的播放器即可。

对于 参数 的补充说明

  • midi路径含有mid文件路径、文件名、后缀的完整文件路径或者一个目录demo可接受批量转换。可以使用相对或绝对路径皆可

  • 输出路径:输出文件夹的路径,不需要指示文件名

  • 是否重置计分板1或0歌曲放完是否重置推荐1

  • *进度条是否启用进度条以及自定义进度条样式。输入0或False表示不启用进度条输入1或True表示使用默认进度条其余的输入均表示使用输入的格式作为自定义的进度条样式

  • 计分板名称:游戏内的计分板名称

  • 音量0-1之间的小数含01正常来说推荐1

  • 速度倍率小数数据不可为0一般写1

  • 玩家选择器:包括 @x 在内的全部选择器,即若要选择全部标签为Holo的玩家,则需要如此输入:@a[tag=Holo]

  • 没有报错且在输出路径下找到mcpack或bdx即为生成成功

对于 进度条自定义 功能的说明

因为我们提供了可以自动转换进度条的功能,因此在这里给出进度条自定义参数的详细解释。

请注意,并非所有的演示样例程序都支持自定义进度条。

一个进度条,明显地,有固定部分可变部分来构成。而可变部分又包括了文字和图形两种(当然,《我的世界》里头的进度条,可变的图形也就是那个“条”了)。这一点你需要了解,因为后文中包含了很多这方面的概念需要你了解。

进度条的自定义功能使用一个字符串来定义自己的样式,其中包含众多标识符来表示可变部分。

标识符如下(注意大小写):

标识符 指定的可变量
%%N 乐曲名(即传入的文件名)
%%s 当前计分板值
%^s 计分板最大值
%%t 当前播放时间
%^t 曲目总时长
%%% 当前进度比率
_ 用以表示进度条占位

表示进度条占位的 _ 是用来标识你的进度条的。也就是可变部分的唯一的图形部分。

样式定义字符串的样例如下,这也是默认的进度条的样式:

▶ %%N [ %%s/%^s %%% __________ %%t|%^t]

这是单独一行的进度条,当然你也可以制作多行的,如果是一行的,输出时所使用的指令便是 title,而如果是多行的话,输出就会用 titleraw 作为进度条字幕。

哦对了,上面的只不过是样式定义,同时还需要定义的是可变图形的部分,也就是进度条上那个真正的“条”。

对于这个我们就采用了固定参数的方法,对于一个进度条,无非就是“已经播放过的”和“没播放过的”两种形态,所以,使用一个元组来传入这两个参数就是最简单的了。元组的格式也很简单:(str: 播放过的部分长啥样, str: 没播放过的部分长啥样) 。例如,我们默认的进度“条”的定义是这样的:

('§e=§r', '§7=§r')

综合起来,把这些参数传给函数需要一个参数整合,你猜用的啥?啊对对对,我用的还是元组!

我们的默认定义参数如下:

(r'▶ %%N [ %%s/%^s %%% __________ %%t|%^t]',('§e=§r', '§7=§r'))

对了!为了避免生成错误,请尽量避免使用标识符作为定义样式字符串的其他部分