Оптимизация пользовательского опыта аудиоустройства в логическом Studio
Логический Studio является комплектом мощного приложения, обрабатывающим ключевые аспекты музыкального производства в пределах от создания, расположения, смешивания, производства сообщения и даже театральной производительности. Этот документ выделяет несколько главных особенностей стандарта аудиоустройства, на который разработчики должны обратить особое внимание гарантировать лучший пользовательский опыт для их продуктов через всю палитру хост-приложений аудиоустройства в Логическом Studio: Логический Pro 8, звуковая дорожка Pro 2, MainStage и WaveBurner.
Введение
В то время как код и поведение широко совместно используются среди приложений в Логическом Studio, каждый все еще специализируется на определенных задачах и поэтому естественно обеспечивает немного отличающийся контекст, в котором будет жить Ваше аудиоустройство. Это может сделать стоящим полностью протестировать Ваши плагины через различные приложения для обеспечения правильного функционирования. Прежде, чем повернуться к Логическим приложениям Studio, хотя, мы рекомендуем протестировать Ваше аудиоустройство с AU Lab. Разработанный как ссылочный хост для разработки аудиоустройства, ее поддержки версии Leopard большинство функций аудиоустройства описано в этом документе.
Используя auval
Для обеспечения правильного функционирования каждого аудиоустройства в определенной пользовательской системе Логические приложения Studio полагаются auval инструмент командной строки, предоставленный в Mac OS X, посмотрите Техническое примечание TN2204, 'Проверка аудиоустройства Используя
Каждое аудиоустройство, установленное или обновленное, будет проверено, и об отказах сообщат пользователю.
Начиная с Mac OS X 10.4, auval поддержки kAudioUnitErr_Unauthorized ошибка. При разработке защищенного от копирования аудиоустройства Вы используете эту ошибку отличить сбой авторизации от ошибки проверки. Вызывающая сторона может тогда вывести на экран надлежащее сообщение об ошибке и допускать повторную попытку проверки после авторизации этой копии плагина.
Кэширование свойства
Логика, звуковая дорожка Pro 2, MainStage и определенная информация кэша WaveBurner о плагинах аудиоустройства, установленных в системе для ускорения процесса запуска. Это включает:
имя, версия и триплет ID AU
состояние проверки с
auvalИнформация о возможности конфигурации I/O включая
kAudioUnitProperty_SupportedNumChannels, writabilitykAudioUnitProperty_ElementCount, и количество по умолчанию и конфигурация элементов,kAudioUnitProperty_SupportedChannelLayoutTagsЗначение
kAudioUnitMigrateProperty_FromPluginсвойствочисло представлений Углерода и Какао (как определено размером
kAudioUnitProperty_GetUIComponentListиkAudioUnitProperty_CocoaUIсвойства)
При изменении кода, не увеличивая номер версии аудиоустройства необходимо будет повторно отсканировать аудиоустройство вручную в менеджере по Аудиоустройству для подавания заявок, распознают изменения. Также можно обнулить номер версии аудиоустройства для принуждения автоматического пересканирования в каждом запуске приложения. Вы можете использовать этот метод при разработке аудиоустройства, но должны установить надлежащий номер версии в сборке развертывания.
Представления аудиоустройства
Все четыре хост-приложения аудиоустройства в Логическом Studio используют Какао для реализации их интерфейса. Это означает, что пользовательские Представления Аудиоустройства, реализованные в Какао, непосредственно встраиваются в окно узла, тогда как пользовательские Представления Аудиоустройства, реализованные в Углероде, выведены на экран с помощью необрамленных окон наложения, подобных методу, описанному в Техническом примечании TN2213, 'Аудиоустройства: Встраивание Представления Углерода в Окне Какао'.
Непосредственно встроенные представления обеспечивают лучший пользовательский опыт через лучшую интеграцию UI. Поэтому Какао является рекомендуемой технологией.
Для еще лучшей интеграции пользовательских интерфейсов пользовательские Представления Аудиоустройства должны воздержаться от использования окон наложения и от открытия листов или вспомогательных окон кроме для просмотра файла. Все элементы пользовательского интерфейса должны быть представлены в корневом Представлении Аудиоустройства путем разметки его содержания динамично и изменения размеров по мере необходимости. Окно узла слушает уведомления изменения размера и адаптируется автоматически.
Объемный звук
Логический Studio предоставляет выделенную поддержку для объемного звука. Если обработка аудиоданных, реализованная Вашим аудиоустройством, предоставляет себя к окружению специфичной реализации, необходимо изучать если это в будущем для улучшения полного пользовательского опыта.
Если Ваша обработка аудиоданных не использует spatialization информацию или если это обрабатывает все каналы независимо, мы рекомендуем что Вы:
Поддерживайте любое количество каналов, при условии, что количество каналов является тем же для ввода и вывода
Не поддерживайте расположение канала (
kAudioUnitProperty_AudioChannelLayout) свойство, потому что аудиоустройство не делает никакой семантической обработки на основе определения каналов
Поверхности внешнего управления
Логика и функция MainStage поддерживают для поверхностей внешнего управления, таких как Мэки Universal Pro и Управление/Соединение MC Euphonix и т.д.
MainStage допускает разработку специфичных для пользователя представлений для плагинов с ограниченным количеством параметров для легкого доступа на этапе. Обе функции зависят от параметров, представляемых узлу через kAudioUnitProperty_ParameterList свойство, таким образом, необходимо решить тщательно который параметры экспортировать.
При описании экспортируемых параметров через kAudioUnitProperty_ParameterInfo, используйте поле флагов AudioUnitParameterInfo структура для предоставления дополнительной информации о параметрах, такой как kAudioUnitParameterFlag_NonRealTime препятствовать тому, чтобы параметр был автоматизирован, или kAudioUnitParameterFlag_ExpertMode различать более важные параметры и тех, которые позволяют форумам простую подстройку опытным пользователем. Также используйте kAudioUnitParameterFlag_HasClump вместе с kAudioUnitProperty_ParameterClumpName сгруппировать Ваши параметры в значимые разделы.
Если параметр устанавливает, другой важный вопрос здесь должен удостовериться это kAudioUnitParameterFlag_ValuesHaveStrings, мало того, что необходимо поддерживать kAudioUnitProperty_ParameterStringFromValue (раньше известный как kAudioUnitProperty_ParameterValueName) для того параметра, но также и реализации обратная трансформация через kAudioUnitProperty_ParameterValueFromString позволить хост-приложению переводить вводимый пользователем текст в значение параметра.
Много аудиоустройств все еще изо всех сил пытаются отправить надлежащее уведомление каждый раз, когда параметр изменяется вследствие взаимодействия с пользователем в его пользовательском UI. См. TN2104 Технического примечания, 'Разработка Аудиоустройства - Обрабатывающий События Аудиоустройства, чтобы изучить, когда и как уведомления изменения должны быть отправлены согласно спецификациям AU.
Отказ отправить надлежащие уведомления заставит систему автоматизации не работать должным образом (особенно при использовании сенсорного режима для редактирования существующей автоматизации), и это может также повредить кнопку «Сравнить» настроек в Логике, позволяющей сравнивать измененную установку с ее исходным состоянием.
Ссылка свойства аудиоустройства логического Studio
Для Вашей ссылки вот список всех свойств, используемых Логическими приложениями Studio. Проверьте поддержку этих свойств как подходящих для продукта.
Конфигурация I/O
kAudioUnitProperty_SupportedNumChannels kAudioUnitProperty_ElementCount kAudioUnitProperty_StreamFormat kAudioUnitProperty_SupportedChannelLayoutTags kAudioUnitProperty_AudioChannelLayout
Рендеринг
kAudioUnitProperty_MaximumFramesPerSlice kAudioUnitProperty_InPlaceProcessing kAudioUnitProperty_OfflineRender kAudioUnitProperty_SetRenderCallback kAudioUnitProperty_HostCallbacks kAudioUnitProperty_Latency kAudioUnitProperty_TailTime
Персистентность
kAudioUnitProperty_FactoryPresets kAudioUnitProperty_PresentPreset kAudioUnitProperty_ClassInfo
Параметры
kAudioUnitProperty_ParameterList kAudioUnitProperty_ParameterInfo kAudioUnitProperty_ParameterValueStrings kAudioUnitProperty_ParameterClumpName kAudioUnitProperty_ParameterStringFromValue kAudioUnitProperty_ParameterValueFromString
Пользовательский интерфейс
kAudioUnitProperty_GetUIComponentList kAudioUnitProperty_CocoaUI
Сменная Миграция (импорт песни от Windows/OS 9 VST)
kAudioUnitMigrateProperty_FromPlugin kAudioUnitMigrateProperty_OldAutomation
Новый в Mac OS X 10.5
kAudioUnitProperty_AUHostIdentifier kAudioUnitProperty_ClassInfoFromDocument kMusicDeviceProperty_DualSchedulingMode
Ресурсы
LogicAUProperties.hрасположенный в Платформе AudioUnit <AudioUnit/LogicAUProperties.h>Список рассылки CoreAudio - разработка Аудиоустройства и Core Audio связали проблемы.
Логические AudioUnit размещают поддержку (logic-au@group .apple.com) - для вопросов, связанных с Логикой как узел AudioUnit.
История версии документа
| Дата | Примечания |
|---|---|
| 30.09.2009 | Обновленное обсуждение Представлений Аудиоустройства |
| 23.04.2009 | Новый документ, которые, как предоставить лучшему пользователю, испытывают с Вашим аудиоустройством в Логическом Studio |