ASX Version4.10.32
asi

ASX Reference Manual

Table of contents

Introduction

ASX is an audio API designed to work on both Windows and Linux operating systems. It is "high level", in that unlike say the Windows WAVE or Direct Sound APIs, which are "buffer based", it deals with audio files.

At a lower level, ASX supports the AudioScience HPI API (Windows and Linux) as well as WAVE and DirectSound (Windows) and ALSA (Linux).

The API is a C function library. This means it can be used from many languages including C, C++, C#, Java, Visual Basic and Delphi.

asi

Installation and Usage

Windows XP and Windows 7

  1. Make sure you have an AudioScience WAVE,WDM or Combo driver installed and working with at least one audio adapter. The driver install will install both ASX32.DLL which implements the ASX interface documented here and ASICTRL.EXE which is a Win32 application that uses the ASX interface to control ASI adapters.
  2. Obtain the ASX SDK executable file from the applications section of the AudioScience web site (<http://www.audioscience.com/>). The file is named ASX_SDK_WIN_XXXXX.EXE, where XXXXX is the version number.
  3. Run the ASX_SDK_WIN_XXXXX.EXE application to install asx.h, code examples and asx32.lib.

Linux

ToDo

Compiling applications that use the ASX interface

The various interface files required to interface with asx32.dll are typically installed in c:\Program Files\AudioScience\ASX\lib directory.

Applications can make use of asx.h and asxstring.h header files and should link against asx.32lib.

Debugging ASX calls under Windows

ASX ships with the capability of outputting debug information to a Third Party debug viewer.

DbgView should be used to display the debug messages. It is available from Microsoft and the simplest method of locating it is to just Google "DbgView". Download and install this on the PC you wish to test on.

The appliction being debugged should call ASX_System_SetMessageLogging to turn on error logging. Setting the error level to asxMSG_LOGGING_DEBUG will record all ASX calls and output other information as well.

ASX Object Model

In ASX, the underlying audio hardware is grouped into "adapters". An adapter is typically a soundcard (i.e. AudioScience ASI6114).

Each adapter has a "mixer". The mixer contains source and destination "nodes". A node represents a point at which audio comes in (source) or leaves (destination) the mixer.

Source nodes include:

Destination nodes include:

Nodes are attached to "controls" which contain functionality to process the audio streams passing through them. Examples of controls include:

The following diagram shows how ASX models a simple sound card:

asi

Coding Conventions

Method names

Variable names use Hungarian notation, i.e.

Return conventions All functions return ASX_ERROR which equals 0 on success and non-zero on error.