<!-- [Bilibili: 金羿ELS]: https://img.shields.io/badge/Bilibili-%E9%87%91%E7%BE%BFELS-00A1E7?style=for-the-badge&label=作者B站
[Bilibili: 玉衡Alioth]: https://img.shields.io/badge/Bilibili-%E7%8E%89%E8%A1%A1Alioth-00A1E7?style=for-the-badge&label=作者B站 -->
[CodeStyle: black]: https://img.shields.io/badge/code%20style-black-121110.svg?style=for-the-badge&label=代码风格
[python]: https://img.shields.io/badge/python-3.8-AB70FF?style=for-the-badge
[release]: https://img.shields.io/github/v/release/TriM-Organization/Musicreater?style=for-the-badge&label=发行版
[license]: https://img.shields.io/badge/Licence-%E6%B1%89%E9%92%B0%E5%BE%8B%E8%AE%B8%E5%8F%AF%E5%8D%8F%E8%AE%AE-228B22?style=for-the-badge&label=协议
[commit-activity]: https://img.shields.io/github/commit-activity/m/TriM-Organization/Musicreater%2Fmaster?style=for-the-badge&label=提交活动&color=AB70FF



<h1 align="center">音·创 Musicreater </h1>

<p align="center">
    <img width="128" height="128" src="https://gitee.com/TriM-Organization/Musicreater/raw/master/resources/msctIcon.png">
    </img>
</p>

<h3 align="center">一款高性能、插件化的《我的世界》数字音频支持库。</h3>

<p align="center">
    <img src="https://img.shields.io/badge/BUILD%20WITH%20LOVE-FF3432?style=for-the-badge">
    <a href='https://gitee.com/TriM-Organization/Musicreater'>
        <img align="right" src='https://gitee.com/TriM-Organization/Musicreater/widgets/widget_1.svg' alt='Fork me on Gitee'>
        </img>
    </a>
<p>

