BASS.NET API for the Un4seen BASS Audio LibraryUn4seen.Bass.Misc NamespaceBASS.NET API for the Un4seen BASS Audio Library
This namespace provides miscellaneous classes for various purposes. E.g. rendering and drawing of wave form graphics or spectrul visuals, broadcasting and streaming support, a DSP and an Encoder framework, as well as a wave writer class. The classes defined are BASS.NET API specific and does not relate to any native BASS functionality. Just for your benefit.
Classes

  ClassDescription
Public classCode exampleBaseDSP
Base class for all user defined DSP classes (e.g. DSP_PeakLevelMeter, DSP_Gain or your own DSP implementations).
Public classCode exampleBaseEncoder
Base class for all encoder implementation classes (e.g. EncoderLAME, EncoderWMA or EncoderOGG).
Public classBPMCounter
Provides general methods to detect beats live in an audio signal and to calculate the resulting Beats Per Minute (BPM).

Requires: bass.dll - available @ www.un4seen.com.

Public classCode exampleBroadCast
Enables streaming of audio content to the internet.
Public classBroadCastEventArgs
EventArgs class to be passed as the second parameter of a Notification event handler.
Public classCode exampleDSP_BufferStream
Stream Buffer DSP (to clone a BASS stream's current sample data to a decoding stream).
Public classDSP_Gain
Gain DSP (amplification).
Public classDSP_IIRDelay
IIR Delay Filter DSP.
Public classDSP_Mono
Mono DSP (converts a stereo signal to a mono signal).
Public classDSP_Pan
Stereo Panning DSP (balance).
Public classCode exampleDSP_PeakLevelMeter
Peak Level Meter DSP.
Public classDSP_SoftSaturation
Soft Saturation DSP (a waveshaper).
Public classDSP_StereoEnhancer
Stereo Enhancer DSP (actually also removes mono signals).
Public classCode exampleDSP_StreamCopy
Stream Copy DSP (to clone any BASS stream).
Public classEncoderACM
Encoder class implementation for the Windows Audio Compression Manager using Un4seen.Bass.AddOn.Enc.
Public classCode exampleEncoderAIFF
Encoder class implementation for the Audio Interchange File Format (AIFF) using raw PCM sample data with no real encoder.
Public classEncoderCMDLN
Encoder class implementation for any generic Command-Line encoder tool using Un4seen.Bass.AddOn.Enc.
Public classEncoderFAAC
Encoder class implementation for AAC encoding using faac.exe.
Public classEncoderFHGAACplus
Encoder class implementation for FHG Winamp AACplus encoding using "fhgaacenc.exe" (the command-line encoder using the following Winamp DLLs: "enc_fhgaac.dll", "nsutil.dll", "libsndfile-1.dll" and "libmp4v2.dll").
Public classEncoderFLAC
Encoder class implementation for FLAC encoding using "flac.exe".
Public classEncoderLAME
Encoder class implementation for MP3 encoding using lame.exe.
Public classEncoderMP3
Encoder class implementation for any generic MP3 command-line encoder tool using Un4seen.Bass.AddOn.Enc.
Public classEncoderMP3S
Encoder class implementation for MP3 encoding using the Fraunhofer IIS mp3 Surround command line encoder mp3sEncoder.exe.
Public classEncoderMPC
Encoder class implementation for MusePack MPC encoding using "mppenc.exe" resp. "mpcenc.exe".
Public classEncoderNeroAAC
Encoder class implementation for the Nero Digital AAC encoder using "neroAacEnc.exe".
Public classEncoderOGG
Encoder class implementation for OGG-Vorbis encoding using "oggenc2.exe".
Public classEncoderOPUS
Encoder class implementation for Opus Interactive Audio Codec encoding using "opusenc.exe".
Public classEncoderQTAAC
Encoder class implementation for the QuickTime AAC encoder using "qtaacenc.exe".
Public classEncoderTooLAME
Encoder class implementation for MPEG Audio Layer II (MP2) encoding using "tooLAME.exe".
Public classEncoderTwoLAME
Encoder class implementation for MP2 TwoLAME encoding using "twolame.exe".
Public classCode exampleEncoderWAV
Encoder class implementation for the RIFF WAVE format using raw PCM sample data with no real encoder.
Public classEncoderWavPack
Encoder class implementation for WavPack encoding using "wavpack.exe".
Public classEncoderWinampAACplus
Encoder class implementation for Winamp AACplus encoding using "enc_aacPlus.exe" (the command-line encoder using the following Winamp DLLs: "enc_aacplus.dll", "nscrt.dll" and "libmp4v2.dll").
Public classCode exampleEncoderWMA
Encoder class implementation for the Windows Media Audio codec using Un4seen.Bass.AddOn.Wma.
Public classCode exampleHiPerfTimer
Provides a Win32 high performance counter.
Public classICEcast
ICEcast streaming parameter class. To be used when creating an instance of the BroadCast class.
Public classSHOUTcast
SHOUTcast streaming parameter class. To be used when creating an instance of the BroadCast class.
Public classCode exampleStreamingServer
Base class for all streaming server classes (e.g. SHOUTcast or ICEcast).
Public classVisuals
Provides general visualisation methods to generate spectrum analyzers etc.

Requires: bass.dll - available @ www.un4seen.com

Public classWaveForm
Provides general methods to generate a stereo or mono channel waveform graphic for an audio file or a decoding stream handle.

The WaveForm will be drawn as two independent stereo envelopes, a combined dual mono envelope or a mono envelope.

Requires: bass.dll - available @ www.un4seen.com

Public classWaveFormVolumePoint
The class represents a volume point to be used to draw a volume curve within the wave form.
Public classWaveFormWaveBuffer
The internal class containing the rended wave buffer data (in frames).
Public classCode exampleWaveWriter
Provides general methods to save an audio stream to a file in the WAVE file format.

Supported bit resolutions are 8-bit, 16-bit, 24-bit and 32-bit. Supported sample rates are 8000, 11025, 22050, 44100, 48000 or 96000 Hz. Multi channel wave files are also supported. Use 1=mono, 2=stereo...

Public classWMAcast
Windows Media Streaming (WMAcast) streaming parameter class. To be used when creating an instance of the BroadCast class.
Structures

  StructureDescription
Public structureWaveFormWaveBufferLevel
This structure represents one element of a data array. It consists of a left and right value (both in the range of -32768 and +32767).
Interfaces

  InterfaceDescription
Public interfaceIBaseEncoder
Defines a generalized encoder class interface that a BaseEncoder class must implement.
Public interfaceIStreamingServer
Defines a generalized streaming server class interface that a StreamingServer class must implement.
Delegates

  DelegateDescription
Public delegateBaseEncoderENCODEFILEPROC
Public delegateBroadCastEventHandler
Definition of the Notification event handler.
Public delegateWAVEFORMPROC
Callback which will be invoked during RenderStart(Int32, Boolean) to give feedback about the current rendering progress.
Enumerations

  EnumerationDescription
Public enumerationBaseEncoderBITRATE
List of supported encoding bitrates (kbps).
Public enumerationBaseEncoderSAMPLERATE
List of supported broadcast sample rates.
Public enumerationBroadCastBROADCASTSTATUS
List of all possible broadcast status.
Public enumerationBroadCastEventType
Types of event that has occurred with the BroadCast class.
Public enumerationEncoderFHGAACplusFHGProfile
The FHG AAC profile to use (only for CBR mode).
Public enumerationEncoderLAMELAMEATH
LAME ATH control options.
Public enumerationEncoderLAMELAMEMode
The general LAME encoding mode (stereo, joint stereo, mono etc.).
Public enumerationEncoderLAMELAMENOASM
--noasm: Assembly optimizations options.
Public enumerationEncoderLAMELAMEQuality
Encoding quality (default is Quality).
Public enumerationEncoderLAMELAMEReplayGain
ReplayGain analysis.
Public enumerationEncoderLAMELAMEVBRQuality
-V: Quality setting for VBR (default is VBR_Q4).
Public enumerationEncoderMP3SMP3SVBRQuality
-m: Quality setting for VBR.
Public enumerationEncoderMPCMPCPreset
Profile options, Quality preset. To be used with MPC_Preset.
Public enumerationEncoderOGGOGGConverter
The OGG resampling engine mode (Best, Medium. Fast).
Public enumerationEncoderOPUSOPUSDownmix
The OPUS downmix mode (None, Mono, Stereo).
Public enumerationEncoderOPUSOPUSFramesize
The OPUS framesize in milliseconds (2.5, 5, 10, 20, 40, or 60).
Public enumerationEncoderOPUSOPUSMode
The OPUS bitrate encoding mode (VBR, CVBR, CBR).
Public enumerationEncoderQTAACQTMode
The QuickTime encoding mode (CBR, ABR, CVBR, TVBR).
Public enumerationEncoderQTAACQTQuality
The QuickTime quality engine mode (Fast, Normal, High).
Public enumerationEncoderTooLAMETOODeEmphMode
The general tooLAME encoding mode (stereo, joint stereo, mono etc.).
Public enumerationEncoderTooLAMETOOMode
The general tooLAME encoding mode (stereo, joint stereo, mono etc.).
Public enumerationEncoderTooLAMETOOPsycModel
The psychoacoustic model tooLAME should use (-1 to 4, default is 1).
Public enumerationEncoderTwoLAMETWODeEmphMode
The general TwoLAME encoding mode (stereo, joint stereo, mono etc.).
Public enumerationEncoderTwoLAMETWOMode
The general TwoLAME encoding mode (stereo, joint stereo, mono etc.).
Public enumerationEncoderTwoLAMETWOPsycModel
The psychoacoustic model TwoLAME should use (-1 to 4, default is 3).
Public enumerationStreamingServerSTREAMINGERROR
List of all possible streaming errors.
Public enumerationWaveFormBEATDRAWTYPE
Beat Drawing Type: Defines how beat positions should be drawn with the WaveForm:
NoneNo beat positions will be drawn at all.
TopThe beat position lines will be drawn at the top of the WaveForm.
BottomThe beat position lines will be drawn at the bottom of the WaveForm.
MiddleThe beat position lines will be drawn in the middle of the WaveForm.
TopBottomThe beat position lines will be drawn at the top and bottom of the WaveForm.
Public enumerationWaveFormMARKERDRAWTYPE
Marker Drawing Type: Defines how markers should be drawn with the WaveForm - any combination of the following flags:
NoneNo markers will be drawn at all.
LineThe markers lines will be drawn.
NameThe name of the markers will be drawn.
NamePositionAlternateWhen marker names are drawn, they are drawn in an alternate way (top, bottom, top, bottom, ...) - default.
NamePositionTopWhen marker names are drawn, they are drawn on top of the marker lines.
NamePositionBottomWhen marker names are drawn, they are drawn on top of the marker lines.
NamePositionMiddleWhen marker names are drawn, they are drawn in the middle of the marker lines.
Public enumerationWaveFormVOLUMEDRAWTYPE
Volume Curve Drawing Type: Defines how the volume curve should be drawn with the WaveForm:
NoneNo volume curve will be drawn at all.
SolidA solid volume curve will be drawn over the WaveForm.
DottedA dotted volume curve will be drawn over the WaveForm.
NoPointsAdd this flag to suppress drawing the volume point markers (eg. Solid | NoPoints).
Public enumerationWaveFormWAVEFORMDRAWTYPE
WaveForm Drawing Type: Defines how the wave form should be drawn:
StereoTwo independent wave forms will be drawn (upper=left channel, lower=right channel).
MonoOne combined mono wave form will be drawn.
DualMonoTwo overloaded mono wave forms (left, right both centered) will be drawn.
HalfMonoOne combined mirrored half mono wave form will be drawn (using ColorLeft, 0db at bottom).
HalfMonoFlippedOne combined mirrored half mono wave form will be drawn (using ColorLeft, 0db at top).