Waveform Capture: (7) "Capture buffer" special effects

Source: Internet
Author: User

In Windows XP, there are two "capture buffer" effects that can be implemented as kernel-level implementations:

• Echo Cancellation (AEC)

• Noise Reduction

Special effects in other DMOs, such as those used for buffer rendering, are not supported.

The DirectSoundFullDuplexCreate8 function and the Idirectsoundcapture8::createcapturebuffer method are all illustrated with one Dsceffectdesc The structure body array (the array used to represent the desired effect) addresses the DSCBUFFERDESC structure as a parameter. However, if you want to use Microsoft's implementation you have to create a capture buffer via DirectSoundFullDuplexCreate8. You must also use this function to create a secondary sound buffer. If you don't, the effect won't work.

In the dwflags member of each DSCEFFECTDESC structure, you must specify Dscfx_lochardware or Dscfx_locsoftware. In most cases, specify Dscfx_locsoftware. If the effect is not feasible at the specified location, then the buffer creation fails.

Effects are identified by Guiddscfxclass members in the DSCEFFECTDESC structure. Specifying DSCFX_MS_AEC or Dscfx_ms_ns in a Guiddscfxinstance member can get Microsoft's software implementation. To use other possible implementations of the hardware or software, you must obtain the class and instance GUIDs from the manufacturer.

After the buffer is created, you can get the special effects information through the Idirectsoundcapturebuffer8::getfxstatus method.

AEC is primarily for applications that are used for voice communication at one end to the other. The signal emitted by a region microphone is output from the Horn of Area B and is received by a microphone in area B. If you do not use AEC, the signal will be sent back to area A. Cause the echo may also be called clamour. AEC overcomes this problem by monitoring input signals in each zone (the input signal is adjusted for the entire room environment as a consideration, excluding it from the signal currently being exported). It also eliminates any sound that is played by the local computer (such as music), so that the voice transmitted over the network will not be disturbed.

AEC is implemented at the operating system kernel level and uses this effect globally. It has the following limitations:

• There can only be one capture buffer at a time using AEC.

• If other applications are capturing or playing audio, then AEC cannot be started. If AEC is already started, any other application to capture sound will use AEC.

• The kernel mixer handles sounds in 16-bit mono format regardless of the format of the input or output. As a result, sound quality may be reduced. Capturing sound in a 16-bit mono format is designed to reduce the use of the processor.

• When AEC is being used, the hardware echoes on all DirectSound devices fail, which can affect the experience of other users sharing the device.

· The evolution of the AEC parameter will affect all running applications.

· AEC cannot be used with some combination of sound cards and drivers. Applications should always provide users with the ability to turn off AEC.

• The main operating system version of Windows XP SP1,AEC is not able to work with USB speakers or on machines that provide capture and rendering of different clock frequencies.

• If the sound environment changes, the appropriate filter will take 2 seconds or more time to adjust.

• Any late reverberation that appears above 128 milliseconds after the original sound signal will not be removed from the signal being output.

On the capture buffer with this effect, the IDirectSoundCaptureFXAec8 interface is used to set and get the AEC parameter. You can also allow noise to fill. (a method used to prevent the creation of complete silence in the absence of new data in the output signal)

Noise-reduction effects can only be used if the AEC is enabled. Noise capture eliminates frequent background noise, such as fan noise. Use the IDirectSoundCaptureFXNoiseSuppress8 interface to set and get parameters.

Get the special effects interface from the capture buffer object by using the Idirectsoundcapturebuffer8::getobjectinpath method.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.