синтез звука с MoMu STK - PullRequest
       0

синтез звука с MoMu STK

2 голосов
/ 10 ноября 2011

Кто-нибудь успешно реализовал Инструмент, используя MoMu STK на iOS? Я немного застрял с инициализацией потока для инструмента. Я использую учебный код и, похоже, чего-то не хватает

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 );

В описании ошибки указано, что выходные параметры для устройства вывода недопустимы, но когда я пропускаю назначение устройства, он также не работает. Любая идея была бы отличной.

Ответы [ 2 ]

2 голосов
/ 11 мая 2012

Да, у меня есть пара приложений в магазине, на которых работают классы STK.Имейте в виду, что настройка, необходимая для запуска STK на iOS, отличается от настройки, необходимой для его запуска на рабочем столе.

Вот руководство по использованию классов STK в приложении для iOS: https://arielelkin.github.io/articles/mandolin

2 голосов
/ 11 ноября 2011

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();
}
...