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 Examples
    1. Example 1 - AwxAudioObjExt.cpp
    2. Example 2 - AwxAudioObjExtToolbox.cpp
    3. Example 3 - AwxAudioObjExtMemRecs.cpp
    4. Example 4 - AwxAudioObjExt.h
    5. Example 5 - AwxAudioObjExtToolbox.h
    6. Example 6 - AwxAudioObjExtMemRecs.h
  7. General Guidelines
  8. Adding External AO into AudioworX Package
  9. Building External Audio Object

Starter Kit Developer Guide

  1. Overview
  2. Setting Up the Developer Environment
  3. SKUtility Developer Options
  4. Build AWX External Object
  5. Running Debug Session

xAF Integration User Guide

  1. Support on xAF Integration

Troubleshooting

  1. GTT GUI Issues
  2. AmpSRV2
  3. Installation
  • Audio Object Developer Guide
  • Audio Object Class

2.2.Audio Object Class

This section provides a description of the base class. The tables below show the class members and methods of CAudioObject class that a developer would need to use.

CAudioObject Members

Member Description
m_Owner This is the audio processing class that ‘owns’ this audio object.
m_MemRecPtrs m_MemRecPtrs  is an array which has the address to the start of each record
tObjectProperties This is a struct containing the object properties:

  • Object type
  • Number of audio inputs
  • Number of audio outputs
  • Number of elements
  • Mode
  • Name of the audio object
  • Block ID
  • *AdditionalVars
  • SizeofAdditionalVars
  • NumMemRecords
  • *MemRecordsInfo
m_NumAudioIn This is the number of audio input channels.
m_NumAudioOut This is the number of audio output channels.
m_NumElements This is the number of elements (e.g., filters, taps) per channel.
m_Mode This is the audio object mode. For example, Mode with a value of zero could represent a matrix mixer that operates on linear gains while mode one could represent a mixer that operates on a logarithmic scale.
m_AdditionalSFDConfig This is a pointer (void) to the additional data an object requires for configuration
m_BlockLength This is the block length in samples.
m_Type This is the audio object type, defined in object properties.
m_Name This is the name of the audio object.
m_BlockID This is the ID of the block in a specific signal flow.
m_NumControIn This is the number of control data input channels.
m_NumControlOut This is the number of control data output channels.
m_ControlConfig A list of audio objects and their control input channel numbers, where the current audio object’s control output channels are connected in order. There are two elements for each control output channel:

  • the destination audio object
  • the destination control input channel number

CAudioObject Methods

Method Description
Constructor This sets the following:

  • number of input and output audio channels
  • number of elements
  • object operation mode
  • processing block length
  • sample rate
  • address
  • memory table
assignAdditionalConfig() This dereferences the m_AdditionalVariables pointer to use the additional configuration parameters as needed.
getSubBlockPtr() Retrieves pointer to the start of the subblock in the audio object.
getSubBlockSize() Returns the size (in BYTES) of the sub block indicated by ‘subBlock’ . subBlock is the ID of the state subBlock we want to get the size
init() This initializes all internal variable and parameters. This is called by CAudioProcessing::initAudioObjects().
calc() This function implements the module functionality or algorithm that runs every audio interrupt. Before calling this function m_Inputs & m_Outputs objects to be set by CAudioProcessing object. This is called by CAudioProcessing::calcProcessing() for every frame interval.
tuneXTP() This performs any required operations after the parameter memory is updated. This is called by CAudioProcessing::setAudioObjectTuning() and is triggered by the tuning tool.
setControlOut() This is a helper function for writing a value to one of the object’s outputs.
controlSet() This is called when controls like volume, bass, fade, RPM, and throttle are changed. These variables should live in state memory.
getXmlSVTemplate() This function implements the generation of state variable templates used in the Device Description File on the computer.
getXmlObjectTemplate() This function implements the generation of object templates used in the Device Description File on the computer.
getXmlFileInfo() This function generates the Device.ddf file through the SFD. This function is enabled only when generating Device Description Files on the computer.
getStateMemForLiveStreamingPtr() This function returns the address and length of the state variable for live streaming.
« Audio Object WorkflowAudio Object Configuration »
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.