parse_event(event_type, f.read(1)) counter += 1 last_event = event_type # print(counter) if counter == len_of_track: break 参考资料: Outline of the Standard MIDI File Structure (英文),对 midi 文件的结构进行了解释 The Midi File Format (英文),另一篇比较好的说明文章 Standard MIDI-Fil...
1.使用geopandas读取: df = geopandas.read_file(path, encoding='UTF-8') gdf = geopandas.GeoDataFrame(df, geometry='geometry', crs='+init=epsg:4326') 此方法简单。但是缺点较为明显,当文件较大时,会比较吃内存。 2.使用fiona读取: 下面这个方法直接适应fiona去读取mid/mif,此方法读取速度与1相同。...
importmidiimportpydub# 读取midi文件pattern=midi.read_midifile("input.mid")# 将midi文件转换为音频流audio_stream=pattern.make_audio()# 保存音频流为wav文件audio_stream.export("output.wav",format="wav") 在上面的示例代码中,我们使用了python-midi库来读取midi文件,并使用pydub库将midi文件转换为音频流。
这里只是第一步,把midi文件中的音符摘出来,变成Python中的二维数组; 以后还有很多的路要走呀... 以后的事以后再说, 目前讲一下如何把midi文件中的音符,变成Python中对应的二维数组(也可以叫做二维序列) 先粘贴一下代码: defmidi_read():mid=mido.MidiFile("DY_kanong.mid")# 返回midi对象 hang=0# 行 lie...
4.保存MidiFile对象 makeMidi.py,执行一遍就能获取到我们生成的new_song.midi文件 (2) 解析这个MIdi文件 然后就是读取这个midi,mido库同样给出了示例,逻辑很简单就是打印出这个midi文件每一个音轨track的信息 最后我们看一下我们打出的日志,我把解析的脚本命名为readMidi.py,执行后可以看到我们刚才输入的信息,在...
importmidiimportpydub# 读取midi文件pattern=midi.read_midifile("input.mid")# 将midi文件转换为音频流audio_stream=pattern.make_audio()# 保存音频流为wav文件audio_stream.export("output.wav",format="wav") 在上面的示例代码中,我们使用了python-midi库来读取midi文件,并使用pydub库将midi文件转换为音频流。
def midi_read(): mid=mido.MidiFile("DY_kanong.mid") # 返回midi对象 hang=0 # 行 lie=0 # 列 note_list_in=[] # 先初步建立一个序列,用于存储一行音符数据。 note_list_ex=[] # 先初步建立一个序列,用于存储整个音符数据。 # 存储时间的序列 time_list=[] action_last=0 # 上轮动作状态,...
MIDI文件处理:MIDI文件包含音符和乐器信息,可以使用mido等库解析和生成MIDI文件,进而控制音乐生成的参数和过程。 示例:生成简单的音乐 以下是一个使用numpy生成简单正弦波的示例,并将其保存为WAV文件: importnumpyasnpimportscipy.io.wavfileaswavfile# 生成正弦波信号duration=5# 时长为5秒sampling_freq=44100# 采样频...
{}'.format(i,track.name))passed_time=0formsgintrack:ab_time=mido.tick2second(msg.time,mid.ticks_per_beat,tempo)# real_time就是每一个事件在整个midi文件中的真实时间位置real_time=ab_time+passed_timepassed_time+=ab_timeifmsg.type=="note_on":print(msg," read time="+str(round(real_...
midifile = "test.mid" events = fluidsynth.rawmidi.read_midifile(midifile) #将MIDI文件转换为Python代码 pystr = fluidsynth.rawmidi.make_pystr(events) exec(pystr) fs.delete() 这段代码首先创建了一个Synth对象,并通过start()方法启动了FluidSynth的音频设备驱动。然后通过rawmidi.read_midifile()方法读...