修复重大问题:延迟播放器中音符的延迟过长,感谢Mono

This commit is contained in:
EillesWan 2023-05-01 12:40:40 +08:00
parent 6fe8e41dfa
commit cb95c51a47
4 changed files with 208 additions and 198 deletions

5
.gitignore vendored
View File

@ -11,6 +11,11 @@
*.bdx *.bdx
*.json *.json
*.mcstructure *.mcstructure
/logs
/languages
/llc_cli.py
/utils
test.py
# Byte-compiled / optimized # Byte-compiled / optimized
__pycache__/ __pycache__/

View File

@ -19,6 +19,6 @@ Terms & Conditions: ../License.md
from .main import * from .main import *
__version__ = "0.5.0.2" __version__ = "0.5.1"
__all__ = [] __all__ = []
__author__ = (("金羿", "Eilles Wan"), ("诸葛亮与八卦阵", "bgArray"), ("鸣凤鸽子", "MingFengPigeon")) __author__ = (("金羿", "Eilles Wan"), ("诸葛亮与八卦阵", "bgArray"), ("鸣凤鸽子", "MingFengPigeon"))

View File

@ -260,7 +260,7 @@ class midiConvert:
try: try:
return percussion_instrument_list[instrumentID] return percussion_instrument_list[instrumentID]
except KeyError: except KeyError:
print("WARN", "无法使用打击乐器列表库或者使用了不存在的乐器打击乐器使用Dislink算法代替。{instrumentID}") print("WARN", f"无法使用打击乐器列表库或者使用了不存在的乐器打击乐器使用Dislink算法代替。{instrumentID}")
if instrumentID == 55: if instrumentID == 55:
return "note.cow_bell", 5 return "note.cow_bell", 5
elif instrumentID in [41, 43, 45]: elif instrumentID in [41, 43, 45]:
@ -1073,6 +1073,7 @@ class midiConvert:
results = [] results = []
all_ticks = list(tracks.keys()) all_ticks = list(tracks.keys())
all_ticks.sort()
for i in range(len(all_ticks)): for i in range(len(all_ticks)):
if i != 0: if i != 0:
@ -1233,6 +1234,7 @@ class midiConvert:
] ]
all_ticks = list(tracks.keys()) all_ticks = list(tracks.keys())
all_ticks.sort()
for i in range(len(all_ticks)): for i in range(len(all_ticks)):
for j in range(len(tracks[all_ticks[i]])): for j in range(len(tracks[all_ticks[i]])):
@ -1322,15 +1324,14 @@ class midiConvert:
if self.debug_mode: if self.debug_mode:
self.prt(f"TEMPO更改{tempo}(毫秒每拍)") self.prt(f"TEMPO更改{tempo}(毫秒每拍)")
else: else:
if self.debug_mode:
try: try:
if msg.channel > 15: if msg.channel > 15 and self.debug_mode:
raise ChannelOverFlowError(f"当前消息 {msg} 的通道超限(≤15)") raise ChannelOverFlowError(f"当前消息 {msg} 的通道超限(≤15)")
if not track_no in channels[msg.channel].keys():
channels[msg.channel][track_no] = []
except AttributeError: except AttributeError:
pass pass
if not track_no in channels[msg.channel].keys():
channels[msg.channel][track_no] = []
if msg.type == "program_change": if msg.type == "program_change":
channels[msg.channel][track_no].append( channels[msg.channel][track_no].append(
("PgmC", msg.program, microseconds) ("PgmC", msg.program, microseconds)
@ -1395,6 +1396,7 @@ class midiConvert:
else self.__Inst2soundID_withX(-1) else self.__Inst2soundID_withX(-1)
) )
score_now = round(msg[-1] / float(speed) / 50) score_now = round(msg[-1] / float(speed) / 50)
# print(score_now)
try: try:
tracks[score_now].append( tracks[score_now].append(
@ -1410,6 +1412,7 @@ class midiConvert:
] ]
all_ticks = list(tracks.keys()) all_ticks = list(tracks.keys())
all_ticks.sort()
results = [] results = []
for i in range(len(all_ticks)): for i in range(len(all_ticks)):
@ -1677,6 +1680,7 @@ class midiConvert:
(0, 0, 0), (0, 0, 0),
1, 1,
1, 1,
alwaysRun=False,
customName="显示进度条并加分", customName="显示进度条并加分",
), ),
) )
@ -1726,7 +1730,8 @@ class midiConvert:
r"scoreboard players reset {} {}".format(player, scb_name), r"scoreboard players reset {} {}".format(player, scb_name),
(0, 0, 0), (0, 0, 0),
1, 1,
1, 0,
alwaysRun=False,
customName="重置进度条计分板", customName="重置进度条计分板",
), ),
) )

