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.