Это совсем не сложно. Взгляните на примеры AudioQueue. Если вы посмотрите на код для воспроизведения аудиофайла, вы просто сделаете это, за исключением того, что фактически не читаете файл.
Вы просто делите частоту дискретизации на свою частоту, вычисляете синусоидальную волну и вводите эти значения в очередь аудио в функции обратного вызова воспроизведения.