BASS is an audio library for use in software on several platforms. Its purpose is to provide developers with powerful and efficient sample, stream (MP3, MP2, MP1, OGG, WAV, AIFF, custom generated, and more via OS codecs and add-ons), MOD music (XM, IT, S3M, MOD, MTM, UMX), MO3 music (MP3/OGG compressed MODs), and recording functions. All in a compact DLL that won't bloat your distribution.
C/C++, Delphi, and Visual Basic APIs are provided, with several examples to get you started. .NET and other APIs are also available.
Internet file streaming Stream data from HTTP(S) and FTP servers (including Shoutcast, Icecast & Icecast2), with IDN and proxy server support and adjustable buffering
Custom file streaming Stream data from anywhere using any delivery method, with both "push" and "pull" systems
OS codecs ACM, Media Foundation, CoreAudio, Android media codec support for additional audio formats
Multi-channel streaming Support for more than plain stereo, including multi-channel OGG/WAV/AIFF files
MOD music Uses the same engine as XMPlay (very accurate, efficient, high quality reproduction), with full support for all effects, filters, stereo samples, DMO effects, etc.
MO3 music MOD music with MP3 or OGG compressed samples (vastly reduced file size with virtually identical sound quality), MO3s are created using the MO3 encoder
Multiple outputs Simultaneously use multiple soundcards, and move channels between them
Decode without playback Streams and MOD musics can be outputted in any way you want: encoded, written to disk, streamed across a network, etc.
Speaker assignment Assign streams and MOD musics to specific speakers to take advantage of hardware capable of more than plain stereo (up to 4 separate stereo outputs with a 7.1 soundcard)
High precision synchronization Synchronize events in your software to the streams and MOD musics, synchronize playback of multiple channels together
Custom DSP Apply any effects that you want, in any order you want, to individual streams or the final output mix
32 bit floating-point decoding and processing Floating-point decoding/rendering, DSP/FX, and recording
3D sound Play samples/streams/musics in any 3D position
Flexible Small buffers for realtime performance, large buffers for stability, seamless buffer length adjustment, automatic and manual buffer updating, configurable threading, configurable SRC quality
Expandable Add-on system for additional format support and effects (C/C++ API available on request), dynamic plugin loading system
Licensing
BASS 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 BASS in it for free. Otherwise, one of the following licences will be required.
The "shareware" licence allows the usage of BASS in an unlimited number of your shareware ("try before you buy") products, which must sell for no more than €40 each. Non-shareware products are also permitted, but the product price limit is €10 in that case. The price limit can be raised by purchasing duplicate licences (for the same platform), 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.
PurchaseSingle Commercial licence: €950 (iOS or Android: €475)
The "single commercial" licence allows the usage of BASS in one commercial product.
The "unlimited commercial" licence allows the usage of BASS in an unlimited number of your commercial products. This licence applies to a single site/location at which products are being developed with BASS.
note that all prices are quoted in Euros, but payment can also be made in several other currencies
These licences are on a per-platform basis. There is a 40% reduction on each additional platform (excluding the iOS/Android Single Commercial specials), eg. Win32 and macOS Shareware licences would cost €200 (125+75) instead of €250.
In all cases there are no royalties to pay and you can use future BASS updates without further cost. Reselling/sublicensing is not permitted. Your products must be end-user products, eg. not components used by other products. Please note that these licences only cover your own software, not the publishing of other's software. If you have got any questions, please get in touch.
An extension enabling the playback of MIDI files and custom event sequences, using SF2 and SFZ soundfonts to provide the sounds, including support for SF2PACK and SF3 compressed soundfonts. MIDI input is also supported. A couple of SF2 soundfonts are available here and here.
An extension enabling the playback of DSD (Direct Stream Digital) data in DSDIFF and DSF containers, and WavPack when used with the BASSWV add-on. Includes raw DSD and DSD-over-PCM output options.
An extension enabling the playback of ALAC (Apple Lossless Audio Codec) encoded files. The ALAC format is supported as standard by BASS via the OS's codecs on macOS and iOS (also Windows 10).
An extension enabling the playback of WMA files and streams, and also WMA encoding and broadcasting. Requires the Windows Media Format modules, which come installed with Windows Media Player or can be installed separately (wmfdist.exe). WMA playback is supported as standard by BASS on Windows Vista and above.
An extension providing the ability to mix together multiple BASS channels, with resampling and matrix mixing features. Also provides the ability to split a BASS channel into multiple channels.
An extension that allows BASS channels to be encoded using command-line encoders with STDIN support (LAME/OGGENC/etc), or ACM codecs (on Windows) or CoreAudio codecs (on macOS/iOS), or user-provided encoders. Also features streaming of encoded data to clients directly or via Shoutcast and Icecast servers, and PCM WAV/AIFF file writing.
An extension based on the FAAD2 decoder, enabling the playback of AAC/MP4 encoded files and streams, including AAC+ Shoutcast streams. The AAC/MP4 format is supported as standard by BASS via the OS's codecs on macOS and iOS (also Android 5 and Windows 7 and updated Vista).
.NET API for BASS and all of the add-ons. Can be used with both C# and VB, with several examples included. Includes support for .NET Framework 4.8 and .NET Core 6. The documentation can be viewed online: here.