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 接口

通过 Python 在 Midi 的特定时间写笔记

使用 ffmpeg 和 python 将视频中的所有音频流提取到单独的音频文件中

Python 和 websockets - 发送音频流

使用url从python流传输youtube音频而无需下载python

在 python 中读取音频流