Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 用于合成音乐数据的OSX框架是什么?_Macos_Cocoa_Audio_Midi - Fatal编程技术网

Macos 用于合成音乐数据的OSX框架是什么?

Macos 用于合成音乐数据的OSX框架是什么?,macos,cocoa,audio,midi,Macos,Cocoa,Audio,Midi,我想写一些代码,生成一些非常简单的音乐音调(音符),并通过扬声器(任何声音设备)输出 我想我可能需要生成MIDI数据,我可以独立地计算出来,但我对音频编程一般来说是新手,我不确定进入系统框架的最佳切入点是什么AudioToolbox具有这些MusicSequence对象。还有核心MIDI和核心音频。没有一个明显的接口用于“这里有一个用于一堆笔记的数据结构,现在调用这个方法来播放它们”,所以我大概需要将它们组合起来 我相信OSX支持这一点。如果有人了解这类工作的背景,我希望能提供一些基本的提示,说

我想写一些代码,生成一些非常简单的音乐音调(音符),并通过扬声器(任何声音设备)输出

我想我可能需要生成MIDI数据,我可以独立地计算出来,但我对音频编程一般来说是新手,我不确定进入系统框架的最佳切入点是什么
AudioToolbox
具有这些
MusicSequence
对象。还有核心MIDI和核心音频。没有一个明显的接口用于“这里有一个用于一堆笔记的数据结构,现在调用这个方法来播放它们”,所以我大概需要将它们组合起来


我相信OSX支持这一点。如果有人了解这类工作的背景,我希望能提供一些基本的提示,说明在文档(或其他资源)中从何处开始寻找构建任何表示音乐数据的结构,以及在何处掉头并触发播放

OSX确实支持这一点,但它本质上比最初看起来要复杂得多。基本上有三个部分:

  • MusicSequence是“一串音符的数据结构”(以及节奏/节拍图形式的计时信息)
  • MusicLayer是控制音乐序列播放的对象
  • AUGraph是用来创建乐器对象并将其连接到物理输出,从而将音符数据转换为声音的工具
在如何设置俄歇图方面有很多潜在的变化。例如,默认的通用MIDI合成器是内置的DLSMUSIC设备,但您也可以加载FM合成器、采样器或任何数量的其他仪器设备。从那里,您可以以各种方式处理音频并将其路由到各种设备。所有这些属于“音频处理”一般类别的ff发生在AUGraph中


苹果的PraseScript示例代码主要是你所寻找的。它是一个C++项目,但是MusicSequence、MyiSpple和AuGrand是简单的C API,所以它应该是一个不错的起点。

很棒,谢谢你,肖恩。这正是我所要寻找的。干杯。