Harman Logo
AUDIOWORX
  • Home
  • Documentation
  • Videos
  • Release Notes
  • Login
Harman Logo
AUDIOWORX
  • Home
  • Documentation
  • Videos
  • Release Notes
  • Login
Harman Logo
AUDIOWORX
  • Home
  • Documentation
  • Videos
  • Release Notes
  • Login
  • Getting Started
  • User Guides
  • Developer Guides

Table of Content

  • 20

Audio Object Developer Guide

  1. Purpose of this Document
  2. Overview
    1. Audio Object Workflow
    2. Audio Object Class
  3. Audio Object Configuration
    1. Design Time Configuration
      1. Metadata
    2. Advanced Design Time Configuration
      1. Audio Object Memory
  4. Basic Features and APIs
  5. Advanced Features and APIs
    1. Switch Processing State
    2. Debug and Monitoring
    3. Background Method
  6. Audio object Example Object
    1. AO Example - AwxAudioObjExt.cpp
    2. AO Example - AwxAudioObjExtToolbox.cpp
    3. AO Example - AwxAudioObjExtMemRecs.cpp
    4. AO Example - AwxAudioObjExt.h
    5. AO Example - AwxAudioObjExtToolbox.h
    6. AO Example - AwxAudioObjExtMemRecs.h
  7. General Guidelines
  8. Adding External AO into AudioworX Package
  9. Building External Audio Object

Starter Kit Developer Guide

  1. Overview
  2. Assembling and Configuring Starter Kit Components
  3. Setting Up the Developer Environment
  4. SKUtility Developer Options
  5. Build AWX External Object
  6. Running Debug Session

xAF Integration User Guide

  1. Purpose of this Document

Troubleshooting

  1. GTT Installation
  2. GTT GUI Issues
  3. AmpSRV2

      6.Audio object Example Object

      • Audio Object Developer Guide
      • Audio object Example Object

      A new audio object will implement the following functions depending on functionality. See the header files for the associated classes for detailed comments.

      In the class which inherits CAudioObject – ie: CYourAudioObject.cpp

      Abstract Methods (required implementation)

      xUInt32 CAudioObject::getSize() const

      Virtual Methods (optional implementation – depending on object features). This is not a complete list but contains the major virtual methods.

      void      CAudioObject::init()
      void      CAudioObject::calc(xFloat32** inputs, xFloat32** outputs)
      void      CAudioObject::tuneXTP(xSInt32 subblock, xSInt32 startMemBytes, xSInt32 sizeBytes, xBool shouldAttemptRamp)
      void      CAudioObject::controlSet(xSInt32 index, xFloat32 value)
      xAF_Error CAudioObject::controlSet(xSInt32 index, xUInt32 sizeBytes, const void * const pValues)
      void      CAudioObject::assignAdditionalConfig()
      xInt8*    CAudioObject::getSubBlockPtr(xUInt16 subBlock)
      xSInt32   CAudioObject::getSubBlockSize(xUInt16 subBlock)
      

      In the class which inherits CAudioObjectToolbox – ie: CYourAudioObjectToolbox.cpp

      const CAudioObjectToolbox::tObjectDescription*          CAudioObjectToolbox::getObjectDescription()
      const CAudioObjectToolbox::tModeDescription*            CAudioObjectToolbox::getModeDescription(xUInt32 mode)
      const CAudioObjectToolbox::additionalSfdVarDescription* CAudioObjectToolbox::getAdditionalSfdVarsDescription(xUInt32 index)
      xAF_Error                                               CAudioObjectToolbox::getObjectIo(ioObjectConfigOutput* configOut)
      xUInt32                                                 CAudioObjectToolbox::getXmlSVTemplate(tTuningInfo* info, xInt8* buffer, xUInt32 maxLen)
      xUInt32                                                 CAudioObjectToolbox::getXmlObjectTemplate(tTuningInfo* info, xInt8* buffer, xUInt32 maxLen)
      xUInt32                                                 CAudioObjectToolbox::getXmlFileInfo(tTuningInfo* info, xInt8* buffer, xUInt32 maxLen)
      void                                                    CAudioObjectToolbox::createStaticMetadata()
      void                                                    CAudioObjectToolbox::createDynamicMetadata(ioObjectConfigInput& configIn, ioObjectConfigOutput& configOut)
      

      In the class which inherits CMemoryRecordProperties – ie: CYourAudioObjectMemRecs.cpp

      xUInt8 CMemoryRecordProperties::getMemRecords(xAF_memRec* memTable, xAF_memRec& scratchRecord, xInt8 target, xInt8 format)

      External Audio Objects

      The following audio objects acts as an example external audio object that shall be used as a development starting point when user requires to add a custom audio object to the extendable audio framework. It is intended to help third parties port their algorithms to AWX.

      AwxAudioObjExt

      • It has a functionality of Gain audio object which supports two modes i.e Gain and GainWithControl.
      • It supports dynamic additional configuration “Max Gain per channel“.
      • It supports “Float array” memory which can be accessed through  additional configuration variable  “Abstracted Tuning  Memory” which can be  used for the different functionalities which can be modified by the developer.

      GainExample

      • It is a simple object and  has a functionality of Gain audio object which supports two modes i.e Gain and GainWithControl.
      • It supports Block Control feature through an additional configuration variable.

      Source code for AwxAudioObjExt  and GainExample audio object can be found in HarmanAudioworX installation folder. The path for the source code is
      Program Files\Harman\HarmanAudioworX\ext-reference-algorithms\external\inc
      Program Files\Harman\HarmanAudioworX\ext-reference-algorithms\external\src

      « Background MethodAO Example - AwxAudioObjExt.cpp »
      Suggest Edit
      • Careers
      • Contact
      • Sitemap
      • News

      © 2025 HARMAN International. All Rights Reserved. Privacy Policy | Cookies | Terms of Use

      If you are using a screen reader and are having problems using this website, please call (800) 645-7484 for assistance.