Я уже в который раз пытаюсь создать плагин AUv3, и все с разным успехом (без всякой радости, никогда: /)
Он работает в приложении, но auval не работает с
Bad Max Frames - Render should fail
ERROR: AudioUnitRender should have returned an error for too many frames but returned noErr
Текущая ОС: 10.13.5 XCode: 9.4
и т.д. Подробная информация предоставляется при необходимости. (Я делал заметки о своих шагах, так как до этого мне никогда полностью не удавалось.) По сути, он такой же, как инструмент Demo MacOS AUv3, но я начал проект с нуля. Единственный быстрый код находится в SimplePlayEngine.swift. Остальное - это Objective C, Objective C++ и чистый C++.
Единственный результат поиска, который я нашел по этой проблеме, - это добавить аргумент в prepareInputBufferList, но с этой ссылкой есть две проблемы:
Я не знаю, связано ли это, но я обнаружил, что НИКАКАЯ точка останова, которую я установил в audiounit или связанных файлах (BufferedAudioBus.hpp), никогда не срабатывает. Поскольку аудиоустройство функционирует в приложении, я должен предположить, что код выполняется, но что-то в том, как он был построен, неверен. (Сообщения NSLog тоже не печатаются ... ??? (да, я знаю, что при рендеринге в реальном времени печать на консоль - плохая идея)).
Я различал мой источник AU и демо AU, и единственные изменения - это изменение имени. «Фазы сборки» сопоставимы.
Я знаю, что это довольно неспецифический вопрос, но у меня закончились идеи. Есть ли у кого-нибудь идеи, где искать, чтобы устранить ошибку auval "Bad Max Frames"?
Не совсем аутентичный комментарий, но важно отметить, что Logic Pro X (и, возможно, MainStage) не выполняет автоматическую повторную проверку неудачных плагинов при запуске. Если auval проверяет подключаемый модуль, нажмите «Сбросить и повторно сканировать выбор» в диспетчере подключаемых модулей в Logic Pro.
-10874 - это kAudioUnitErr_TooManyFramesToProcess





Я добавил проверку в блоке рендеринга if (frameCount> 4096) {return -10874;} - это исправило ошибку проверки недопустимости максимального количества кадров auval. Кроме того, мой контроллер представления AU непреднамеренно был как частью расширения приложения, так и фреймворка. ; похоже, именно поэтому точки останова не работали ... Почему -10874? Другой AU сообщил об этой ошибке при выходе из "Bad Max Frames". Требуется константное имя для этого числа; еще не нашел.