BASSASIO 1.4 Copyright (c) 2005-2023 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.SLN Visual Studio solution for examples MAKEFILE Makefile for examples X64\ BASSASIO.LIB 64-bit BASSASIO import library CONTEST\ ASIO version of the BASS console example ... DSDTEST\ DSD playback example ... DSPTEST\ ASIO version of the BASS DSP example ... LIST\ Lists ASIO devices ... LIVEFX\ ASIO version of the BASS full-duplex example ... MULTI\ ASIO version of the BASS multiple device example ... RECTEST\ ASIO version of the BASS recording example ... SPEAKERS\ ASIO version of the BASS multi-speaker example ... SYNTH\ ASIO version of the BASS synth example ... 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 ... DSPTEST\ DSP example ... LIST\ List ASIO devices ... LIVEFX\ Full-duplex example ... RECTEST\ Recording example ... SPEAKERS\ Multi-speaker example ... VB\ Visual Basic API and examples... BASSASIO.BAS BASSASIO Visual Basic module DSPTEST\ DSP example ... LIST\ List ASIO devices ... LIVEFX\ Full-duplex example ... MULTI\ Multiple device example ... 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: The Delphi and VB examples may not always be up to date with the C examples, so the latter should be preferred as references if possible. NOTE: To run the example EXEs, first you will need 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, and an SSE-supporting CPU. 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 BASSASIO 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 will 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 will first have to create a compatible import library for it. This is done by using the PEDUMP and BUILDLIB tools that ome 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 version 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 ("try before you buy") products, which must sell for no more than 40 Euros each. Non-shareware products are also permitted, but the product price limit is 10 Euros in that case. The price limit can be raised by purchasing duplicate licences, eg. 2 licences doubles it. If you are an individual (not a corporation) making and selling your own software, this is the licence for you. SINGLE COMMERCIAL: Allows the usage of BASSASIO in one 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, eg. if you are creating products with BASSASIO at 2 sites/locations, then 2 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. 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 in each release, along with the functions/options that are introduced/affected by them. There are other little tweaks and fixes made along the way too. 1.4.2 - 21/7/2023 ----------------- * Support for sample rate conversion with ASIO formats 24-27 (32-bit data with alignment) BASS_ASIO_ChannelSetRate BASS_ASIO_ChannelEnableBASS * Constants added for ASIO formats 24-27 (32-bit data with alignment) BASS_ASIO_FORMAT_32BIT16/18/20/24 (BASS_ASIO_CHANNELINFO formats) * Support for disabling channels after device is started BASS_ASIO_ChannelEnable BASS_ASIO_ChannelReset * ASIO host thread terminates immediately (no longer delayed) when all devices are freed BASS_ASIO_THREAD (BASS_ASIO_Init flag) BASS_ASIO_Free * SSE is required 1.4.1 - 23/6/2021 ----------------- * Support for changing channel processing/joins after device is started BASS_ASIO_ChannelEnable/Mirror/BASS BASS_ASIO_ChannelJoin * BASS "dummy" stream support for input channels BASS_ASIO_ChannelEnableBASS * Fix for bug in volume ramping without resampling BASS_ASIO_ChannelSetVolume 1.4 - 7/5/2019 -------------- * First available device initialization option BASS_ASIO_Init * BASS channel support BASS_ASIO_ChannelEnableBASS CONTEST/DSDTEST/DSPTEST/LIVEFX/MULTI/SPEAKERS examples updated * RMS level retrieval BASS_ASIO_LEVEL_RMS (BASS_ASIO_ChannelGetLevel flag) * Volume changes are ramped BASS_ASIO_ChannelSetVolume * Dither when converting from floating-point to integer BASS_ASIO_FORMAT_DITHER (BASS_ASIO_ChannelSetFormat flag) * Pausing of all input or output channels at once BASS_ASIO_ChannelPause * Device locking to prevent access by other threads BASS_ASIO_Lock * Resetting of joined channels' settings BASS_ASIO_RESET_JOINED (BASS_ASIO_ChannelReset flag) * All input channels are processed before any output channels when multiple threads are enabled BASS_ASIO_Start * Negative return values from ASIO channel callbacks are treated as 0 ASIOPROC 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.