Я работаю над созданием аудиоустройства v3. Я добился приличного прогресса до этого момента, я сделал главное приложение, которое загружает все мои сторонние плагины. Я создал плагин auv3, который обрабатывает аудио и может быть загружен другими хостами.
Теперь я хочу создать au, который загружает аудиоданные с диска и сканирует данные в произвольных положениях с точностью выборки (временная протяженность, детализация и т. Д. c). Я думал, что это будет отличное дополнение для воспроизведения сэмплов для AudioKit.
Так что это будет что-то делать на уровне AKSampler в платформе AudioKit. Просматривая источник AK, я чувствую, что что-то упустил.
Просматривая github, я попал в такие места, как здесь: https://github.com/AudioKit/AudioKit/tree/118affee65f4c9b8d4780ef1a03a6d03004bbcee/AudioKit/Common/Nodes/Playback/Samplers
, затем я посмотрел здесь: https://github.com/AudioKit/AudioKit/blob/118affee65f4c9b8d4780ef1a03a6d03004bbcee/AudioKit/Common/Nodes/Playback/Samplers/Disk%20Streamer/AKDiskStreamerAudioUnit.mm
, который привел меня сюда: https://github.com/AudioKit/AudioKit/blob/d69dabf090a5e78d4495d938bf6c0aea9f672630/AudioKit/Common/Nodes/Playback/Samplers/Disk%20Streamer/AKDiskStreamerDSPKernel.hpp
и затем в конечном итоге здесь: https://github.com/AudioKit/AudioKit/blob/d69dabf090a5e78d4495d938bf6c0aea9f672630/AudioKit/Core/Soundpipe/modules/wavin.c
Я не ищу информацию об AKSampler, в частности, о том, как в целом загружаются аудиофайлы и как это имеет смысл в реальном времени в процессе расширения au.
Я нигде не мог найти код IPC / XP C, поэтому я предполагаю, что речь не идет о кольцевых буферах, соединяющихся с другими процессами или чем-то еще.
Распределяет ли AudioKit память в процессе реального времени для воспроизведения аудиофайлов? Это может показаться go против всех предупреждений опытных аудиопрограммистов (статьи типа http://www.rossbencina.com/code/real-time-audio-programming-101-time-waits-for-nothing), но я не могу понять, что делается в AudioKit и вообще в iOS ..
что я просто не понимаю или не нахожу? : D