Un4seen.Bass.MiscBaseDSP
Un4seen.Bass.MiscDSP_PeakLevelMeter
Namespace: Un4seen.Bass.Misc
Assembly: Bass.Net (in Bass.Net.dll) Version: 2.4.17.5
The DSP_PeakLevelMeter type exposes the following members.
Name | Description | |
---|---|---|
DSP_PeakLevelMeter |
Creates a new instance of the PeakMeterLevel DSP, not assigning the DSP yet.
| |
DSP_PeakLevelMeter(Int32, Int32) |
Creates a new instance of the PeakMeterLevel DSP, which already assigns the DSP (Start will be called automatically).
|
Name | Description | |
---|---|---|
AVG |
Returns the current AVG value (average, in linear voltage steps, between 0...32768...N) of the signal.
| |
AVG_dBV |
Returns the current AVG value (average, in dBV) of the signal.
| |
CalcRMS |
Gets or Sets if the AVG and RMS values should be calculated.
| |
ChannelBitwidth |
This property returns the actual bitwidth of the sample data of the channel (e.g. 8, 16, 32).
(Inherited from BaseDSP.) | |
ChannelHandle |
Gets or Sets the channel that the DSP is being applied to.
(Inherited from BaseDSP.) | |
ChannelInfo |
Gets the BASS_CHANNELINFO of the assigned ChannelHandle.
(Inherited from BaseDSP.) | |
ChannelNumChans |
This property returns the actual number of channles of the sample data BASS is using with the channel (e.g. 1=mono, 2=stereo, etc.).
(Inherited from BaseDSP.) | |
ChannelSampleRate |
This property returns the actual sample rate in Hz of the sample data BASS is using with the channel (e.g. 44100).
(Inherited from BaseDSP.) | |
DSPHandle |
Returns the actual DSP handle (or 0, if the DSP has not been assigned to the channel).
(Inherited from BaseDSP.) | |
DSPPriority |
Sets or reassigns the priority of the DSP, which determines it's position in the DSP chain - DSPs with higher priority are called before those with lower.
(Inherited from BaseDSP.) | |
DSPProc |
Returns the actual DSPPROC (callback delegate) which is used by the DSP.
(Inherited from BaseDSP.) | |
IsAssigned |
Is the DSP assigned to an active channel? (=assigned, =not assigned).
(Inherited from BaseDSP.) | |
IsBypassed |
Returns if the DSP is currently bypassed (=bypass).
(Inherited from BaseDSP.) | |
LevelL |
Returns the current level signal (in linear voltage steps) of the left-channel as an integer value (between 0 and 32768, or above, if a floating-point channel was selected).
| |
LevelL_dBV |
Returns the current level signal of the left-channel as a dBV value (between -Infinity and 0.0 - or above, if a floating-point channel was selected).
| |
LevelR |
Returns the current level signal (in linear voltage steps) of the right-channel as an integer value (between 0 and 32768, or above, if a floating-point channel was selected).
| |
LevelR_dBV |
Returns the current level signal of the right-channel as a dBV value (between -Infinity and 0.0 - or above, if a floating-point channel was selected).
| |
PeakHoldLevelL |
Returns the peak level signal (in linear voltage steps) of the left-channel since the last channel change or ResetPeakHold.
| |
PeakHoldLevelL_dBV |
Returns the peak level signal of the left-channel as a dBV value (between -Infinity and 0.0 - or above, if a floating-point channel was selected) since the last channel change or ResetPeakHold.
| |
PeakHoldLevelR |
Returns the peak level signal (in linear voltage steps) of the right-channel since the last channel change or ResetPeakHold.
| |
PeakHoldLevelR_dBV |
Returns the peak level signal of the right-channel as a dBV value (between -Infinity and 0.0 - or above, if a floating-point channel was selected) since the last channel change or ResetPeakHold.
| |
RMS |
Returns the current RMS value (root mean square, in voltage steps, between 0...32768...N) of the signal.
| |
RMS_dBV |
Returns the current RMS value (root mean square, in dBV) of the signal.
| |
UpdateTime |
Gets or Sets the update time in seconds (default is 0.1 = 100ms, max. is 60 seconds) which is the timespan being used to measure RMS and PeakLevels and is also used for Notification trigges.
| |
User |
Gets or Sets the value of the user instance data to pass to the callback function (see DSPCallback(Int32, Int32, IntPtr, Int32, IntPtr)).
(Inherited from BaseDSP.) |
Name | Description | |
---|---|---|
Dispose |
Implement IDisposable.
(Inherited from BaseDSP.) | |
DSPCallback |
User defined DSP callback function which does the peak level calculation. Not for direct use in your application!
(Overrides BaseDSPDSPCallback(Int32, Int32, IntPtr, Int32, IntPtr).) | |
Finalize |
Finalization code.
(Inherited from BaseDSP.) | |
OnBypassChanged |
This method will be called every time the SetBypass(Boolean) method had been called.
(Inherited from BaseDSP.) | |
OnChannelChanged |
Resets the PeakHoldLevelL and PeakHoldLevelR values when a channel change occurred.
(Overrides BaseDSPOnChannelChanged.) | |
OnStarted |
This method will be called every time the Start method had been called.
(Inherited from BaseDSP.) | |
OnStopped |
This method will be called every time the Stop method had been called.
(Inherited from BaseDSP.) | |
RaiseNotification |
Fires the Notification event.
(Inherited from BaseDSP.) | |
ResetPeakHold |
Resets the PeakHoldLevelL and PeakHoldLevelR values when a channel change occurred.
| |
SetBypass |
Sets the Bypass mode.
(Inherited from BaseDSP.) | |
Start |
Assigns the DSP to the channel (actually starts using the DSP).
(Inherited from BaseDSP.) | |
Stop |
Stops (removes) the DSP from the channel.
(Inherited from BaseDSP.) | |
ToString |
Returns the name of the DSP.
(Overrides BaseDSPToString.) |
Name | Description | |
---|---|---|
Notification |
Event handler used to notify that the DSP has processed some data.
(Inherited from BaseDSP.) |
The DSP automatically converts 8-, 16- or 32-bit sample data accordingly.
Use Start to assign the DSP to the channel. Use Stop to remove the DSP (you can (re)assign the DSP at any time again by calling Start). Changing the DSPPriority when the DSP is already assigned will automatically reassign the DSP.
Use the ChannelHandle property to change the channel assignment at any time. If the DSP has already been assigned, the DSP will immediately be reassigned to the new channel.
The peak levels (Left channel=LevelL and Right channel=LevelR) are integer values between 0 (-inf.dB) and 32768 (0dB) - or higher, if the channel is floating-point. Use the LevelL_dBV and LevelR_dBV properties, if you want these integer peak values already converted into dBV values (to a reference voltage of 1.0).
private DSP_PeakLevelMeter _plm; public delegate void UpdatePeakMeterCallback(); ... Bass.BASS_RecordInit(-1); _recHandle = Bass.BASS_RecordStart(44100, 2, BASSFlag.BASS_DEFAULT, _recProc, 0); ... // set up a ready-made DSP (here the PeakLevelMeter) _plm = new DSP_PeakLevelMeter(_recHandle, 1); _plm.CalcRMS = true; _plm.Notification += new EventHandler(UpdatePeakMeterDisplay); ... private void UpdatePeakMeterDisplay(object sender, EventArgs e) { this.progressBarRecL.Value = _plm.LevelL; this.progressBarRecR.Value = _plm.LevelR; this.labelRMS.Text = String.Format( "RMS: {0:#00.0} dB - AVG: {1:#00.0} dB - Peak: {2:#00.0} dB", _plm.RMS_dBV, _plm.AVG_dBV, Math.Max(_plm.PeakHoldLevelL_dBV, _plm.PeakHoldLevelR_dBV) ); }