Одним из способов является использование CoreAudio DefaultOutputUnit.
Вы можете настроить его с такими параметрами, как выходная частота дискретизации, разрешение и формат выходной выборки. Затем вы можете программно создать необработанную звуковую волну и передать ее на выходной блок.
Посмотрите на этот пример на вашем компьютере в / Developer / examples / CoreAudio / SimpleSDK / DefaultOutputUnit /
Который использует модуль вывода по умолчанию для воспроизведения программно визуализированной синусоидальной волны. Используя это как отправную точку, вы можете написать подпрограмму для рендеринга чего-либо еще.
Это расположение в / Developer / examples / CoreAudio / также содержит множество других основных аудио примеров.