Python:midi 到音频流
Posted
技术标签:
【中文标题】Python:midi 到音频流【英文标题】:Python: midi to audio stream 【发布时间】:2010-12-04 18:00:56 【问题描述】:我需要将 MIDI 数据转换/合成为音频流 PCM 数据。有什么简单的方法可以做到这一点?
【问题讨论】:
is.gd/igp4m -- 我已经看到很多关于将 MIDI 转换为音频的问题,我不得不写这个。如果您正在考虑编写一些需要这样做的软件系统,请花时间阅读它。 @Nik:我当然知道所有这些(而且我认为大多数人都会这样做,因为这是合乎逻辑的)。您认为这里用什么词来代替“转换”更合适? 我会使用“合成”这个词。 ;) 抱歉,我不是故意要听起来居高临下;似乎低估了完成这项任务的难度的人经常问这个问题。 @NikReiman 我想阅读您所写的关于“音频到 midi”的内容,但链接 (is.gd/igp4m) 已失效。可以发个固定链接吗? @samboosalis 是的,我迁移了一些域。新链接在这里:mergeconflict.net/2010/12/just-for-record-you-dont-convert.html 【参考方案1】:Take your pick关于你想要做什么,页面上有一个 MIDI 部分。
【讨论】:
看来那里列出的所有 MIDI 库都不能满足我的要求。还是我错过了一个? 我不知道您的问题的具体答案,但是请浏览链接中的库,也许它们确实符合您的目的。如果您知道可以为您执行此操作的外部命令/软件,那么subprocess
可以提供帮助。
@Albert:几乎所有“播放和创建声音”中的 MIDI 工具都可以处理。
@Ignacio:我不太明白他们如何支持这一点。你能解释一下吗?
我认为我的问题是我没有意识到我想要的东西叫做“合成器”。【参考方案2】:
我决定自己编写代码(基于胆怯和子流程)。代码可以在这里看到: https://github.com/albertz/learn-midi/blob/master/decode.py
我在这里为 MacOSX 下载了 Timidty 的预编译二进制文件: http://www.merenbach.com/software/ports/timidity
我从这里安装了 Freepats 包: http://freepats.zenvoid.org/
【讨论】:
【参考方案3】:使用 Jython 是一种选择吗? 我认为 javax.sound.midi 类会处理这个问题。
【讨论】:
【参考方案4】:你可以试试这个:
midi2audio
项目描述:
“轻松将 MIDI 合成为音频或只是播放它。它为 FluidSynth 合成器提供 Python 和命令行界面,使其易于使用并适用于脚本和批处理。相比之下,大多数 MIDI 处理软件是 GUI - 基于。”
【讨论】:
以上是关于Python:midi 到音频流的主要内容,如果未能解决你的问题,请参考以下文章
用于输出音频程序可读的 MIDI 文件或文本的 Python 接口
使用 ffmpeg 和 python 将视频中的所有音频流提取到单独的音频文件中