PrettyMIDI 手把手教程:从解析到合成的完整路径

发布时间:2026/10/25 2:23:50

PrettyMIDI 手把手教程:从解析到合成的完整路径 PrettyMIDI 手把手教程从解析到合成的完整路径【免费下载链接】pretty-midiUtility functions for handling MIDI data in a nice/intuitive way.项目地址: https://gitcode.com/gh_mirrors/pr/pretty-midi拿到一份 .mid 文件想做和弦分析常常被事件流的写法劝退想造一段两小节的旋律又得对着 tick 和速度事件头疼。PrettyMIDI 是一个 Python MIDI 处理库把 MIDI 文件解析成可以直接读写、修改的 Python 对象面向音乐分析、教学演示和创意编程三类使用者。PrettyMIDI 的定位把 MIDI 事件流转成音符列表它做的事情很集中把 MIDI 底层的事件流翻译成以秒为单位的对象——一个 PrettyMIDI 实例装着一组乐器每个乐器装着一组音符每个音符有力度、音高、起止时间。底层解析交给 mido它负责时间域换算和数据结构设计让你写 Python 音乐编程时直接工作在秒这个维度上。做调性与节奏分析的研究者、演示音乐教学的老师、需要把 MIDI 转成音频的开发者都能省掉自己写解析器的功夫。三步写完你的第一首 MIDI第一步装包pip install pretty-midi第二步创建、第三步保存。下面这段代码跑通创建 C 大和弦并导出文件的完整链路import pretty_midi # 新建 MIDI 对象分辨率 220 tick/拍初始速度 120 BPM pm pretty_midi.PrettyMIDI(resolution220, initial_tempo120) piano pretty_midi.Instrument(program0) # program 0 是钢琴 pm.instruments.append(piano) # C 大和弦C4(60)、E4(64)、G4(67)持续 0.5 秒 piano.notes.extend( pretty_midi.Note(velocity100, pitchp, start0, end0.5) for p in (60, 64, 67) ) pm.write(output.mid)跑完就得到一个可播放的 output.mid用PrettyMIDI(output.mid)读回来即可继续分析。能力地图从解析到合成整个库的 API 基本都挂在PrettyMIDI和Instrument两个对象上能力关键函数一句话说明MIDI 文件解析与写出PrettyMIDI(file)、write()一行读入 .mid一行写回磁盘音符管理Instrument(program)、Note(velocity, pitch, start, end)按乐器组织音符时间单位为秒音高换算note_number_to_hz/hz_to_note_number、note_name_to_number/note_number_to_nameMIDI 音数、频率、C4 式音名自由互转乐器映射program_to_instrument_name程序号转成人能读的乐器名钢琴卷帘get_piano_roll(fs)128 音高 × 时间矩阵直接喂给绘图和弦特征提取get_chroma(fs)、get_pitch_class_histogram()12 维色度与音级直方图调性判定的代理指标节奏分析get_beats()、get_downbeats()拍点与强拍小节第一拍时刻时间轴编辑adjust_times(old_times, new_times)把旧时间重映射到新时间变速或对齐都用它音频合成synthesize(fs)、fluidsynth()内置正弦波或 FluidSynth 出真实音色两个真实场景画卷帘、出音频场景一钢琴卷帘可视化。卷帘是音乐可视化最直观的形式。get_piano_roll(fs100)按每秒 100 列采样返回 128 行的矩阵用 imshow 就能画出来pm pretty_midi.PrettyMIDI(example.mid) pr pm.get_piano_roll(fs100) import matplotlib.pyplot as plt plt.imshow(pr, aspectauto, originlower) plt.show()仓库示例里还有reverse_pianoroll.py用 CQT 频谱把音频反过来转成 MIDI思路值得参考。场景二MIDI 转音频。synthesize用正弦波合成音色简陋但零额外依赖fluidsynth走 FluidSynth 引擎音色真实很多需要 .sf2 音色库库本身自带 TimGM6mb.sf2开箱即可调用pm pretty_midi.PrettyMIDI(example.mid) audio pm.synthesize(fs44100) # 正弦波合成 audio pm.fluidsynth() # FluidSynth 合成音色更接近真实避坑与小贴士initial_tempo只在不传文件、全新创建时生效读入 .mid 后速度以文件内的速度事件为准。一次加多个音符用notes.extend(...)notes.append([...])会把列表塞成一个整体后续遍历会很难排查。fluidsynth依赖系统里的 FluidSynth 程序和 pyfluidsynth旧参数sf2_path从 0.2.11 起已弃用改由synthesizer参数传入 sf2 路径。Note的start/end单位是秒不是 tick——这是它和 mido 原始 API 最大的差别混用会把时间差出几个数量级。延伸学习官方文档全部类与换算函数的 API 参考示例代码节拍对齐、芯片音乐、和弦库等可运行的完整样例测试用例覆盖常见用法是学 API 的好参照下次拿到 MIDI 文件就用 PrettyMIDI 打开一次析出和弦、画张卷帘、导一段合成音频。需要更多用法时翻 docs/ 里的 API 清单即可库不大很容易摸透。【免费下载链接】pretty-midiUtility functions for handling MIDI data in a nice/intuitive way.项目地址: https://gitcode.com/gh_mirrors/pr/pretty-midi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/25 19:40:44

