I finally got time to finish part two about options available to play audio or music files using Visual Basic 6.0 and Visual Basic .NET. This article will provide info on two 3rd Party libraries for audio playback with advanced features. They are both feature rich and provide many advanced features. The first is the Bass.Dll Sound System and the second is the FMod.dll Sound System.
Both libraries are Free to use as long as the application’s using them are not commercial or compensated. If its a personal or freeware application they grant you a free license to use them. Bass.dll does have a lower cost option if your making a Shareware app. You should read through the license agreements of each library before using them in your applications.
Note: You can check out part one at this link.
BASS.DLL Audio System Library
This is a great library for pretty much all of your music or audio needs. Bass can play everything from mp3’s, wave’s and mod music to .cda’s and internet streaming. It has alot of source code and examples for Visual Basic and Visual Basic.NET. This library gives you access to the samples that are playing so you can plot your own visualizations or ffts. I had alot of experience with this library a few years ago and even made the original VB.NET api and examples for the author. The .dll is very small in size (Under 100KB) so it won’t bloat your application.
Author Information: BASS is an audio library for use in Windows and Mac OSX software. Its purpose is to provide developers with powerful and efficient sample, stream (MP3, MP2, MP1, OGG, WAV, AIFF, custom generated, and more via add-ons), MOD music (XM, IT, S3M, MOD, MTM, UMX), MO3 music (MP3/OGG compressed MODs), and recording functions. All in a tiny DLL, under 100KB* in size.
On Windows, BASS requires DirectX 3 or above for output, and takes advantage of DirectSound and DirectSound3D hardware accelerated drivers, when available. On OSX, BASS uses CoreAudio for output, and OSX 10.3 or above is recommended. Both PowerPC and Intel Macs are supported.
C/C++, Delphi, Visual Basic, and MASM APIs are provided, with several examples to get you started. .Net and other APIs are also available.
| Main Features|| Main features|
Support for WAV/AIFF/MP3/MP2/MP1/OGG and custom generated samples
Stream any sample data in 8/16/32 bit, with both “push” and “pull” systems
MP3/MP2/MP1/OGG/WAV/AIFF file streaming
|Internet file streaming|
Stream data from HTTP and FTP servers (inc. Shoutcast, Icecast & Icecast2), with proxy server support and adjustable buffering
|Custom file streaming|
Stream data from anywhere using any delivery method, with both “push” and “pull” systems
Support for more than plain stereo, including multi-channel OGG/WAV/AIFF files
Uses the same engine as XMPlay (very accurate, efficient, high quality reproduction), with full support for all effects, filters, stereo samples, DMO effects, etc…
MODs with MP3 or OGG compressed samples (vastly reduced file size with virtually identical sound quality), MO3s are created using the MO3 encoder
Simultaneously use multiple soundcards, and move channels between them
Flexible recording system, with multiple device support and input selection, (WMA encoding & broadcasting via the add-on, and other formats via BASSenc)
|Decode without playback|
Streams and MOD musics can be outputted in any way you want (encoded, written to disk, streamed across a network, etc…)
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
Apply any effects that you want, in any order you want
|DirectX 8 effects Windows only|
Chorus / compressor / distortion / echo / flanger / gargle / parametric eq / reverb, 2 implementation options each with its benefits (including mixing with DSP functions)
|32 bit floating-point decoding and processing|
Floating-point decoding/rendering, DSP, FX, and recording
Play samples/streams/musics in any 3D position, with EAX support
Small buffers for realtime performance, large buffers for stability, automatic and manual buffer updating, configurable threading
Add-on system for additional format support and effects (C/C++ API available on request), dynamic plugin loading system, access to underlying DirectSound objects
BASS is less than 100KB*, so won’t bloat your distribution
As you can see, this is a very feature-rich and flexible sound system. If your interested in Bass.dll then go to the main webpage.
FMOD.dll Music and Sound Effects System