View File

@ -89,7 +89,7 @@
- 感谢由 **[CMA_2401PT](https://github.com/CMA2401PT)** 为我们的软件开发的一些方面进行指导同时我们参考了他的BDXworkshop作为BDX结构编辑的参考 - 感谢由 **[CMA_2401PT](https://github.com/CMA2401PT)** 为我们的软件开发的一些方面进行指导同时我们参考了他的BDXworkshop作为BDX结构编辑的参考
- 感谢由 **[Dislink Sforza](https://github.com/Dislink) 断联·斯福尔扎**\<QQ1600515314\> 带来的midi音色解析以及转换指令的算法我们将其改编并应用同时感谢他的[网页版转换器](https://dislink.github.io/midi2bdx/)给我们的开发与更新带来巨大的压力和动力让我们在原本一骑绝尘的摸鱼道路上转向开发希望他能考上一个理想的大学 - 感谢由 **[Dislink Sforza](https://github.com/Dislink) 断联·斯福尔扎**\<QQ1600515314\> 带来的midi音色解析以及转换指令的算法我们将其改编并应用同时感谢他的[网页版转换器](https://dislink.github.io/midi2bdx/)给我们的开发与更新带来巨大的压力和动力让我们在原本一骑绝尘的摸鱼道路上转向开发希望他能考上一个理想的大学
- 感谢 **Touch 偷吃**\<QQ1793537164\> 提供的BDX导入测试支持并对程序的改进提供了丰富的意见同时也感谢他的不断尝试新的内容使我们的排错更进一步 - 感谢 **Touch 偷吃**\<QQ1793537164\> 提供的BDX导入测试支持并对程序的改进提供了丰富的意见同时也感谢他的不断尝试新的内容使我们的排错更进一步
- 感谢 **Mono**\<QQ738893087\> 反馈安装时的问题辅助我们找到了视窗操作系统下的兼容性问题 - 感谢 **Mono**\<QQ738893087\> 反馈安装时的问题辅助我们找到了视窗操作系统下的兼容性问题感谢其反馈延迟播放器出现的重大问题让我们得以修改全部延迟播放错误
- 感谢 **Ammelia 艾米利亚**\<QQ2838334637\> 敦促我们进行新的功能开发并为新功能提出了非常优秀的大量建议以及提供的BDX导入测试支持为我们的新结构生成算法提供了大量的实际理论支持 - 感谢 **Ammelia 艾米利亚**\<QQ2838334637\> 敦促我们进行新的功能开发并为新功能提出了非常优秀的大量建议以及提供的BDX导入测试支持为我们的新结构生成算法提供了大量的实际理论支持
- 感谢 **[神羽](https://gitee.com/snowykami) [SnowyKami](https://github.com/snowyfirefly)** 对我们项目的支持与宣传希望他能考的一所优秀的大学 - 感谢 **[神羽](https://gitee.com/snowykami) [SnowyKami](https://github.com/snowyfirefly)** 对我们项目的支持与宣传希望他能考的一所优秀的大学
- 感谢 **指令师_苦力怕 playjuice123**\<QQ240667197\>为我们的程序找出错误并提醒我们修复一个一直存在的大bug - 感谢 **指令师_苦力怕 playjuice123**\<QQ240667197\>为我们的程序找出错误并提醒我们修复一个一直存在的大bug