2026这6款神级降AI率平台大起底,一键让AIGC率直逼绝对安全线!

步入2026年,学术界的规则早已悄然改写。曾经的“降重焦虑”如今已沦为过去式,取而代之的是更严苛的“去AI痕迹”挑战。随着查AI系统的算法不断进化,高校对论文质量的审核标准也愈发严苛。单纯降低查重率早已无法满足现实需求,摆在…

2026/10/24 7:28:00

4 步把微博备份成 PDF:Speechless 免费导出上手指南

4 步把微博备份成 PDF:Speechless 免费导出上手指南 【免费下载链接】Speechless 把新浪微博的内容,导出成 PDF 文件进行备份的 Chrome Extension。 项目地址: https://gitcode.com/gh_mirrors/sp/Speechless 你 2016 年的旅行照只剩收藏夹里那张…

2026/10/25 10:58:44

2026亲测:专业降AIGC工具选它准没错

2026 年降 AIGC 工具已从“表面文字改写”进化为多维度智能优化系统,核心评测维度涵盖 AI 痕迹清除精准度、专业表达一致性、格式结构完整性、长段落逻辑流畅性、降重兼容性以及高校检测合规性。本次测评涵盖 5 款主流工具,测试内容覆盖中英文论文、全文…

2026/10/25 23:30:45

Java Swing高校教材管理系统实战指南

简介:这是一套面向高校计算机专业教学与课程设计实践的Java桌面应用系统,基于Swing图形界面与MySQL数据库开发,专为解决高校教材全流程管理需求而设计。系统覆盖出版社与教材类型维护、订购、入库、领用四大核心业务,并内置ISBN书…

2026/10/25 23:30:45

Matlab实现深度学习波前重建:从Shack-Hartmann光斑图到Zernike系数

简介:面向计算机、电子信息与数学类专业学生,这套基于深度学习和Shack-Hartmann波前传感器的Matlab仿真资源,提供了从传感器光斑检测到深度网络波前重建的完整实现方案。内容涵盖Shack-Hartmann传感器原理仿真、ResUNet深度学习模型演示、降噪…

2026/10/25 23:30:45

菜鸟驿站快递分发系统毕业设计:状态机、Spring Boot与避坑指南

简介:一套基于Java技术实现的菜鸟驿站快递分发管理系统,面向计算机专业毕业设计或课程设计人群,可用于快速搭建演示项目或作为二次开发基线。资源围绕用户下单、快件入库、取件、物流跟踪等典型业务场景,完整覆盖了需求分析、总体…

2026/10/25 23:30:45

FusionCompute 6.5实验手册:CNA/VRM部署与迁移运维

简介:FusionCompute实验手册1是华为HCIP-Cloud Computing V4.0认证培训的官方实验指导材料,面向备考该认证的学员,以及希望系统掌握华为服务器虚拟化平台FusionCompute运营与运维技能的工程师。手册围绕7个实验、四个部分展开:先在…

2026/10/25 23:25:45

基于 WebGPU 与数字孪生的智慧餐饮中央厨房三维可视化管控平台

一、项目背景与整体架构 传统中央厨房存在「数据分散、看不见、管不住」三大痛点:IoT 传感器数据停留在二维表格,产线状态靠人工巡检,食安风险事后才发现。本平台以 WebGPU 实时渲染 数字孪生 AI 分析 为核心,把厨房的物理空间与…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