iOS:音频:读取,处理,编写声音文件+ MIDI处理所需的代码

时间:2010-12-01 04:49:24

标签: ios core-audio midi openal

我认为我需要做的是创建一些代码,让我读入一堆原始声音文件(例如一个完整的声音字体,如吉他),处理这些文件(构造和弦),并输出结果作为另一组文件。

我的问题:任何人都可以向我指出一些与此任务相近的代码,这样可以避免我从头开始做所有事情吗?

编辑:下面的回答建议我使用车库乐队,我已经看过了。它看起来像一个伟大的工具。我可以在车库乐队上构建我的24和弦。但后来我需要将它保存为MIDI,并编写我自己的代码来处理这个midi文件,调整单个音符的音量,保存,然后通过车库乐队录制声音反馈。任何人都可以指出一些代码,这些代码会让我开始处理midi吗?

萨姆

PS如果有任何兴趣,这就是我正在做的事情:

http://imagebin.org/125562

我面临的困难是如何发出和弦的声音......如果我只为C大调和弦做{C4 E4 G4},为G等做{G4 B5 D5},那听起来会很糟糕

钢琴家根本不会像C那样从C移动到G.发声是一种艺术,因此每个音符都试图将最小距离移动到新的分辨率。

我看不出任何以关键不可知的方式描绘这个的公式。

所以我试图改为播放所有Cs Es和Gs,为'C大调'创建声音纹理

如果我把所有相应的振幅都放在钟形曲线下,每个主要或次要的和弦应该以它的能量为中心围绕同一个点,那么效果就是纹理会发生变化,而不会给出向上移动的任何明显/粗糙的印象/ down

这现在有道理了吗?任务变成:如何构造24个纹理?

3 个答案:

答案 0 :(得分:2)

如果您仍在寻找解决方案,iOS5(最终!)包括Core Audio MusicPlayer。 - 它可以读取/写入midi文件,加载声音字体,播放带有各种选项的midi。

Mac MusicPlayer Developer Reference

iOS MusicPlayer Developer Reference

答案 1 :(得分:1)

您可以在Garage Band中创建所有和弦,然后从那里导出声音以在您的应用中使用。 (尽管您的应用程序会因所有数字化音频而变大。)

答案 2 :(得分:1)

你可能会仔细阅读Stephan Bernsee的免费Dirac LE时间延伸库附带的示例代码。它有两个类,EAFRead和EAFWrite,用于读取/转换/写入音频文件。你可以从http://dirac.dspdimension.com获得它。查看库附带的mobile / iOS文件夹。您可以简单地用他想要的任何内容替换对他的库的调用(例如采样率转换为转置声音,请查看http://www.musicdsp.com以获取执行此操作的提示/代码。)