mirror of
https://github.com/TriM-Organization/Musicreater.git
synced 2024-11-13 10:57:43 +08:00
优化生成结构
This commit is contained in:
parent
76eff25a1d
commit
29380d4151
@ -203,7 +203,7 @@
|
|||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
|
||||||
Copyright 2022 TriM-Organization 金羿("Eilles Wan") & 诸葛亮与八卦阵("bgArray") & all the developers of Musicreater
|
Copyright 2023 TriM-Organization 金羿("Eilles Wan") & 诸葛亮与八卦阵("bgArray") & all the developers of Musicreater
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -17,8 +17,8 @@ Terms & Conditions: License.md in the root directory
|
|||||||
# 若需转载或借鉴 许可声明请查看仓库目录下的 License.md
|
# 若需转载或借鉴 许可声明请查看仓库目录下的 License.md
|
||||||
|
|
||||||
|
|
||||||
__version__ = "1.5.0"
|
__version__ = "1.5.1"
|
||||||
__vername__ = "修改附加包插件的调用方式,新增播放终止函数,文档内容增强"
|
__vername__ = "优化生成结构,提高生成效率,完善版权说明"
|
||||||
__author__ = (
|
__author__ = (
|
||||||
("金羿", "Eilles Wan"),
|
("金羿", "Eilles Wan"),
|
||||||
("诸葛亮与八卦阵", "bgArray"),
|
("诸葛亮与八卦阵", "bgArray"),
|
||||||
|
@ -603,7 +603,7 @@ class MidiConvert:
|
|||||||
speed: float = 1.0,
|
speed: float = 1.0,
|
||||||
) -> Tuple[List[List[SingleCommand]], int, int]:
|
) -> Tuple[List[List[SingleCommand]], int, int]:
|
||||||
"""
|
"""
|
||||||
使用金羿的转换思路,将midi转换为我的世界命令列表
|
将midi转换为我的世界命令列表
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
@ -655,6 +655,9 @@ class MidiConvert:
|
|||||||
score_now = round(msg[-1] / float(speed) / 50)
|
score_now = round(msg[-1] / float(speed) / 50)
|
||||||
maxScore = max(maxScore, score_now)
|
maxScore = max(maxScore, score_now)
|
||||||
mc_pitch = "" if SpecialBits else 2 ** ((msg[1] - 60 - _X) / 12)
|
mc_pitch = "" if SpecialBits else 2 ** ((msg[1] - 60 - _X) / 12)
|
||||||
|
mc_distance_volume = 128 / max_volume / msg[2] + (
|
||||||
|
1 if SpecialBits else -1
|
||||||
|
)
|
||||||
|
|
||||||
nowTrack.append(
|
nowTrack.append(
|
||||||
SingleCommand(
|
SingleCommand(
|
||||||
@ -666,7 +669,10 @@ class MidiConvert:
|
|||||||
.replace(")", r"}")
|
.replace(")", r"}")
|
||||||
)
|
)
|
||||||
+ "playsound {} @s ^ ^ ^{} {} {}".format(
|
+ "playsound {} @s ^ ^ ^{} {} {}".format(
|
||||||
soundID, 1 / max_volume - 1, msg[2] / 128, mc_pitch
|
soundID,
|
||||||
|
mc_distance_volume,
|
||||||
|
msg[2] / 128,
|
||||||
|
mc_pitch,
|
||||||
),
|
),
|
||||||
annotation="在{}播放{}%的{}音".format(
|
annotation="在{}播放{}%的{}音".format(
|
||||||
mctick2timestr(score_now),
|
mctick2timestr(score_now),
|
||||||
@ -694,7 +700,7 @@ class MidiConvert:
|
|||||||
player_selector: str = "@a",
|
player_selector: str = "@a",
|
||||||
) -> Tuple[List[SingleCommand], int, int]:
|
) -> Tuple[List[SingleCommand], int, int]:
|
||||||
"""
|
"""
|
||||||
使用金羿的转换思路,将midi转换为我的世界命令列表,并输出每个音符之后的延迟
|
将midi转换为我的世界命令列表,并输出每个音符之后的延迟
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
@ -744,25 +750,29 @@ class MidiConvert:
|
|||||||
)
|
)
|
||||||
|
|
||||||
delaytime_now = round(msg[-1] / float(speed) / 50)
|
delaytime_now = round(msg[-1] / float(speed) / 50)
|
||||||
|
mc_pitch = "" if SpecialBits else 2 ** ((msg[1] - 60 - _X) / 12)
|
||||||
|
mc_distance_volume = 128 / max_volume / msg[2] + (
|
||||||
|
1 if SpecialBits else -1
|
||||||
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
tracks[delaytime_now].append(
|
tracks[delaytime_now].append(
|
||||||
self.execute_cmd_head.format(player_selector)
|
self.execute_cmd_head.format(player_selector)
|
||||||
+ f"playsound {soundID} @s ^ ^ ^{128 / max_volume / msg[2] - 1} {msg[2] / 128} "
|
+ "playsound {} @s ^ ^ ^{} {} {}".format(
|
||||||
+ (
|
soundID,
|
||||||
""
|
mc_distance_volume,
|
||||||
if SpecialBits
|
msg[2] / 128,
|
||||||
else f"{2 ** ((msg[1] - 60 - _X) / 12)}"
|
mc_pitch,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
tracks[delaytime_now] = [
|
tracks[delaytime_now] = [
|
||||||
self.execute_cmd_head.format(player_selector)
|
self.execute_cmd_head.format(player_selector)
|
||||||
+ f"playsound {soundID} @s ^ ^ ^{128 / max_volume / msg[2] - 1} {msg[2] / 128} "
|
+ "playsound {} @s ^ ^ ^{} {} {}".format(
|
||||||
+ (
|
soundID,
|
||||||
""
|
mc_distance_volume,
|
||||||
if SpecialBits
|
msg[2] / 128,
|
||||||
else f"{2 ** ((msg[1] - 60 - _X) / 12)}"
|
mc_pitch,
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -351,23 +351,23 @@ def commands_to_redstone_delay_structure(
|
|||||||
|
|
||||||
command_actually_length = sum([int(bool(cmd.delay)) for cmd in commands])
|
command_actually_length = sum([int(bool(cmd.delay)) for cmd in commands])
|
||||||
|
|
||||||
a = 1
|
# a = 1
|
||||||
for cmd in commands:
|
# for cmd in commands:
|
||||||
# print("\r 正在进行处理:",end="")
|
# # print("\r 正在进行处理:",end="")
|
||||||
if cmd.delay > 2:
|
# if cmd.delay > 2:
|
||||||
a = 1
|
# a = 1
|
||||||
else:
|
# else:
|
||||||
a += 1
|
# a += 1
|
||||||
|
|
||||||
struct = Structure(
|
struct = Structure(
|
||||||
size=(
|
size=(
|
||||||
round(delay_length / 2 + command_actually_length)
|
round(delay_length / 2 + command_actually_length)
|
||||||
if extensioon_direction == x
|
if extensioon_direction == x
|
||||||
else a,
|
else max_multicmd_length,
|
||||||
3,
|
3,
|
||||||
round(delay_length / 2 + command_actually_length)
|
round(delay_length / 2 + command_actually_length)
|
||||||
if extensioon_direction == z
|
if extensioon_direction == z
|
||||||
else a,
|
else max_multicmd_length,
|
||||||
),
|
),
|
||||||
fill=Block("minecraft", "air", compability_version=compability_version_),
|
fill=Block("minecraft", "air", compability_version=compability_version_),
|
||||||
compability_version=compability_version_,
|
compability_version=compability_version_,
|
||||||
|
@ -106,7 +106,7 @@ else:
|
|||||||
|
|
||||||
|
|
||||||
print(f"正在处理 {midi_path} :")
|
print(f"正在处理 {midi_path} :")
|
||||||
cvt_mid = Musicreater.MidiConvert.from_midi_file(midi_path, old_exe_format=True)
|
cvt_mid = Musicreater.MidiConvert.from_midi_file(midi_path, old_exe_format=False)
|
||||||
cvt_cfg = ConvertConfig(out_path, *prompts[:3])
|
cvt_cfg = ConvertConfig(out_path, *prompts[:3])
|
||||||
|
|
||||||
if playerFormat == 1:
|
if playerFormat == 1:
|
||||||
|
14
resources/音乐测试片段版权声明.txt
Normal file
14
resources/音乐测试片段版权声明.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
音乐谱面文件
|
||||||
|
|
||||||
|
测试片段.mid、测试片段.mscz
|
||||||
|
|
||||||
|
皆系 音·创 库所用之连带软件
|
||||||
|
禁止在 音·创 库以外传播
|
||||||
|
不允许独立发行、独立副本
|
||||||
|
不允许未经允许的二次创作
|
||||||
|
不允许脱离于 音·创 独立存在
|
||||||
|
不得随任何其他非 音·创 软件连带发布
|
||||||
|
不得用于商业用途
|
||||||
|
若 音·创 库被用于商业用途,应当将其剔除
|
||||||
|
|
||||||
|
版权所有 © 2023 诸葛亮与八卦阵
|
Loading…
Reference in New Issue
Block a user