mirror of
https://github.com/TriM-Organization/Musicreater.git
synced 2025-09-24 05:16:34 +00:00
更新了内部数据格式文档,修复部分bug
This commit is contained in:
@ -52,55 +52,128 @@ functions.py中会调取./addon/目录下的全部功能文件,这些功能文
|
||||
|
||||
- 变量
|
||||
|
||||
1. root
|
||||
窗口根,即一个Tk类,注意,外部调用请不要直接访问窗口根
|
||||
因为这可不一定是Tk的类,加载其他窗口组件的话就是其他的
|
||||
了。
|
||||
2. title
|
||||
1. `infoBar`
|
||||
|
||||
信息显示栏,一个字符串,用于显示一些信息。
|
||||
|
||||
|
||||
2. `title`
|
||||
|
||||
窗口标题,字符串
|
||||
3. menuWidgets
|
||||
对于窗口菜单的设定,其格式详见下方`setMenu`函数
|
||||
4. wordView
|
||||
|
||||
|
||||
3. `menuWidgets`
|
||||
|
||||
对于窗口菜单的设定,其格式如下:
|
||||
```python
|
||||
menuWidgets: dist = { # 菜单项目
|
||||
str"菜单名" : dict{
|
||||
str"选项名"|None : <function>选项函数
|
||||
},
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
注:
|
||||
`菜单名` : `str` 显示在菜单上的字符串
|
||||
`选项名` : `str` 显示在菜单选项上的字符串
|
||||
`选项函数` : `function` 菜单调取的函数(无返回值,无入参)
|
||||
当 `选项名` 的布尔值判定为 `False` 的时候,无论 `选项函数` 为何,皆插入一段分割线,但 `选项函数` 不得为空
|
||||
|
||||
|
||||
4. `wordView`
|
||||
|
||||
显示在言论上的文字,字符串
|
||||
5. buttons
|
||||
|
||||
|
||||
5. `buttons`
|
||||
|
||||
快捷功能按钮的列表,列表的元素为字典,字典的键是按钮的名称,值为一个元组,元组中含有两个元素,其中元组的第1个元素为按钮图标,是一个图片的路径;第2个元素为执行的函数,其值应当是一个函数对象。
|
||||
|
||||
```python
|
||||
button: list = [ # 操作按钮部分
|
||||
dict = {
|
||||
按钮名称 : tuple(按钮图标,执行函数)
|
||||
dict{
|
||||
str"按钮名称" : tuple(
|
||||
按钮图标,
|
||||
执行函数
|
||||
)
|
||||
},
|
||||
...
|
||||
],
|
||||
```
|
||||
6. settingBox
|
||||
|
||||
|
||||
6. `settingBox`
|
||||
|
||||
设置框,用于设置音乐的基本属性,例如词作者,曲作者等,设置格式如下:
|
||||
|
||||
```python
|
||||
settingbox: list = [ #设置部分显示的字样及其对应的设置函数
|
||||
(
|
||||
tuple(
|
||||
设置名称:str,
|
||||
值类型:tuple,
|
||||
显示内容:str,
|
||||
设置操作函数:<function>,
|
||||
)
|
||||
),
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
其中,值类型可以是如下几个项
|
||||
1. `('str',)` 字符串类型,使用文本框输入数据
|
||||
2. `('bool',)` 布尔类型,使用复选框输入数据
|
||||
3. `('num',最小值:int,最大值:int,步长:int = 1)` 数值类型,使用数值滑动条输入数据
|
||||
3. `('num',最小值:float,最大值:float,步长:float = 1)` 数值类型,使用数值滑动条输入数据
|
||||
4. `('list',列表项:list)` 单选类型,即列表中多选一,使用单选框输入数据
|
||||
|
||||
其中,值操作函数需要有一个参数,用于传递用户提供的设置值。
|
||||
|
||||
|
||||
7. `notemap`
|
||||
|
||||
音符数据表,用于存储曲谱信息,存储格式如下
|
||||
```python
|
||||
notemap: list = [ # 音轨列表
|
||||
dict{ # 单个音轨
|
||||
'instrument' : str"乐器",
|
||||
'velocity' : int 响度,
|
||||
# 这里理论上需要写一个小节多少个X分音符
|
||||
# 以及小节里的都是几分音符
|
||||
# 但是这个留给以后来支持
|
||||
int 小节编号 : [ # 一个小节
|
||||
tuple( # 一个音符
|
||||
时间 : int,
|
||||
持续 : int,
|
||||
乐器 : str,
|
||||
采样 : float,
|
||||
响度 : int,
|
||||
),
|
||||
...
|
||||
],
|
||||
...
|
||||
},
|
||||
...
|
||||
]
|
||||
```
|
||||
|
||||
其中,对于每个音符:
|
||||
1. 时间 单位:帧 当前音符开始时,距离当前小节开始所经过的帧数
|
||||
2. 持续 单位:帧 当前音符持续的帧数
|
||||
3. 乐器 当前音符使用的乐器,需要在乐器列表中有所注册
|
||||
4. 采样 当前音符在MC的采样音高(不含打击乐器)
|
||||
5. 响度 单位:格的-1次方 音符播放源距离播放者的距离的倒数
|
||||
|
||||
|
||||
- 函数
|
||||
|
||||
1. `setMenu`对菜单的基础设定
|
||||
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ python
|
||||
```python
|
||||
{
|
||||
菜单名 : {
|
||||
选项名 : 选项函数
|
||||
}
|
||||
}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
```
|
||||
|
||||
注:
|
||||
`菜单名` : `str` 显示在菜单上的字符串
|
||||
@ -155,13 +228,16 @@ functions.py中会调取./addon/目录下的全部功能文件,这些功能文
|
||||
|
||||
|
||||
|
||||
# 这里是全局设置
|
||||
'name' : str, #项目名,即包名
|
||||
'title': str, #音乐名称
|
||||
'repeation': bool, #是否开启重复播放
|
||||
'player_selection': str, #玩家选择器,用于选择播放的的玩家
|
||||
# 下面是音轨独立设置
|
||||
'track_name': str, #此音轨的名字
|
||||
'track_sbname': str, #此音轨所使用的计分板
|
||||
- 变量
|
||||
使用类中的变量可以对类中的内容进行实时修改
|
||||
#### ???
|
||||
|
||||
全曲的设置应该如下:
|
||||
```python
|
||||
标题 : str = '无名'
|
||||
副标题 : str = ''
|
||||
作曲 : str = '佚名'
|
||||
作词 : str = ''
|
||||
歌曲版权信息 : str = ''
|
||||
# bpm 暂时不需要
|
||||
|
||||
|
||||
```
|
Reference in New Issue
Block a user