Contents | < Browse | Browse >


AHI Audio System


Release 4


Martin Blom <>


Retargetable Audio for AmigaOS

(When refering to this software, the correct term is 'AHI audio system' or
just 'AHI', never 'Audio Hardware Interface'!  'AHI' is pronounced
'atchii', as in 'God bless!'.)

Starting with version 3 of AHI, the MC68000 processor is also supported.
However, many features are lacking:

* 16 bit samples are converted to 8 bits before they are mixed.
* No HiFi mixing routines are available.
* No stereo samples
* No DSP effects are available.
* Less precision on some calculations
* Slower

As you can see, this version is very primitive.  Get yourself an
accelerator!  I cannot guarantee that I will continue to support this
processor in the future.

Quick overview

* Driver based

Each supported sound card is controlled by a library-based audio driver.
For a 'dumb' sound card, a new driver should be written in a few hours.
For a 'smart' sound card, it is possible to utilize an on-board DSP, for
example, to maximize performance and sound quality.  For sound cards with
own DSP but little or no memory, it is possible to use the main CPU to mix
channels and do the post-processing with the DSP.  Available today are
drivers for

* Aura (sampler only)
* Delfina
* DraCo Motion
* Paula (8/14/14c bit)
* Prelude
* Toccata
* Wavetools
* 8SVX (mono) and AIFF/AIFC (mono & stereo) sample render

* Fast, powerful mixing routines (yeah, right... haha)

The device's mixing routines mix 8- or 16-bit signed samples, both mono and
stereo, located in Fast-RAM and outputs 16-bit mono or stereo (with stereo
panning if desired) data, using any number of channels (as long as 'any'
means less than 128...).  Tables can be used speed the mixing up
(especially when using 8-bit samples).  The samples can have any length
(including odd) and can have any number of loops.

* Support for non-realtime mixing

By providing a timing feature, it is possible to create high- quality
output even if the processing power is lacking, by saving the output to
disk, for example as an IFF AIFF or 8SXV file.  There are so-called HiFi
mixing routines that can be used, which use linear interpolation and gives
32 bit output.

* Audio database

Uses ID codes, much like Screenmode IDs, to select the many parameters that
can be set.  The functions to access the audio database are not too
different from those in 'graphics.library'.  The device also features a
requester to get an ID code from the user.

* Both high- and low-level protocol

By acting both like a device and a library, AHI gives the programmer a
choice between full control and simplicity.  The device API allows several
programs to use the audio hardware at the same time, and the AUDIO:
dos-device driver makes playing and recording sound very simple for both
the programmer and user.

* Future Compatible

When AmigaOS gets device-independent audio worth it's name, it should not
be too difficult to write a driver for AHI, allowing applications using
'ahi.device' to automatically use the new OS interface.  At least I hope


AmigaOS release 2.
MC68020 processor strongly recommended.


Aminet, for example:



Free.  But if you use it in a shareware of commercial product, I would like
a registered copy for me and each of the audio driver authors (this is
merely a wish, you don't have to do it if you don't think we deserve it). 
See the AHI User's Guide for more information.


Copyright 1994-1997 Martin Blom.
Freely distributable in unmodified form.
See the AHI User's Guide for more information.