BASSWMA 2.4 Copyright (c) 2002-2021 Un4seen Developments Ltd. All rights reserved. Files that you should have found in the BASSWMA package ======================================================= BASSWMA.TXT This file BASSWMA.DLL BASSWMA module BASSWMA.CHM BASSWMA documentation X64\ BASSWMA.DLL 64-bit BASSWMA module C\ C/C++ API and examples... BASSWMA.H BASSWMA C/C++ header file BASSWMA.LIB BASSWMA import library BASSWMA.SLN Visual Studio solution for examples MAKEFILE Makefile for examples MAKEFILE.IN Makefile helper macros X64\ BASSWMA.LIB 64-bit BASSWMA import library NETRADIO\ Internet streaming example ... ... WMALIVE\ WMA live broadcast example ... BIN\ Precompiled examples NETRADIO.EXE WMALIVE.EXE VB\ Visual Basic API and examples... BASSWMA.BAS BASSWMA Visual Basic module WMALIVE\ WMA live broadcast example ... DELPHI\ Delphi API and examples... BASSWMA.PAS BASSWMA Delphi unit WMALIVE\ WMA live broadcast example ... NOTE: To run the example EXEs, first you will have to copy BASSWMA.DLL and BASS.DLL into the same directory as them. NOTE: To build the examples, you will need to copy the BASS API into the same directory as the BASSWMA API. What's the point? ================= BASSWMA is an extension to the BASS audio library, enabling the playback of WMA encoded files and streams. The audio tracks of WMV files can also be played. WMA file encoding and network broadcasting functions are also provided. NOTE: The WMA format is supported as standard by BASS on Windows Vista and above, so BASSWMA is not required for WMA playback there. Requirements ============ BASS 2.4 is required. The Windows Media Format modules (v9 or above) are also required to be installed on the user's system. They are installed with Windows Media player, so will already be on most users' systems, but they can also be installed separately (WMFDIST.EXE is available from the BASS website). Using BASSWMA ============= The plugin system (see BASS_PluginLoad) can be used to add WMA support to the standard BASS stream (and sample) creation functions. Dedicated WMA stream creation functions are also provided by BASSWMA. The usage information in the BASS.TXT file (from the BASS package) is also applicable to BASSWMA and other add-ons. TIP: The BASSWMA.CHM file should be put in the same directory as the BASS.CHM file, so that the BASSWMA documentation can be accessed from within the BASS documentation. DRM === DRM support is available for commercial users that have a DRM stub library from Microsoft. Get in touch for details (email: bass@un4seen.com). Latest Version ============== The latest versions of BASSWMA & BASS can be found at the BASS website: www.un4seen.com Licence ======= BASSWMA is free to use with BASS. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASSWMA 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 BASSWMA. YOU USE BASSWMA ENTIRELY AT YOUR OWN RISK. Usage of BASSWMA indicates that you agree to the above conditions. All trademarks and other registered names contained in the BASSWMA package are the property of their respective owners. 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 BASSWMA interface are listed. 2.4.5.13 - 3/8/2021 ------------------- * Encoding with WMA voice codec BASS_WMA_ENCODE_VOICE (BASS_WMA_EncodeOpen/File/Network/Publish flags) BASS_WMA_ENCODE_VOICE_MIXED (BASS_WMA_EncodeOpen/File/Network/Publish flags) * Prebuffering determined by BASS_CONFIG_NET_PREBUF_WAIT config option BASS_CONFIG_WMA_PREBUF *removed* * Fix to prevent non-WMA URLs being checked twice via plugin system BASS_StreamCreateURL 2.4.5.1 - 4/4/2016 ------------------ * Support for average bitrate retrieval BASS_ATTRIB_BITRATE 2.4.5 - 20/10/2014 ------------------ * Multi-channel encoding BASS_WMA_EncodeOpen/File/Network/Publish * BASS channel encoding BASS_WMA_ENCODE_SOURCE (BASS_WMA_EncodeOpen/File/Network/Publish flag) BASS_WMA_EncodeGetRates * Asynchronous encoding BASS_WMA_ENCODE_QUEUE (BASS_WMA_EncodeOpen/File flag) 2.4.4 - 17/9/2010 ----------------- * Codec information retrieval BASS_TAG_WMA_CODEC (BASS_ChannelGetTags/BASS_WMA_GetTags type) * PCM "encoding" support BASS_WMA_ENCODE_PCM (BASS_WMA_EncodeOpen/File/Network/Publish flag) * Support for Unicode URLs via plugin system BASS_StreamCreateURL 2.4.3 - 30/10/2009 ------------------ * Tag retrieval without a stream BASS_WMA_GetTags * WPL playlist processing BASS_CONFIG_NET_PLAYLIST (BASS_SetConfig option) * Detection of a publishing point initialization problem BASS_WMA_EncodeOpenPublish/Multi 2.4.2 - 11/5/2009 ----------------- * DOWNLOADPROC support for streams in ASX files (requires BASS 2.4.3) BASS_StreamCreateURL * WMV audio playback is now optional BASS_CONFIG_WMA_VIDEO (BASS_SetConfig option) * NETRADIO example added 2.4 - 2/4/2008 -------------- * Support for buffered user file streaming BASS_WMA_StreamCreateFileUser * 64-bit file positioning BASS_WMA_StreamCreateFile/Auth * Separate sync for WMA mid-stream tags (instead of BASS_SYNC_META) BASS_SYNC_WMA_META (BASS_ChannelSetSync type) * Mid-stream tag retrieval BASS_TAG_WMA_META (BASS_ChannelGetTag type) * Tag name/value delimiter changed to '=' BASS_TAG_WMA (BASS_ChannelGetTags type) BASS_TAG_WMA_META (BASS_ChannelGetTags type) * ASX processing determined by BASS_CONFIG_NET_PLAYLIST config option BASS_CONFIG_WMA_ASX *removed* * Prebuffering is disabled by default BASS_CONFIG_WMA_PREBUF (BASS_SetConfig option) * Callback "user" parameters changed to pointers BASS_WMA_StreamCreateFileUser BASS_WMA_EncodeOpen / WMENCODEPROC BASS_WMA_EncodeSetNotify / CLIENTCONNECTPROC 2.3.0.3 - 30/7/2007 ------------------- * Support for internet stream connection status retrieval BASS_FILEPOS_CONNECTED (BASS_StreamGetFilePosition mode) 2.3.0.2 - 16/11/2006 -------------------- * WMA standard/Pro encoding specification BASS_WMA_ENCODE_STANDARD/PRO (BASS_WMA_EncodeOpen/File/Network/Publish flags) * 24-bit encoding BASS_WMA_ENCODE_24BIT (BASS_WMA_EncodeOpen/File/Network/Publish flag) * BASS file handling BASS_CONFIG_WMA_BASSFILE (BASS_SetConfig option) 2.3.0.1 - 12/6/2006 ------------------- * ASX file processing BASS_CONFIG_WMA_ASX (BASS_SetConfig option) 2.3 - 21/5/2006 --------------- * Plugin system support for URLs BASS_StreamCreateURL * Encoding support for 8-bit and 32-bit floating-point data BASS_WMA_EncodeOpen/File/Network/Publish * Multi-bitrate encoding/broadcasting BASS_WMA_EncodeOpenNetworkMulti BASS_WMA_EncodeOpenPublishMulti * Tag setting in ANSI and Unicode (as well as UTF-8) BASS_WMA_EncodeSetTag * Header tag setting automatically ends when encoding begins BASS_WMA_EncodeSetTag BASS_WMA_ENCODE_TAGS (BASS_WMA_EncodeOpen/etc flag) *removed* * Retrieval of encoder IWMWriter interface BASS_WMA_GetWMObject (replaces BASS_WMA_GetIWMReader) * Dynamic loading of WMVCORE (v9 or above required) * CONTEST C example removed (didn't really add anything) * Reduced DLL size 2.2 - 2/10/2005 --------------- * Support for new plugin system (BASS_PluginLoad) * WMA tag type defined BASS_TAG_WMA (BASS_StreamGetTags type) * File verification option BASS_CONFIG_WMA_PRECHECK (BASS_SetConfig option) * Internet stream prebuffering delay option BASS_CONFIG_WMA_PREBUF (BASS_SetConfig option) * Internet stream buffering retrieval BASS_FILEPOS_WMA_BUFFER (BASS_StreamGetFilePosition mode) * Internet stream authentication BASS_StreamCreateFileAuth * The data is no longer copied when streaming from memory BASS_WMA_StreamCreateFile * Unicode support in publishing encoder BASS_UNICODE (BASS_WMA_EncodeOpenPublish flag) * Support for BASS_CONFIG_NET_TIMEOUT config option 2.1 - 28/11/2004 ---------------- * Multi-channel encoding BASS_WMA_EncodeOpen/File/Network/Publish BASS_WMA_EncodeGetRates * Tags are now in UTF-8 form BASS_StreamGetTags BASS_WMA_EncodeSetTags * User file stream support BASS_WMA_StreamCreateFileUser * Support for server-side playlists BASS_SYNC_WMA_CHANGE (BASS_ChannelSetSync type) * More efficient WMA file processing with WM9 (and above) modules installed * Support for the improved "mixtime" sync system (allows custom looping) * C/C++ examples reorganised, with makefiles & VC++ projects 2.0 - 31/10/2003 ---------------- * Support for multi-channel WMA BASS_WMA_StreamCreateFile * Syncing integrated into BASS.DLL BASS_WMA_ChannelSetSync *removed* * Encoding to a custom callback function BASS_WMA_EncodeOpen WMENCODEPROC * Encoding to a publishing point on a Windows Media server BASS_WMA_EncodeOpenPublish * Synchronizer for completed download BASS_SYNC_DOWNLOAD (BASS_ChannelSetSync type) * Force channels to use software mixing BASS_SAMPLE_SOFTWARE (BASS_WMA_StreamCreateFile flag) * Support for Unicode filenames BASS_UNICODE (BASS_WMA_StreamCreateFile/BASS_WMA_EncodeOpenFile flag) 1.8 - 9/3/2003 -------------- * More integrated with BASS.DLL BASS_WMA_ErrorGetCode *removed* (use BASS_ErrorGetCode) BASS_WMA_StreamFree *removed* (use BASS_StreamFree) BASS_WMA_StreamPlay *removed* (use BASS_StreamPlay) BASS_WMA_StreamGetLength *removed* (use BASS_StreamGetLength) BASS_WMA_StreamGetTags *removed* (use BASS_StreamGetTags) BASS_WMA_ChannelGetPosition *removed* (use BASS_ChannelGetPosition) BASS_WMA_ChannelSetPosition *removed* (use BASS_ChannelSetPosition) BASS_WMA_ChannelRemoveSync *removed* (use BASS_ChannelRemoveSync) * 32-bit floating-point channels BASS_SAMPLE_FLOAT (BASS_WMA_StreamCreateFile flag) DSPTEST example updated * Speaker assignment BASS_SPEAKER_FRONT (BASS_WMA_StreamCreateFile flag) BASS_SPEAKER_REAR " BASS_SPEAKER_CENLFE " BASS_SPEAKER_REAR2 " BASS_SPEAKER_FRONTLEFT " BASS_SPEAKER_FRONTRIGHT " BASS_SPEAKER_REARLEFT " BASS_SPEAKER_REARRIGHT " BASS_SPEAKER_CENTER " BASS_SPEAKER_LFE " BASS_SPEAKER_REAR2LEFT " BASS_SPEAKER_REAR2RIGHT " * VBR and lossless encoding BASS_WMA_ENCODE_RATES_VBR (BASS_WMA_EncodeGetRates flag) BASS_WMA_EncodeOpenFile/Network * Script (mid-stream tags) encoding BASS_WMA_ENCODE_SCRIPT (BASS_WMA_EncodeOpenNetwork flag) * File length and download progress retrieval support BASS_StreamGetFilePosition * Support for normal stopping & resuming at same place BASS_ChannelStop * Normal stalling (automatic stop/resume) BASS_ACTIVE_STALLED (BASS_ChannelIsActive flag) * Support for Windows message sync callbacks BASS_SYNC_MESSAGE (BASS_WMA_ChannelSetSync flag) * VB version of DSPTEST example added * Improved documentation - integrated with BASS, search option added 1.7 - 27/10/2002 ---------------- * Exact length available once whole file has been played BASS_WMA_StreamGetLength * Client connection notification BASS_WMA_EncodeSetNotify CLIENTCONNECTPROC WMALIVE example updated * Multi-instance support MULTI example added 1.6 - 13/6/2002 --------------- * Connected clients count retrieval BASS_WMA_EncodeGetClients * 64-bit lengths and positions BASS_WMA_StreamGetLength BASS_WMA_ChannelGetPosition BASS_WMA_ChannelSetPosition BASS_WMA_ChannelSetSync * Streaming via IStream objects BASS_WMA_StreamCreateFile * Auto-freeing WMA streams BASS_STREAM_AUTOFREE (BASS_WMA_StreamCreateFile flag) * Normal playback resuming after seeking while paused BASS_ChannelResume * WMA stream freeing integrated into BASS.DLL BASS_StreamFree BASS_Free 1.5a - 8/5/2002 --------------- * Encoding BASS_WMA_EncodeGetRates BASS_WMA_EncodeOpenFile BASS_WMA_EncodeOpenNetwork BASS_WMA_EncodeGetPort BASS_WMA_EncodeSetTag BASS_WMA_EncodeWrite BASS_WMA_EncodeClose BASS_WMA_ENCODE_TAGS (BASS_WMA_EncodeOpenFile/Network flag) * Loading from a memory location BASS_WMA_StreamCreateFile * Faster file verification BASS_WMA_StreamCreateFile * Protected file error code BASS_ERROR_WMA_LICENSE (BASS_WMA_StreamCreateFile error code) 1.5 - 16/4/2002 --------------- * First release Bug reports, Suggestions, Comments, Enquiries, etc ================================================== If you have any of the aforementioned please visit the BASS forum at the website.