BASSASIO 1.3
Copyright (c) 2005-2014 Un4seen Developments Ltd. All rights reserved.

Files that you should have found in the BASSASIO package
========================================================
BASSASIO.TXT    This file
BASSASIO.DLL    BASSASIO module
BASSASIO.CHM    BASSASIO documentation
X64\
  BASSASIO.DLL    64-bit BASSASIO module
C\              C/C++ API and examples...
  BASSASIO.H      BASSASIO C/C++ header file
  BASSASIO.LIB    BASSASIO import library
  BASSASIO.DSW    Visual C++ 6 workspace for examples
  BASSASIO.SLN    Visual C++ 2005 (and above) workspace for examples
  MAKEFILE        Makefile for all examples
  X64\
    BASSASIO.LIB    64-bit BASSASIO import library
  CONTEST\        ASIO version of the BASS console example
    CONTEST.C
    CONTEST.DSP
    CONTEST.VCPROJ
    MAKEFILE
  DSDTEST\        DSD playback example
    DSDTEST.C
    DSDTEST.DSP
    DSDTEST.VCPROJ
    MAKEFILE
  DSPTEST\        ASIO version of the BASS DSP example
    DSPTEST.C
    DSPTEST.RC
    DSPTEST.DSP
    DSPTEST.VCPROJ
    MAKEFILE
  LIST\           Lists ASIO devices
    LIST.C
    LIST.DSP
    LIST.VCPROJ
    MAKEFILE
  LIVEFX\         ASIO version of the BASS full-duplex example
    LIVEFX.C
    LIVEFX.RC
    LIVEFX.DSP
    LIVEFX.VCPROJ
    MAKEFILE
  MULTI\          ASIO version of the BASS multiple device example
    MULTI.C
    MULTI.RC
    MULTI.DSP
    MULTI.VCPROJ
    MAKEFILE
  RECTEST\        ASIO version of the BASS recording example
    RECTEST.C
    RECTEST.RC
    RECTEST.DSP
    RECTEST.VCPROJ
    MAKEFILE
  SPEAKERS\       ASIO version of the BASS multi-speaker example
    SPEAKERS.C
    SPEAKERS.RC
    SPEAKERS.DSP
    SPEAKERS.VCPROJ
    MAKEFILE
  SYNTH\          ASIO version of the BASS synth example
    SYNTH.C
    SYNTH.DSP
    SYNTH.VCPROJ
    MAKEFILE
  BIN\            Precompiled examples
    CONTEST.EXE
    DSDTEST.EXE
    DSPTEST.EXE
    LIST.EXE
    LIVEFX.EXE
    MULTI.EXE
    RECTEST.EXE
    SPEAKERS.EXE
    SYNTH.EXE
DELPHI\         Delphi API and examples...
  BASSASIO.PAS    BASSASIO Delphi unit
  CONTEST\        Console example
    CONTEST.DPR
  DSPTEST\        DSP example
    DSPTEST.DPR
    MAINFORM.PAS
    MAINFORM.DFM
  LIVEFX\         Full-duplex example
    LIVEFX.DPR
    UNIT1.PAS
    UNIT1.DFM
  SPEAKERS\       Multi-speaker example
    SPEAKERS.DPR
    UNIT1.PAS
    UNIT1.DFM
VB\             Visual Basic API and examples...
  BASSASIO.BAS    BASSASIO Visual Basic module
  DSPTEST\        DSP example
    PRJDSPTEST.VBP
    FRMDSPTEST.FRM
    MODDSPTEST.BAS
  LIST\           List ASIO devices
    PRJLIST.VBP
    FRMLIST.FRM
  LIVEFX\         Full-duplex example
    PRJLIVEFX.VBP
    FRMLIVEFX.FRM
    MODLIVEFX.BAS
  MULTI\          Multiple device example
    PRJMULTI.VBP
    PRJMULTI.FRM
    PRJDEVICE.FRM
    MODMULTI.BAS

NOTE: You may need to "Unblock" the BASSASIO.CHM file in its "Properties" to
      view it on Windows 7. The documentation can also be viewed online at
      the BASSASIO website.

NOTE: To run the example EXEs, first you will have to copy BASSASIO.DLL into
      the same directory as them. You will also need BASS.DLL, which can be
      download from the BASS website. BASSDSD.DLL is also required by the
      DSDTEST example.

NOTE: To build the examples, you will need to copy the BASS API into the
      same directory as the BASSASIO API. BASSDSD is also required by the
      DSDTEST example.


What's the point?
=================
BASSASIO is basically a wrapper for ASIO drivers, with the addition of channel
joining and sample format/rate conversion.


Requirements
============
BASSASIO requires a soundcard with ASIO drivers installed. It also makes use
of SSE optimizations, but is fully functional without them.

The BASS library is not required by BASSASIO, but BASS can of course be used
for decoding purposes, to apply DSP/FX, etc.


Using BASSASIO
==============
C/C++, Visual Basic and Delphi APIs and example projects are provided. To use
BASS with another language you will first have to convert the header file. Or
you could use LoadLibrary and GetProcAddress.

There is no guarantee that all future BASSASIO versions will be compatible
with all previous versions, so your program should use BASS_ASIO_GetVersion
to check the version that is loaded. This also means that you should
put BASSASIO.DLL in the same directory as your program (not just somewhere
in the path), to avoid the possibility of a wrong version being loaded.

