【问题标题】:How can I convert ASCII tablature into a MIDI file?如何将 ASCII 指法谱转换为 MIDI 文件?
【发布时间】:2014-04-12 17:46:43
【问题描述】:

我一直在编写一个 PHP 脚本,该脚本将一个单词或短语结合使用摩尔斯电码规则和我自己的一组规则将其转换为 ASCII 指法谱。

至此,程序已接近完成...所缺少的只是将 ASCII 指法谱转换为 MIDI 文件的代码。

最新版本的脚本可以在这里找到:

Morse Code Machine

我找到了多种语言的大量资源,但仍然找不到 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 文件格式的另一个好资源:

http://courses.cs.washington.edu/courses/cse466/03au/Labs/lab-5/Lab5_files/Standard%20MIDI%20file%20format,%20updated.pdf

【问题讨论】:

  • 谢谢,我已经阅读了所有这些材料。它会生成一个名为 mf2t 格式的文本文件(我猜是 midi 文件 2 文本),但我找不到任何关于文件是如何设置的
  • 看起来你可以从 valentin.dasdeck.com/midi/downloads 修改 midi.class.php 来做你想做的事???
  • 是的,看起来确实如此 - 但就像我说的那样,我对 MF2T/T2MF “语法”的了解不够,无法有效地修改该脚本。即使我通过脚本运行简单的 MIDI 文件以查看它在该文本格式中的外观,我也无法确定它的正面或反面。我找到了一个小表格,其中显示了文本的某些部分(页眉/页脚),并且还了解到它广泛使用十六进制值。
  • 制表符确实不够精确,无法从中制作 MIDI —— 至少在事后进行大量调整时并非如此。它们的目的是让知道歌曲时间或有录音可以使用的人阅读。

标签: php perl ascii midi guitar


【解决方案1】:

我最终改变了解决问题的方法。我使用了RTTTL 格式,因为它满足了我的所有要求。该格式仅限于一次仅播放一个音符。这意味着和弦(两个或多个音符 &| 同时演奏)是不可能的。我只是在短时间内测试了 RTTTL 转换方法,所以我可能是错的,但是我找不到任何方法来完成这个协议的和弦。

由于我的程序不需要同时播放多个音符,因此我最终没有通过使用 RTTTL 格式来牺牲任何东西。

我仍然想找出任何方法以编程方式将任何类型的结构化文本形式的指法转换为任何类型的可听文件(MIDI、WAV、MP3、OGG、WMA 等)

现在,我要结束这个问题了,因为我已经解决了我的问题,尽管不完全是我最初打算这样做的方式。

【讨论】:

    猜你喜欢
    • 2022-10-30
    • 2020-02-20
    • 2022-07-06
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 2015-04-07
    相关资源
    最近更新 更多