iOS AUSampler Слушать миди ноты постоянно
Я пытаюсь играть миди ноты с помощью файлов sf2, используя AUSampler audio unit
, Я был в состоянии начать и остановить заметку нормально, используя MusicDeviceMIDIEvent
функционировать, как показано ниже.
noteCommand = kMIDIMessage_NoteOn << 4 | 0;
MusicDeviceMIDIEvent (samplerUnit, noteCommand, note, velocity, 0);
Заметка прекращается через некоторое время, даже если я не звоню MusicDeviceMIDIEvent
функция с сообщением NoteOff.
Есть ли способ включить эту ноту, пока я не позвоню MusicDeviceMIDIEvent
с NoteOff? или файл sf2 должен быть создан по-другому, чтобы он содержал разные звуковые файлы для атаки ноты, сустейна и т. д. и AUSampler
устройство автоматически позаботится о воспроизведении звука сустейна до вызова NoteOff?
Благодарю.
1 ответ
Вам необходимо установить его в файле sf2 или AUPreset, если вы их используете. Для AUPresets вот Техническая нота Apple TN2283:
Цикл задается с помощью свойства "Список регионов" (kAudioFilePropertyRegionList), описывающего сегмент зацикленных аудиоданных, и может быть установлен с помощью API AudioFileSetProperty.
Вот длинный урок по использованию Garageband для настройки зацикливания AUSampler. AU Lab также может генерировать AUPresets.
Для sf2, видео на YouTube, показывающее, как настроить цикл. Не ясно, какое программное обеспечение он использует. Если вы любите приключения, попробуйте создать Swami с открытым исходным кодом для OSX.