【发布时间】:2014-04-12 17:46:43
【问题描述】:
我一直在编写一个 PHP 脚本,该脚本将一个单词或短语结合使用摩尔斯电码规则和我自己的一组规则将其转换为 ASCII 指法谱。
至此,程序已接近完成...所缺少的只是将 ASCII 指法谱转换为 MIDI 文件的代码。
最新版本的脚本可以在这里找到:
我找到了多种语言的大量资源,但仍然找不到 XML 或 MF2T/T2MF 格式的 MIDI 文件的任何数据定义。我可以理解 ASCII 格式并相应地调整脚本的输出,但我能找到的将 ASCII 转换为 MIDI 的最接近的工具是 this Perl module。它似乎是迄今为止我发现的所有工具中最有前途的工具/资源,但我正在寻找 PHP 解决方案。
是否有人对我如何确定指法的 XML 和/或 MF2T/T2MF 文本格式的“语法”有任何建议?这似乎很容易,但我只是在寻找工具和脚本,几乎没有关于用于从 ASCII 格式的乐谱创建 MIDI 文件的文件格式的文档。
ASCII Tablature 将符合these standards,我想通过 PHP(或 Perl,如果必须的话)以编程方式将 ASCII 制表符直接转换为 MIDI 文件
编辑:
发现另一个 SO 问题,该问题链接到描述 MIDI 文件格式技术细节的一堆网站。
这是链接: What is the structure of a MIDI file?
MIDI 文件格式的另一个好资源:
【问题讨论】:
-
谢谢,我已经阅读了所有这些材料。它会生成一个名为 mf2t 格式的文本文件(我猜是 midi 文件 2 文本),但我找不到任何关于文件是如何设置的
-
看起来你可以从 valentin.dasdeck.com/midi/downloads 修改 midi.class.php 来做你想做的事???
-
是的,看起来确实如此 - 但就像我说的那样,我对 MF2T/T2MF “语法”的了解不够,无法有效地修改该脚本。即使我通过脚本运行简单的 MIDI 文件以查看它在该文本格式中的外观,我也无法确定它的正面或反面。我找到了一个小表格,其中显示了文本的某些部分(页眉/页脚),并且还了解到它广泛使用十六进制值。
-
制表符确实不够精确,无法从中制作 MIDI —— 至少在事后进行大量调整时并非如此。它们的目的是让知道歌曲时间或有录音可以使用的人阅读。
标签: php perl ascii midi guitar