If you are updating your software from a previous BASSASIO version, then
you should check the "History" section (below), to see if any of the
functions that you are using have been affected by a change.

To use BASSASIO with Borland C++ Builder, you'll first have to create a
Borland C++ Builder import library for it. This is done by using the
IMPLIB tool that comes with Borland C++ Builder. Simply execute this:

	IMPLIB BASSASIOBCB.LIB BASSASIO.DLL

... and then use BASSASIOBCB.LIB in your projects to import BASSASIO.

To use BASSASIO with LCC-Win32, you'll first have to create a compatible
import library for it. This is done by using the PEDUMP and BUILDLIB
tools that come with LCC-Win32. Run these 2 commands:

	PEDUMP /EXP BASSASIO.LIB > BASSASIOLCC.EXP
	BUILDLIB BASSASIOLCC.EXP BASSASIOLCC.LIB

... and then use BASSASIOLCC.LIB in your projects to import BASSASIO.

For the BASSASIO functions that return strings (char*), VB users should use
the VBStrFromAnsiPtr function to convert the returned pointer into a VB
string.


Latest Version
==============
The latest versions of BASSASIO can be found at the BASSASIO website:

	www.un4seen.com


Licence
=======
BASSASIO is free for non-commercial use. If you are a non-commercial entity
(eg. an individual) and you are not making any money from your product
(through sales/advertising/etc), then you can use BASSASIO in it for free.
If you wish to use BASSASIO in commercial products, then please also see the
next section.

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASSASIO IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD
LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASSASIO. YOU USE
BASSASIO ENTIRELY AT YOUR OWN RISK.

Usage of BASSASIO indicates that you agree to the above conditions.

ASIO is a trademark of Steinberg Media Technologies GmbH. All other
trademarks and registered names contained in the BASSASIO package
are the property of their respective owners.

Commercial licensing
--------------------
BASSASIO is available for use in your commercial products. The licence
types available are as follows:

SHAREWARE: Allows the usage of BASSASIO in an unlimited number of your
shareware products, which must sell for no more than 40 Euros each.
If you are an individual (not a corporation) making and selling your
own software (and its price is within the limit), this is the licence
for you.

SINGLE COMMERCIAL: Allows the usage of BASSASIO in a single commercial
product.

UNLIMITED COMMERCIAL: Allows the usage of BASSASIO in an unlimited number
of your commercial products. This licence is on a per site basis. So
if your company has two sites that use BASSASIO, then two licences are
required.

Please note the products must be end-user products, eg. not components
used by other products. 

These licences only cover your own software, not the publishing of
other's software. If you publish other's software, its developers (or
the software itself) will need to be licensed to use BASSASIO.

In all cases there are no royalties to pay, and you can use future BASSASIO
updates without further cost. One licence covers one person or entity and
is not transferable.

These licences do not allow reselling/sublicensing of BASSASIO. For example,
if a product is a development system, the users of said product are not
licensed to use BASSASIO in their productions; they will need their own
licences.

If the standard licences do not meet your requirements, or if you have
any questions, please get in touch (email: bass@un4seen.com).

Visit the BASSASIO website for the latest pricing:

	www.un4seen.com


History
=======
These are the major (and not so major) changes at each version stage.
There are of course bug fixes and other little improvements made along
the way too! To make upgrading simpler, all functions affected by a
change to the BASS interface are listed.

1.3.1 - 17/12/2014
------------------
* DSD support
	BASS_ASIO_SetDSD
	BASS_ASIO_FORMAT_DSD_LSB/MSB (BASS_ASIO_ChannelSetFormat formats)
	DSDTEST example added

1.3 - 17/4/2013
---------------
* Multiple threads for parallel ASIOPROC processing
	BASS_ASIO_Start
* Access to an driver's "future" function
	BASS_ASIO_Future
* Support for conversion to/from ASIO sample format 27 (32 bit data with 24 bit alignment)
	BASS_ASIO_ChannelSetFormat

1.2.1 - 26/9/2012
-----------------
* Checking whether a sample rate is supported
	BASS_ASIO_CheckRate
* Level retrieval support with drivers that clear the buffers
	BASS_ASIO_ChannelGetLevel

1.2 - 22/3/2012
---------------
* Improved sample rate conversion (16 point)
	BASS_ASIO_ChannelSetRate
* Custom joined channel order
	BASS_ASIO_JOINORDER (BASS_ASIO_Init flag)
	BASS_ASIO_ChannelJoin
* Support for unregistered drivers
	BASS_ASIO_AddDevice
* Unicode driver info
	BASS_ASIO_SetUnicode
	BASS_ASIO_GetDeviceInfo
* Fixed level retrieval with drivers that use a single buffer
	BASS_ASIO_ChannelGetLevel

1.1 - 17/8/2011
---------------
* Driver host thread control
	BASS_ASIO_THREAD (BASS_ASIO_Init flag)
	BASS_ASIO_INFO (initflags member)
* Detection of newly installed drivers
	BASS_ASIO_GetDeviceInfo
* Duplicate driver entries removed from device list
	BASS_ASIO_GetDeviceInfo
* Input resampling bug fix

1.0.1 - 23/10/2009
------------------
* Notification of rate changes and reset requests
	BASS_ASIO_SetNotify
* 64-bit version introduced

1.0 - 11/6/2008
---------------
* First release


Bug reports, Suggestions, Comments, Enquiries, etc...
=====================================================
If you have any of the aforementioned please visit the BASS forum at
the website.