显示源文件修订记录反向链接回到顶部 Share via Share via... Twitter LinkedIn Facebook Teams最近更改Send via e-Mail打印Permalink × 目录 Uasset 转 Wav LRC制作器 使代码在树莓派Pico上执行 音乐裁剪时间计算 如无特殊说明,适用于Python 3.8以上版本 Uasset 转 Wav # 本程序用于提取在虚幻引擎商城购买的音效包,请按需修改,请勿随意传播提取结果 import os d1=r'D:\Unreal Projects\Rooftile\Content\8bit16bitSoundFX\SoundWav\\' # \\结尾 d2=r'D:\Unreal Projects\Rooftile\Content\8bit16bitSoundFX\wav\\' for n0 in os.listdir(d1): for n1 in os.listdir(d1+n0+'\\'): ua='-Audio.uasset' if len(n1)<len(ua) or n1[-len(ua):]!=ua: continue n2=n1[:-len(ua)]+'.wav' with open(d1+n0+'\\'+n1,'rb') as f1: with open(d2 +n2,'wb') as f2: c1=f1.read(); c2=c1[c1.find(b'WAVEfmt'):-4] f2.write(b'RIFF'+len(c2).to_bytes(4,'little')+c2) print('%s OK'%n2) print('-ENTER-');input() LRC制作器 txt="""あの曲がり角を片足に宙返り中華街 素敵なあなたに届けたい愛の小籠包 美味しいものを食べたシェシェ トキメキ胸にまでニーハオ""" # 按需修改这里 from time import time, sleep print('欢迎使用LRC制作器,请按Enter键继续') t0=time(); txt2="" print('请在3秒后按下播放按钮……'); sleep(1) print('请在2秒后按下播放按钮……'); sleep(1) print('请在1秒后按下播放按钮……'); sleep(1) for l in txt.splitlines(): print('[ : . ]'+l,end='') input(); t=time()-t0 l2='[%02d:%02d.%03d]'%(t//60,t%60,(t%1)*1000)+l print(l2); txt2+=l2+'\n' print('以下是LRC:'); print(txt2) print('以上是LRC;输入q,然后按Enter退出……') while(not input()): pass 使代码在树莓派Pico上执行 把下列代码保存成.py文件,然后执行: import sys, serial class pico(serial.Serial): def exec(self, str): self.write(("exec('''"+str.replace('\\','\\\\').replace('\n',r'\r').replace("'''",r"\'\'\'")+"''')\r\n").encode("utf8")) return b"".join(self.readlines()[1:-1]).decode(encoding="utf8").replace("Traceback (most", "Traceback of Pico (most")[:-2] piko=pico("COM3",115200,timeout=1) # comport/baudrate/timeout with open(__file__) as f: str=f.read(); print(piko.exec(str[str.find("#pi"+"co#"):])) piko.close(); sys.exit() #pico# # Following code run on Pico 小提示 ENOMEM 不一定是内存耗尽,可能是某项资源耗尽,譬如PIO的32*32位程序内存 音乐裁剪时间计算 print("输入BPM:"); bpm=input() print("输入固定一侧的开始/结束时间:"); a=input().split(":") a=(int(a[0])*3600+int(a[1])*60+float(a[2]))if len(a)==3 else (int(a[0])*60+float(a[1]))if len(a)==2 else float(a[0]) print(a) print("输入浮动一侧的开始/结束时间:"); b=input().split(":") b=(int(b[0])*3600+int(b[1])*60+float(b[2]))if len(b)==3 else (int(b[0])*60+float(b[1]))if len(b)==2 else float(b[0]) print(b) print("单拍时间长度:",c:=(60/float(bpm))) print("拍数:",(b-a)/c) print("取整后的拍数:",d:=round(float((b-a)/c))) print("取整后的浮动一侧的开始/结束时间:","%.5f"%(a+d*c)) zh/python_代码.txt 最后更改: 6月前由 milowork