macos — Как я могу воспроизвести синтезаторный звук в приложении C ++ на OSX?

Я хочу играть инструментальные звуки в моем приложении. Продолжительность звуков гибкая, поэтому MIDI кажется лучшим решением.

Я сейчас использую Open Framework.
Используя аудиоустройства, мне удалось обработать входной звук, а не играть через инструмент.
Я нашел инструменты AUi на своем Mac, но я не знаю, как получить к ним доступ из своего кода.
Я не нашел способа играть в General Midi (встроенный инструмент MIDI). Не найден выходной порт с RTMidi.

у кого-нибудь есть решение?
Спасибо!

2

Решение

Я нашел решение в этот проект.

Вам нужно использовать аудиоустройства.
Добавьте узел с этим описанием компонента:

description.componentType           = kAudioUnitType_MusicDevice;
description.componentSubType        = kAudioUnitSubType_DLSSynth;
description.componentManufacturer   = kAudioUnitManufacturer_Apple;
description.componentFlags          = 0;
description.componentFlagsMask      = 0;
AUGraphAddNode (graph, &description, &synthNode);

Откройте и инициализируйте свои аудиоустройства и играйте примечания как это:

MusicDeviceMIDIEvent (synthUnit, channel, note, velocity, 0);
0

Другие решения

Других решений пока нет …