<!-- [![][Bilibili: 金羿ELS]](https://space.bilibili.com/397369002/)
[![][Bilibili: 玉衡Alioth]](https://space.bilibili.com/604072474) -->
[![CodeStyle: black]](https://github.com/psf/black)
[![][python]](https://www.python.org/)
[![][license]](LICENSE)
[![][release]](../../releases)

[![GiteeStar](https://gitee.com/TriM-Organization/Musicreater/badge/star.svg?theme=gray)](https://gitee.com/TriM-Organization/Musicreater/stargazers)
[![GiteeFork](https://gitee.com/TriM-Organization/Musicreater/badge/fork.svg?theme=gray)](https://gitee.com/TriM-Organization/Musicreater/members)
[![GitHub Repo stars](https://img.shields.io/github/stars/TriM-Organization/Musicreater?color=white&logo=GitHub&style=plastic)](https://github.com/TriM-Organization/Musicreater/stargazers)
[![GitHub Repo Forks](https://img.shields.io/github/forks/TriM-Organization/Musicreater?color=white&logo=GitHub&style=plastic)](https://github.com/TriM-Organization/Musicreater/forks)

简体中文🇨🇳 | [English🇬🇧](README_EN.md)

## 介绍 🚀

音·创 是一款极致优化的针对 **《我的世界》** 音乐的支持库，通过插件化的设计，支持多种处理方式。

欢迎加群：[861684859](https://jq.qq.com/?_wv=1027&k=hpeRxrYr)

> **注意** 本仓库内的项目仅仅是支持库，其用户为基岩版音乐相关软件的开发者 \
> 面向常规用户的 **基岩版音乐转换工具** 请参阅：[伶伦转换器](../../../Linglun-Converter)【已停止更新】 \
> 我们也正在开发面向高级用户的 **基岩版音乐编辑工具**（数字音频工作站）：[伶伦](../../../LinglunStudio)


## 安装 🔳

> 理论适用版本：Python 3.8 \
> 实际开发版本：Python 3.10

使用 pypi 直接安装

-   ```bash
    pip install --upgrade Musicreater
    ```

如果因第三方源同步较慢，无法更新至最新，可以尝试使用 pypi 的默认源：

-   ```bash
    pip install --upgrade -i https://pypi.python.org/simple Musicreater
    ```

如果需要使用一些内置插件，则可以在库名称后面加上对应的可选依赖标签，现有的插件和可选依赖标签对应如下：

-   | 内置插件 | 插件功能 | 可选依赖标签 | 说明 |
    | -------- | -------- | ------------ | ---- |
    | Midi 读取 | 读取 MIDI 文件，导入音轨或全曲 | `midi` | 未来可能支持 MIDI 写入 |
    | Minecraft 指令结构生成 | 导出乐曲，创建 Minecraft 指令方块存储的音乐结构 | `structure` | 当前支持 `.mcstructure`、`.bdx` 格式直接导出和 `.mcpack` 附加包格式的导出，具体导出格式请查阅[插件文档](./docs/内置插件相关/MC指令结构/) |
    | 音乐预览 | 以 Minecraft 音效直接输出音乐的波形声音文件 <hr> 导入自制的 Minecraft 音乐资源包并解析，并输出预览结果波形（实验性） | `preview` <hr> `preview-advanced` | 输出为 `.wav` 格式的音乐文件，用于预览音乐的播放效果 <hr> 需与 preview 标签一并安装 |

除了内置插件有对应的可选依赖标签外，还有另外两组可选依赖：

-   | 标签 | 说明 |
    | ------------ | ---- |
    | `full` | 添加所有可选依赖，即包含所有插件的依赖项 |
    | `dev` | 添加开发依赖，包括一些开发或测试功能时所用插件、以及 `full` 标签中的所有插件的依赖项。 |

也就是说，如果需要使用 midi 读取和 Minecraft 指令结构生成，则需要安装 `midi` 和 `structure` 标签所对应的依赖项。例如：

-   ```bash
    pip install "Musicreater[midi,structure]"
    ```

参与开发，可以采用最新的开发分支下的滚动更新：

-   ```bash
    pip install "git+https://gitee.com/TriM-Organization/Musicreater.git@develop[dev]"
    ```

## 文档 📄

[生成文件的使用](./docs/%E7%94%9F%E6%88%90%E6%96%87%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md)

[仓库 API 文档](./docs/%E5%BA%93%E7%9A%84%E7%94%9F%E6%88%90%E4%B8%8E%E5%8A%9F%E8%83%BD%E6%96%87%E6%A1%A3.md)

## 作者 ✒

以下人名依照对于各项的参与之序排布。

### 项目策划

**金羿 Eilles**、**玉衡Alioth Alioth**

### 软件开发

**金羿 Eilles**、**玉衡Alioth Alioth**、**鱼旧梦 ElapsingDreams**

### 资源素材

**Charlie_Ping “查理平”**、**偷吃不是Touch Touch**、**金羿 Eilles**



## 致谢 🙏

本致谢列表按照其提交的内容生效之时间依次排序。

-   感谢 **昀梦**\<QQ1515399885\> 找出指令生成错误 bug 并指正
-   感谢由 **Charlie_Ping “查理平”** 带来的 BDX 文件转换参考，以及 MIDI-我的世界对应乐器 参考表格
-   感谢由 **[CMA_2401PT](https://github.com/CMA2401PT)** 为我们的软件开发的一些方面进行指导，同时我们参考了他的 BDXworkshop 作为 BDX 结构编辑的参考
-   感谢由 **[Dislink Sforza](https://github.com/Dislink) “断联·斯福尔扎”**\<QQ1600515314\> 的[网页版转换器](https://dislink.github.io/midi2bdx/)给我们的开发与更新带来巨大的压力和动力，让我们在原本一骑绝尘的摸鱼道路上转向开发。
-   感谢 **Mono**\<QQ738893087\> 反馈安装时的问题，辅助我们找到了视窗操作系统下的兼容性问题；感谢其反馈延迟播放器出现的重大问题，让我们得以修改全部延迟播放错误；尤其感谢他对于我们的软件的大力宣传
-   感谢 **Ammelia “艾米利亚”**\<QQ2838334637\> 敦促我们进行新的功能开发，并为新功能提出了非常优秀的大量建议，以及提供的 BDX 导入测试支持，为我们的新结构生成算法提供了大量的实际理论支持
-   感谢 **[神羽 “SnowyKami”](https://www.sfkm.me/)** 对我们项目的支持与宣传，非常感谢他为我们提供的服务器！
-   感谢 **指令师\_苦力怕 playjuice123**\<QQ240667197\> 为我们的程序找出错误，并提醒我们修复一个一直存在的大 bug。
-   感谢 **雷霆**\<QQ3555268519\> 用他那令所有开发者都大为光火的操作方法为我们的程序找出错误，并提醒修复 bug。
-   感谢 **小埋**\<QQ2039310975\> 反馈附加包生成时缺少描述和标题的问题。
-   <table><tr><td>感谢 **油炸**&lt;QQ2836146704&gt;  激励我们不断开发新的内容。</td><td><img height="50" src="https://foruda.gitee.com/images/1695478907647543027/08ea9909_9911226.jpeg"></td></tr></table>
-   感谢 **雨**\<QQ237667809\> 反馈在新版本的指令格式下，计分板播放器的附加包无法播放的问题。
-   感谢 **梦幻duang**\<QQ13753593\> 为我们提供 Java 1.12.2 版本命令格式参考。
-   感谢 [_Open Note Block Studio_](https://github.com/OpenNBS/NoteBlockStudio) 项目的开发为我们提供持续的追赶动力。
-   感谢 **启航与凡凡**\<QQ2777856500\> 找到 **音·创 v2** 版本音符序列文件解码的错误并指出修正方式。

>     感谢广大群友为此库提供的测试和建议等
>     若您对我们有所贡献但您的名字没有出现在此列表中，请联系我们！

## 联系 📞

若遇到库中的问题，欢迎在[此](https://gitee.com/TriM-Organization/Musicreater/issues/new)提出你的 issue。

如果需要与开发组进行交流，欢迎加入我们的[开发闲聊 Q 群](https://jq.qq.com/?_wv=1027&k=hpeRxrYr)。

亦可以联系我们组织的[邮箱](mailto:TriM-Organization@hotmail.com)！

## 待办 ⏰

当前未完成的任务和一些需要讨论的内容都收集在了[任务清单](./TO-DO.md)里，当然你也可以提[工单请求](https://gitee.com/TriM-Organization/Musicreater/issues/new)来进行讨论。

---

此项目并非一个官方 《我的世界》（_Minecraft_）项目

此项目不隶属或关联于 Mojang Studios 或 微软

此项目亦不隶属或关联于 网易

“Minecraft”是 Mojang Synergies AB 的商标，此项目中所有对于“我的世界”、“Minecraft”等相关称呼均为必要的介绍性使用

-   上文提及的 网易 公司，指代的是在中国大陆运营《我的世界：中国版》的上海网之易吾世界网络科技有限公司

NOT AN OFFICIAL MINECRAFT PRODUCT.

NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.

NOT APPROVED BY OR ASSOCIATED WITH NETEASE.
