From ae83f9c21eccc7bf3259a78b04c7bf44faa14daa Mon Sep 17 00:00:00 2001 From: EillesWan Date: Tue, 5 Apr 2022 00:55:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86=E5=86=85=E9=83=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=A0=BC=E5=BC=8F=E6=96=87=E6=A1=A3=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Musicreater.New.py | 5 +- README.md | 4 +- README_EN.md | 25 ---- msctLib/__pycache__/display.cpython-38.pyc | Bin 8236 -> 8261 bytes msctLib/__pycache__/log.cpython-38.pyc | Bin 1183 -> 1184 bytes msctLib/display.py | 25 ++-- msctLib/开发说明兼指南.md | 130 ++++++++++++++---- .../__pycache__/bugReporter.cpython-38.pyc | Bin 4422 -> 4430 bytes msctspt/bugReporter.py | 4 +- resources/MSCT Dev Log.txt | 31 ++--- 10 files changed, 137 insertions(+), 87 deletions(-) diff --git a/Musicreater.New.py b/Musicreater.New.py index 2420ed4..ec75b8e 100644 --- a/Musicreater.New.py +++ b/Musicreater.New.py @@ -71,7 +71,7 @@ hb = r''' __ __ def __main__(): - import datetime,time,random,os,sys + import datetime,time,random,os,sys,zhdate if datetime.date.today().month == 4 and datetime.date.today().day == 3: if sys.platform == 'win32': os.system('color 4e') @@ -80,6 +80,9 @@ def __main__(): print(hb[i], end='', flush=True) time.sleep(random.random() * 0.001) input("金羿 生日快乐!") + elif '三月初五' in zhdate.ZhDate.today().chinese(): + input('缅怀先祖 祭祀忠勇 勿忘国耻 振兴中华') + else: disp() diff --git a/README.md b/README.md index a71c811..f0065dc 100644 --- a/README.md +++ b/README.md @@ -137,8 +137,8 @@ python3 Musicreater.py * - [ ] 4.修改UI界面使之适应当前功能 * - [ ] 5.支持自动给音符盒绑定更多的音色 * - [ ] 6.可以由.schematic文件导入地图,亦可反向处理 -* - [ ] 7.制作软件下载器使用户更直观地操作 -* - [x] 8.支持自定义创建websockeet服务器播放音乐(感谢由 Fuckcraft “鸣凤鸽子”等 带来的我的世界websocket服务器功能) +* - [x] 7.制作软件下载器使用户更直观地操作 +* - [x] 8.支持自定义创建websockeet服务器播放音乐 * - [ ] 9.支持使用红石播放音乐 * - [ ] 10.支持采用延时的播放器 * - [ ] 11.支持使用bdx导出结构 diff --git a/README_EN.md b/README_EN.md index 1447bc4..a6c82a3 100644 --- a/README_EN.md +++ b/README_EN.md @@ -128,31 +128,6 @@ Musicreater - > function (package) - > the following four new functions 1. QQ 4740437765 -## TO-DO - -* - [x] 可以使用由神羽提供的音乐资源包 -* - [x] Language Support -* - [x] .bdx encode support -* - [ ] 1.可以导出自定义的结构文件用于存储要导入地图中的结构 -* - [ ] 2.progress bar -* - [ ] 3.可以将音乐写入音符盒(红乐) -* - [ ] 4.修改UI界面使之适应当前功能 -* - [ ] 5.支持自动给音符盒绑定更多的音色 -* - [ ] 6.可以由.schematic文件导入地图,亦可反向处理 -* - [ ] 7.制作软件下载器使用户更直观地操作 -* - [x] 8.支持自定义创建websockeet服务器播放音乐(感谢由 Fuckcraft “鸣凤鸽子”等 带来的我的世界websocket服务器功能) -* - [ ] 9.支持使用红石播放音乐 -* - [ ] 10.支持采用延时的播放器 -* - [ ] 11.支持使用bdx导出结构 -* - [ ] 12.支持采用tp的方法播放 -* - [ ] 13.支持识别曲谱(简谱)图片解析音乐 -* - [ ] 14.支持使用瀑布流的方式播放音乐 -* - [ ] 15.支持读入Everyone Piano的曲谱文件(.eop) -* - [ ] 16.支持读入Musescore的通用曲谱文件,即musicXML(.mscz、.mscx) -* - [ ] 17.支持自动搜寻地图目录位置(网易&微软) -* - [ ] 18.支持读入JPword曲谱文件(.jpd) -* - [ ] 19.新的UI设计,以及UI主题文件 -* - [ ] 20.以小节为单位做音符播放时间对标 diff --git a/msctLib/__pycache__/display.cpython-38.pyc b/msctLib/__pycache__/display.cpython-38.pyc index c8ad2c6bd88d7a1caeaa6108a611fc43c75681f0..9fadcc98dbd9cabd71338685cd6be11132ef16a6 100644 GIT binary patch delta 1329 zcmZ8gOHUI~6z-iF=mR=FP@$EFT1AIK1?yWepaNE)f{&Oq(Q(=i?a+1x&rBnjCag?M zd@Q&N7i=_fW1&d}AK=1;6BjOAn3(tj+~_@b3^nbf-#zy`&wKAVug5-)$v48` zkdOV|tY6Na7M>(c$Aw*k=yi91kZ=FO^*G{a<%?B*ey(P&)w*WiQM4C za!y}z49j#y+W|%Lf()a<2pSN*xr&2~eo#Nz{+NuOKntm&n^lFtX|_>h*pFP`Dm(rx zge7q`>G;BL!|metD;qZ`{tA_>McIRn1+C;EH)AW6~F!F@E5J zICf*RxcqxIq?%pRjQdu9)Nx5{J%-wX_$HIp68FP z;%?EG4QD)SRUJ{Pr}v|yWUl@``dc`{$E*|0mk{nE00N(@MhNbW=?Cfep4iR;niLTX1g~1! z-P<=*#(fDPiNGsvglSY_F>Ra{dt(Ps$^=xkVrZtS-WL;z!^$35MAq+=43pgtoTVGR zWn$BwzM6Ax7i?ozSL0%5F|f2~F8g8j`-Ge+YR#EmNjoNDg3*=}cL-W5BGs0%>=*dtU%yZac`y0fG~=15#bWTIDl*^tbPKC%K(uIUR6t_Vri(1 z^uL7-Yb=q#?%#rsA4T4EVwY5*xM2y!;!2V_+5XACdf)%a^bBwxn8V>EK^AZfdxJ2C z?Fr#df?FdwV2O8O!R+8oi~a6WYT{Uxuy#$=h=qKIdC28%>qQKQ<+6Qq{jX6teQ+rh3Oo+_`-x6tF#_x z{F+>4`>w#mHJl%3^I(Ih23etZ(8IUwHd?$7$KUoKY;^cxG+Z@c{%QwJcM`M@Cz zyAo!H_2)MEsYStUh;dCz(tb28dUh?T7-B+Q)D1DIW_0RB8GhCA+EToU6fX&#M8J*b z+ej6(if76#{!D7YaT@-an*b6K#WErgf$h4zWG4UF{Y&WQ*Pp*34Mo-v?j!IQSk&Zl z*iQ%h-PCq!2}AB7EF%;a#0Hx^zEzyBAmFMBODM_|TT6qtoozL@b)XfIqS2HZOGl%R z&3=E6+(K1kt@^5(hFztjY`-~4C>!$l%5>DtFx9hAGmR!LlA;J*VxK$>HKoU{cYyjr~ diff --git a/msctLib/__pycache__/log.cpython-38.pyc b/msctLib/__pycache__/log.cpython-38.pyc index 341344e0df9db74f8746c55bd37c020c20c170e8..a7e75710150820f119afce0e168dd44bbe954b8c 100644 GIT binary patch delta 35 pcmbQwxqy>5l$V!_0SHVNc_wjgF^nU8rQBLIy}2$TQ- delta 34 ocmZ3$IiHg^l$V!_0SJ2MdnU1M None: '''设置窗口标题''' - self.root.title = self.title + self.__root.title = self.title if self.debug: log(f"设置窗口标题{self.title}") def setGeometry(self,geometry:str = '0x0') -> None: '''设置窗口大小''' - self.root.geometry(geometry) + self.__root.geometry(geometry) if self.debug: log(f"设置窗口大小{geometry}") @@ -132,17 +139,17 @@ class disp: if not self.debug: try: if default: - self.root.iconbitmap(bitmap, default) + self.__root.iconbitmap(bitmap, default) log(f'设置图标为{bitmap},默认为{default}') else: - self.root.iconbitmap(bitmap) + self.__root.iconbitmap(bitmap) log(f'设置图标为{bitmap}') return True except Exception as e: log(str(e), 'ERROR') return False else: - self.root.iconbitmap(bitmap, default) + self.__root.iconbitmap(bitmap, default) return def setMenu(self) -> None: @@ -158,7 +165,7 @@ class disp: log('无法读取菜单信息', 'WARRING') # 如果不是空参数则新建菜单 self.RootMenu = {} - self.mainMenuBar = tk.Menu(self.root) + self.mainMenuBar = tk.Menu(self.__root) for menuName, menuCmd in self.menuWidgets.items(): # 取得一个菜单名和一堆菜单函数及其显示名称 menu = tk.Menu(self.mainMenuBar, tearoff=0) @@ -169,7 +176,7 @@ class disp: menu.add_separator() self.mainMenuBar.add_cascade(label=menuName, menu=menu) self.RootMenu[menuName] = menu - self.root.config(menu=self.mainMenuBar) + self.__root.config(menu=self.mainMenuBar) def addMenu(self, menuRoot: str = '', menuLabel: str = '', menuCommand=None): '''增加一个菜单项 @@ -209,7 +216,7 @@ class disp: :信息显示版 InfoBar ''' self._wordviewBar = tk.Label( - self.root, bg='white', fg='black', text=self.wordView, font=(fontPattern[0], 30) + self.__root, bg='white', fg='black', text=self.wordView, font=(fontPattern[0], 30) ) self.setWordView(self.wordView) diff --git a/msctLib/开发说明兼指南.md b/msctLib/开发说明兼指南.md index b172873..5c51d48 100644 --- a/msctLib/开发说明兼指南.md +++ b/msctLib/开发说明兼指南.md @@ -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 : 选项函数 + }, + ... + } + ``` + + 注: + `菜单名` : `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, 设置操作函数:, - ) + ), + ... ] ``` + 其中,值类型可以是如下几个项 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 暂时不需要 + + +``` \ No newline at end of file diff --git a/msctspt/__pycache__/bugReporter.cpython-38.pyc b/msctspt/__pycache__/bugReporter.cpython-38.pyc index 4820a207914f8d0b89d3ffafb44c9c9765d1225b..cb5547d374e01c6edde3ebcd10d8e1a346a27f0f 100644 GIT binary patch delta 750 zcmZ9J&ubGw6vv&-W}ED8Y_!{Gf7sMij4QZpqtq}~*Rpk7uyOp-BK*iGV_4aHu1 z@+b&%^x)ZJ3HS$i@Tm6%LGTaJ_a>4A7v{6W_xmqZ;Ehj8=BIxr($WR>`*V&Rvi~(C7|1>_Z#sw^ci-;zyB7HM6rHEg{8tLnV zON6Bmz9 zVUs|<+UZ|+b`=wR0PP0n0CvIRF3v delta 723 zcmZ9J&ubGw6vv&(W|QnD^oNC{v9_AD)~&b=ZPms21N34G4T5?}Pn%>+hVCZu&4!{E z|AK-rM-QGoN|N3_Skq|0x~69-OR(rAY+(Ef z;wqvzMQQxOI!UFMbwG{(WLo6yram@TSRC@mk9o}ecoZdk7(xPDn95I5Jr;Htz%>*) z{kSbgLq8gHVOs|vgTS6mJ4}+W-J9#Zii(s-Kv{z!>njViQ`35O{QPM%(;mp5x%x&0 z^*0bWjp=JT{d1Rhoi%sv4l;Dk-09Wfvi$Ar2RBh!MeHMH<>pkvSXl!b2wNjdEV`11 zvTV3r;>yqN*+rEF_G-jLB0TygUGw++ntYN!+75KN%0;{dA#f%>5- None: diff --git a/resources/MSCT Dev Log.txt b/resources/MSCT Dev Log.txt index cb0f94d..ed7f103 100644 --- a/resources/MSCT Dev Log.txt +++ b/resources/MSCT Dev Log.txt @@ -6,27 +6,6 @@ Copyright © W-YI 2022 本软件是金羿前作函数音创和世界音创的集合版本,同时增加了大量功能更新。 - To-Do -1.可以导出自定义的结构文件用于存储要导入地图中的结构 -2.进度条 -3.可以将音乐写入音符盒(红乐) -4.修改UI界面使之适应当前功能 -5.支持自动给音符盒绑定更多的音色 -6.可以由.schematic文件导入地图,亦可反向处理 -7.制作软件下载器使用户更直观地操作 -8.支持自定义创建websockeet服务器播放音乐(感谢由 Fuckcraft “鸣凤鸽子”等 带来的我的世界websocket服务器功能) -9.支持使用红石播放音乐 -10.支持采用延时的播放器 -11.支持使用bdx导出结构 -12.支持采用tp的方法播放 -13.支持识别曲谱(简谱)图片解析音乐 -14.支持使用瀑布流的方式播放音乐 -15.支持读入Everyone Piano的曲谱文件(.eop) -16.支持读入Musescore的通用曲谱文件,即musicXML(.mscz、.mscx) -17.支持自动搜寻地图目录位置(网易&微软) -18.支持读入JPword曲谱文件(.jpd) -19.新的UI设计,以及UI主题文件 -20.以小节为单位做音符播放时间对标 =============== 2022 年度挑战 @@ -53,6 +32,16 @@ Copyright © W-YI 2022 10.新增下载器,无需用户从源代码安装 + Delta 0.1.5 +2022 4 4 +0.新增金羿生日祝福 +1.修复诸多问题 +2.正在往0.2版本迭代更新 +3.预计半年之内可以发布新版本 +4.支持使用自动安装器下载安装 +5. + + Delta 0.1.5.2 2022 2 1 农历大年初一 0.程序图标完善