Musicreater/demo_convert.py

152 lines
5.8 KiB
Python
Raw Normal View History

2022-06-07 23:43:14 +08:00
# -*- coding: utf-8 -*-
2022-06-08 01:50:14 +08:00
# 音·创 开发交流群 861684859
# Email EillesWan2006@163.com W-YI_DoctorYI@outlook.com EillesWan@outlook.com
# 版权所有 金羿("Eilles Wan") & 诸葛亮与八卦阵("bgArray") & 鸣凤鸽子("MingFengPigeon")
2023-01-02 14:28:25 +08:00
# 若需转载或借鉴 许可声明请查看仓库目录下的 Lisence.md
2022-06-08 01:50:14 +08:00
"""
· 库版 MIDI转换展示程序
Musicreater Package Version : Demo for Midi Conversion
2023-01-02 14:28:25 +08:00
Copyright 2023 all the developers of Musicreater
2022-06-08 01:50:14 +08:00
2023-01-02 14:28:25 +08:00
开源相关声明请见 ./Lisence.md
Terms & Conditions: ./Lisence.md
2022-06-08 01:50:14 +08:00
"""
from msctPkgver.main import *
2022-06-07 23:43:14 +08:00
import os
convertion = midiConvert()
while True:
midipath = input('请输入midi文件路径')
if os.path.exists(midipath):
break
else:
print('文件不存在,请重新输入')
outpath = input('请输入输出路径:')
2022-06-07 23:49:04 +08:00
if not os.path.exists(outpath):
os.makedirs(outpath)
2022-06-07 23:43:14 +08:00
while True:
try:
outFormat = int(input('请输入输出格式(0:mcpack|1:BDX结构)'))
if outFormat == 0:
isAutoReset = input('是否自动重置计分板(1|0)')
if isAutoReset != '':
isAutoReset = bool(int(isAutoReset))
while True:
isProgress = input('*进度条[本Demo不支持自定义]')
if isProgress != '':
if isProgress in ('1', 'True'):
isProgress = True
elif isProgress in ('0', 'False'):
isProgress = False
else:
isProgress = isProgress
else:
continue
break
2022-06-07 23:43:14 +08:00
sbname = input('请输入计分板名称:')
volume = input('请输入音量0-1')
if volume != '':
volume = float(volume)
speed = input('请输入速度倍率:')
if speed != '':
speed = float(speed)
elif outFormat == 1:
author = input('请输入作者:')
while True:
isProgress = input('*进度条[本Demo不支持自定义]')
if isProgress != '':
if isProgress in ('1', 'True'):
isProgress = True
elif isProgress in ('0', 'False'):
isProgress = False
else:
isProgress = isProgress
else:
continue
break
2022-06-07 23:43:14 +08:00
maxHeight = input('请输入指令结构最大生成高度:')
if maxHeight != '':
maxHeight = int(maxHeight)
sbname = input('请输入计分板名称:')
volume = input('请输入音量0-1')
if volume != '':
volume = float(volume)
speed = input('请输入速度倍率:')
if speed != '':
speed = float(speed)
isAutoReset = input('是否自动重置计分板(1|0)')
if isAutoReset != '':
isAutoReset = bool(int(isAutoReset))
break
2022-10-05 22:18:03 +08:00
except BaseException:
2022-06-07 23:43:14 +08:00
print('输入错误,请重新输入')
2023-01-02 14:28:25 +08:00
m = 1
'''采用的算法编号'''
2022-10-07 16:49:47 +08:00
2022-06-07 23:43:14 +08:00
if os.path.isdir(midipath):
for i in os.listdir(midipath):
if i.lower().endswith('.mid'):
2022-06-07 23:49:04 +08:00
print(f'正在操作{i}')
2022-10-05 22:18:03 +08:00
convertion.convert(midipath + '/' + i, outpath + '/' + i[:-4])
2022-06-07 23:43:14 +08:00
if outFormat == 0:
2023-01-02 14:28:25 +08:00
print(convertion.tomcpack(
m,
2022-06-19 01:07:07 +08:00
isAutoReset
if isAutoReset != ''
else bool(int(input('是否自动重置计分板(1|0)'))),
isProgress,
2022-06-07 23:43:14 +08:00
sbname if sbname != '' else input('请输入计分板名称:'),
volume if volume != '' else float(input('请输入音量0-1')),
speed if speed != '' else float(input('请输入速度倍率:')),
2023-01-02 14:28:25 +08:00
))
2022-06-07 23:43:14 +08:00
elif outFormat == 1:
2023-01-02 14:28:25 +08:00
print(convertion.toBDXfile(
m,
2022-06-07 23:43:14 +08:00
author if author != '' else input('请输入作者:'),
isProgress,
2022-06-07 23:43:14 +08:00
maxHeight if maxHeight != '' else int(input('请输入指令结构最大生成高度:')),
sbname if sbname != '' else input('请输入计分板名称:'),
volume if volume != '' else float(input('请输入音量0-1')),
speed if speed != '' else float(input('请输入速度倍率:')),
2022-06-19 01:07:07 +08:00
isAutoReset
if isAutoReset != ''
else bool(int(input('是否自动重置计分板(1|0)'))),
2023-01-02 14:28:25 +08:00
))
2022-06-07 23:43:14 +08:00
else:
convertion.convert(midipath, outpath)
if outFormat == 0:
2023-01-02 14:28:25 +08:00
print(convertion.tomcpack(
m,
2022-06-07 23:43:14 +08:00
isAutoReset if isAutoReset != '' else bool(int(input('是否自动重置计分板(1|0)'))),
isProgress,
2022-06-07 23:43:14 +08:00
sbname if sbname != '' else input('请输入计分板名称:'),
volume if volume != '' else float(input('请输入音量0-1')),
speed if speed != '' else float(input('请输入速度倍率:')),
2023-01-02 14:28:25 +08:00
))
2022-06-07 23:43:14 +08:00
elif outFormat == 1:
2023-01-02 14:28:25 +08:00
print(convertion.toBDXfile(
m,
2022-06-07 23:43:14 +08:00
author if author != '' else input('请输入作者:'),
isProgress,
2022-06-07 23:43:14 +08:00
maxHeight if maxHeight != '' else int(input('请输入指令结构最大生成高度:')),
sbname if sbname != '' else input('请输入计分板名称:'),
volume if volume != '' else float(input('请输入音量0-1')),
speed if speed != '' else float(input('请输入速度倍率:')),
isAutoReset if isAutoReset != '' else bool(int(input('是否自动重置计分板(1|0)'))),
2023-01-02 14:28:25 +08:00
))