在 Python 中为 Kivy 播放跨平台、移动、MIDI - 这可能吗?

Posted

技术标签:

【中文标题】在 Python 中为 Kivy 播放跨平台、移动、MIDI - 这可能吗?【英文标题】:Playing cross-platform, mobile, MIDI in Python for Kivy - is this possible? 【发布时间】:2014-11-11 19:50:56 【问题描述】:

我想在 Kivy 中加载和播放“.mid”MIDI 文件,但主要在移动平台上(即 IOS 和 Android)

我假设,我不想深入了解基于原生 C/C++ 的东西的复杂性(即避免交叉编译,我不是经验丰富的 Python 开发人员),所以库,很可能需要是纯 Python。

我将从我找到的一些框架开始竞标(有些需要 C/C++),我没有使用过(0,零),也许有人可以提供一些反馈(或者它们可能对更广泛的社区):

顺便说一句,如果/a MIDI 库也可以从“.mid”文件中读取歌词,那就太好了

Python Midi 库

http://web.mit.edu/music21https://github.com/cuthbertLab/music21https://code.google.com/p/midiutil https://code.google.com/p/mingushttp://mxm.dk/products/public/pythonmidihttp://das.nasophon.de/mididings@ 987654327@ https://gist.github.com/anonymous/202595 http://webcache.googleusercontent.com/search?q=cache%3Alarndham.net%2Fservice%2Fpys60%2Fsmidi.pyhttps://pypi.python.org/pypi/midi http://www.fluidsynth.org http://sourceforge.net/p/fluidsynth

【问题讨论】:

查看此处获取线索***.com/questions/16088764/… 【参考方案1】:

我正在使用 Fluidsynth 为我提供跨平台的 MIDI 输出。它使用 SoundFont 模块播放 MIDI 文件,以获得高质量的音频。如果您对 LGPL 许可证感到满意,您可以从 pyFluidSynth (https://code.google.com/p/pyfluidsynth) 获取它的 Python 绑定,但使用标准 Python ctypes 模块编写自己的绑定模块非常简单。

通常,您应该从提供的源代码编译(并因此交叉编译)Fluidsynth,但是您可以只从另一个项目中获取预编译版本,例如 MuseScore。这就是我目前正在做的事情,一旦(如果)我正在处理的项目接近完成,我将切换到编译 Fluidsynth。

如果您想处理 MIDI 文件,例如要提取歌词,请查看 Mido (https://mido.readthedocs.org/en/latest)。我发现它对于读/写 MIDI 文件非常有用。

【讨论】:

以上是关于在 Python 中为 Kivy 播放跨平台、移动、MIDI - 这可能吗?的主要内容,如果未能解决你的问题,请参考以下文章

《Python+Kivy(App开发)从入门到实践》自学笔记:高级UX部件——VideoPlayer视频播放

Python Kivy 中文教程:安装(Windows)

如何在 Kivy Python 中为 GridLayout 的某些按钮设置高度?

如何在kivy python中使用滑块作为进度条并控制音频?

Python中跨平台的Kivy和Toga(Beeware项目)之间的区别

Python Kivy - 下划线在标签中不起作用