使用MoMu STK进行音频合成

时间:2011-11-10 08:27:45

标签: c++ ios core-audio

有没有人在iOS上使用MoMu STK成功实现了一个乐器?我有点堆积仪器的流初始化。 我正在使用教程代码,看起来像缺少的东西

RtAudio dac;

        // Figure out how many bytes in an StkFloat and setup the RtAudio stream.
        RtAudio::StreamParameters parameters;
        parameters.deviceId = dac.getDefaultOutputDevice();
        parameters.nChannels = 1;
        RtAudioFormat format = ( sizeof(StkFloat) == 8 ) ? RTAUDIO_FLOAT64 : RTAUDIO_FLOAT32;
        unsigned int bufferFrames = RT_BUFFER_SIZE;

        dac.openStream( & parameters, NULL, format, (unsigned int)Stk::sampleRate(), &bufferFrames, &tick, (void *)&data );

错误描述表明输出设备的输出参数无效,但是当我跳过分配设备ID时,它也不能正常工作。 任何想法都会很棒。

2 个答案:

答案 0 :(得分:2)

RtAudio仅适用于桌面应用,在iOS上实施时无需打开流。

示例:

标题文件:

#import "Simple.h"

// make struct to hold 

struct TickData {

    Simple *synth;    

};

// Make instance of the struct in @interface= 
TickData data;

实施档案:

// init the synth:
data.synth = new Simple();
data.synth->keyOff();

// to trigger note on/off:
data.synth->noteOn(frequency, velocity);
data.synth->noteOff(velocity);

// audio callback method:
for (int i=0; i < FRAMESIZE; i++) {
    buffer[i] = data.synth -> tick();
}

答案 1 :(得分:2)

是的,我在商店里有几个应用程序运行STK类。请记住,在iOS上运行STK所需的设置与在桌面上运行STK所需的设置不同。

这是一个关于如何在iOS应用程序中使用STK类的教程: https://arielelkin.github.io/articles/mandolin