Техническое примечание TN2291

AUInstrumentBase изменяется для Льва Mac OS X

Это Техническое примечание перечисляет изменения, внесенные в AUInstrumentBase классы для Льва Mac OS X. При создании Аудиоустройства на Льве Mac OS X, которые используют эти классы предприятия коммунального обслуживания, необходимо будет обновить проект соответственно.

Введение
AUInstrumentBase
SynthNote
SynthElement
SynthGroupElement
История версии документа

Введение

Папка AUInstrumentBase является частью инструментов Xcode Developer и расположена в Developer/Extras/CoreAudio/AudioUnits/AUPublic/AUInstrumentBase. Эта папка содержит много классов, используемых при создании Инструментов Аудиоустройства.

Много изменений были внесены в эти файлы предприятия коммунального обслуживания для Льва Mac OS X, как перечислено:

AUInstrumentBase

Новые методы

  • AUScope & Parts()

  • AUElement* GetPart(AudioUnitElement inElement)

  • virtual AUScope* GetScopeExtended(AudioUnitScope inScope)

  • virtual void CreateExtendedElements()

Эти методы позволяют подклассам использовать объем Части, представляющий определенные инструменты, патчи и задающий связанный с AUInstrumentBase.

Удаленные методы

  • MidiControls* GetControls( MusicDeviceGroupID inChannel)

Уведомления MIDI обрабатываются через методы, вызванные непосредственно на надлежащем SynthGroupElement экземпляр.

SynthNote

SynthElement

Удаленные методы

  • GetName()

  • SetName()

SynthElement получен из AUElement который уже имеет эти методы, и они являются невиртуальными. Переопределение на этом уровне могло привести к противоречивым результатам.

MidiControls

MidiControls был продвинут, чтобы быть подклассом нового вызванного базового класса MIDIControlHandler который определяет полезный интерфейс для работы с событиями MIDI. Константы были перемещены в заголовок базового класса.

SynthGroupElement

Новые методы

  • virtual NoteOn()

  • NoteFastReleased()

  • ChannelMessage()

Удаленные методы

  • GetOutputBus()

  • SetOutputBus()

Для многоканального инструмента не целесообразно понятие единственного индекса шины. Это состояние лучше обрабатывается подклассами.

Другие изменения

  • Render() берет дополнительный inAbsoluteSampleFrame и AUScope & параметры - Демонстрационный кадр необходим, чтобы позволить примечанию отслеживать его точное место в его временной шкале воспроизведения. AUScope позволяет различным примечаниям воспроизводить через различные выходные шины.

  • NoteOff() был сделан virtual.



История версии документа


ДатаПримечания
29.11.2011

Новый документ, описывающий изменения, внесенные в файлы предприятия коммунального обслуживания, которые являются частью папки AUInstrumentBase для Льва Mac OS X.