Содержание
Audio Unit Extensions на iOS – Блог Midiflow
В грядущем обновлении iOS 9, похоже, есть несколько интересных функций для нас, музыкантов. Первый — это многозадачность, которая позволит нам использовать два приложения одновременно. Это будет очень полезно, если вы хотите одновременно управлять двумя приложениями синтезатора или если вы хотите записать приложение синтезатора в приложении DAW.
Я уже был в восторге от этого, но я только что обнаружил демонстрационный код Apple для другой функции, которая может сделать это использование многозадачности снова бесполезным.
Я говорю о расширениях Audio Unit. Слухи об этом ходили с понедельника (начало WWDC). В журнале изменений iOS 9 говорится:
Точка расширения Audio Unit позволяет вашему приложению предоставлять музыкальные инструменты, звуковые эффекты, звуковые генераторы и многое другое для использования в таких приложениях, как GarageBand, Logic и других хост-приложениях Audio Unit. Точка расширения также предоставляет полную модель подключаемого модуля аудио для iOS и позволяет продавать аудиоустройства в App Store.
Пример приложения (которое можно найти здесь: AudioUnitV3Example: базовое расширение AudioUnit и реализация хоста) наконец-то поясняет, что это такое на самом деле. Обратите внимание, что на данный момент я не смотрел соответствующее видео сеанса WWDC, потому что оно еще недоступно. Все может оказаться иначе, чем я знаю до сих пор.
Немного предыстории: с помощью звука между приложениями (IAA) ведущее приложение может построить граф обработки звука, содержащий другие (клиентские) приложения. Самый популярный пример такого хост-приложения — Audiobus (хотя это приложение было доступно задолго до IAA). Внедрив эту технологию в iOS 8, Apple позволила приложениям вести себя как плагины, сохраняя при этом независимость каждого приложения.
Apple сделала еще один шаг вперед и позволяет хост-приложениям отображать пользовательский интерфейс клиентских приложений напрямую в своем собственном интерфейсе. Это означает, что переключение между хостом и клиентскими приложениями больше не требуется. Это очень похоже на Mac OS, где хост-приложение (например, Logic) представляет окна самих аудиоустройств.
В iOS 9 это возможно благодаря технологии, которая уже была представлена в iOS 8: расширениям приложений. Они позволяют приложению отображать свой пользовательский интерфейс в другом приложении. Например, в приложении Facebook есть расширение, которое позволяет напрямую публиковать изображение из приложения для фотографий. До iOS8 вам нужно было зайти в приложение Facebook и выбрать фотографию оттуда.
Расширения Audio Unit привносят эту концепцию в аудиоприложения.
Надеюсь, это не только упростит использование с точки зрения пользовательского интерфейса. У IAA не было ничего похожего на сохранение состояния Audiobus. Таким образом, хотя ведущее приложение могло сохранить аудиограф, созданный пользователем, оно не могло сохранить состояние клиентских приложений. Для сравнения: если вы загружаете проект Logic в Mac OS, ваши аудиоустройства, конечно же, восстанавливают свои состояния. Я надеюсь, что с расширениями Audio Unit это возможно и на iOS. DAW выиграют от этого, и iMIDIPatchbay (который я разрабатываю, кхм) сможет, наконец, управлять различными состояниями ваших синтезаторных приложений гораздо проще, чем отправка Program Changes. (Обновление: да, см. ниже!)
Я дополнительно изучу код примера, ожидая видео WWDC. Обновление
: видео сеанса WWDC представляет новую версию 3 API, которая является объектно-ориентированной (в отличие от старого API C) и упрощает многие вещи. Некоторые «мосты» должны упростить работу хостов или клиентов, построенных на разных версиях API, друг с другом. Новый API позволяет Audio Units работать в собственном процессе на MacOS. Преимущество этого в том, что сбой Audio Unit не приведет к сбою хоста. Это также приводит к снижению производительности, поэтому хосты и клиенты могут отказаться от этого.
Кажется, очень легко перенести аудиоустройства Mac OS на iOS, потому что весь аудиокод одинаков. Единственные различия связаны с разными платформами пользовательского интерфейса на обеих платформах (UIKit и App Kit). Это означает, что мы можем ожидать появления большего количества аудиоустройств из Mac OS для iOS. Тем не менее, я хочу подчеркнуть для тех, кто не кодирует, что это все равно будут отдельные приложения, которые вам придется покупать в магазине приложений. Вы не сможете скопировать свои аудиоустройства с вашего Mac на iPad, потому что, среди прочего, они должны быть созданы для другой архитектуры процессора.
Аудиоустройства на iOS теперь могут, как и в Mac OS, регистрировать параметры, которые можно записывать и изменять в хост-приложении. Таким образом, хост может восстановить состояние аудиоблока (что, безусловно, является моей любимой новостью сегодня). Тот факт, что новая версия API поддерживает кодирование ключ-значение, действительно пригодится в этом контексте.
Отправка и прием MIDI-сообщений между хостом и клиентом выполняются аналогично обновлению параметров. Возможно, это долгожданное улучшение iOS, позволяющее приложениям обмениваться данными через MIDI без хлопот с выбором виртуальных портов.
Звук между приложениями не устарел, он больше похож на подмножество нового API. Похоже, что Apple получила достаточно отзывов об отсутствии контроля параметров и неудобстве переключения приложений, поэтому они решили перенести всю инфраструктуру Audio Unit на iOS, а не добавлять в IAA только некоторые небольшие функции.
Они также представили несколько скриншотов, показывающих, как расширения Audio Unit будут обрабатываться в собственных приложениях Apple, таких как Garageband: будет список установленных расширений Audio Unit (которые приходят на ваш iPad или iPhone после установки соответствующего приложения из магазина приложений). ). После его выбора Garageband покажет свой пользовательский интерфейс над экранной клавиатурой. Таким образом, расширения Audio Unit не должны иметь собственную клавиатуру. Тот факт, что пользовательский интерфейс AU может отображаться в контейнерах разных размеров, показывает, насколько важно сейчас использовать Auto Layout. Однако они показали некоторые конкретные размеры, с которыми должны быть готовы разработчики расширений Audio Unit. На слайде написано:
- iPad Air: 2048×670
- iPhone 6+: 2208×726
- iPhone 6: 1334×404
- iPhone 5s: 1336×350
Пока не могу сказать, можно ли запустить два экземпляра расширения Audio Unit на iOS. Это было бы еще более захватывающим.
Johannes Dörr, Do 11 июня 2015 г.
Пожалуйста, включите JavaScript для просмотра комментариев на платформе Disqus.
Copyright © 2017 Johannes DörrВсе права защищены. Контакт: [email protected]
Jütländer Allee 50a, 22527 Гамбург (Германия), VATIN / USt-IdNr DE286441475
Audiobus, IAA и AUv3 — в чем разница?
Если вы только собираетесь окунуться в мир создания музыки для мобильных устройств, термины Audiobus, Inter-App Audio и AUv3 могут вызвать у вас затруднения. Что это такое и почему они важны для iOS-музыкантов? Ну, вы в правильном месте!
По сути, это всего лишь разные способы подключения ваших аудиоприложений, которые позволяют музыкантам использовать сторонние эффекты и инструментальные приложения в мобильных DAW, таких как Cubasis и Garageband.
Audiobus
Выпущенный в 2012 году, Audiobus стал революционным для музыкантов iOS. Приложение предлагало музыкантам возможность использовать свои приложения для создания музыки вместе друг с другом. Audiobus делает это, позволяя приложениям отправлять аудио друг другу. Например, пользователь может отправить звук из инструментального приложения через отдельное приложение эффектов, а затем записать результат в DAW. Раньше это было просто невозможно.
Текущая версия — Audiobus 3, которая позволяет маршрутизацию MIDI и поддержку приложений AU в дополнение к стандартной маршрутизации аудио.
Inter App Audio
До iOS 7 Audiobus был единственным способом для пользователей получить аудиовыход из одного приложения и получить его в другом. Однако это изменилось с появлением Inter-App Audio (IAA) — собственного решения Apple, позволяющего аудиоприложениям взаимодействовать друг с другом. Преимущество IAA перед Audiobus заключалось в том, что он уже был встроен. Пользователям IAA не нужно было платить и скачивать отдельное приложение.
Все приложения, совместимые с IAA, делятся на две категории: хост-приложения и узловые приложения. Хост-приложения получают звук от узловых приложений (например, DAW). Приложения Node, с другой стороны, являются инструментами или эффектами, обеспечивающими звук.
Аудиоустройства (AUv3)
Термин «Аудиоустройство», вероятно, знаком любому продюсеру, работавшему на Mac. На самом деле Logic Pro может использовать только плагины Audio Unit. Как и VST и AAX, Audio Unit — это просто еще один формат плагинов, хотя и созданный Apple для использования только на Mac. Вы также можете увидеть аудиоустройства, называемые расширениями аудиоустройств или AUv3.
Изначально Audio Units были доступны только для Mac. Но в 2015 году Apple представила поддержку Audio Unit в iOS 9. Это позволило приложениям для iPad и iPhone размещать сторонние приложения AUv3.