如何将ASCII谱表转换为MIDI文件?

时间:2014-03-09 18:37:03

标签: php perl ascii midi guitar

我一直在研究一个带有单词或短语的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,我想以编程方式将ASCII标签直接转换为通过PHP(或Perl,如果必须的话)的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

1 个答案:

答案 0 :(得分:0)

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

由于我的程序不需要同时播放多个音符,因此我不会因使用RTTTL格式而牺牲任何内容。

我还想找出一种方法,以编程方式将任何类型的结构化文本形式的tablature转换为任何类型的声音文件(MIDI,WAV,MP3,OGG,WMA等......)

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