Standard Effects
This topic is an introduction to the sound effects provided with Microsoft DirectSound.
The following effects are covered.
- Chorus
- Compression
- Distortion
- Echo
- Environmental Reverberation
- Flange
- Gargle
- Parametric Equalizer
- Waves Reverberation
Chorus
Chorus is a voice-doubling effect created by echoing the original sound with a slight delay and slightly modulating the delay of the echo.
This effect is represented by the ChorusEffect class. Its parameters are contained in the EffectsChorus structure.
Compression
Compression is a reduction in the fluctuation of a signal above a certain amplitude.
This effect is represented by the CompressorEffect class. Its parameters are contained in the EffectsCompressor structure.
Distortion
Distortion is achieved by adding harmonics to the signal in such a way that, as the level increases, the top of the waveform becomes squared off or clipped.
This effect is represented by the DistortionEffect class. Its parameters are contained in the EffectsDistortion structure.
Echo
An echo effect causes sounds to be repeated after a fixed delay, usually at a diminished volume. As the repeated sounds are fed back into the mix, they are repeated again.
This effect is represented by the EchoEffect class. Its parameters are contained in the EffectsEcho structure.
Environmental Reverberation
DirectX supports environmental reverberation in accordance with the Interactive 3-D Audio, Level 2 (I3DL2) specification, published by the Interactive Audio Special Interest Group.
The Microsoft DirectX environmental reverb effect is an implementation of the listener properties in the I3DL2 specification. Source properties are not supported.
Sounds reaching the listener have three temporal components.
- The direct path is the audio signal that goes straight from the sound source to the listener, without bouncing off any surface. There is therefore only one direct path signal.
- Early reflections are the audio signals that reach the listener after one or two reflections off surfaces such as the walls, floor, and ceiling. If a signal is the result of the sound hitting only one wall on its way to the listener, it is called a first-order reflection. If it bounces off two walls before reaching the listener, it is called a second-order reflection. Humans can typically perceive individual reflections only of the first or second order.
- Late reverberation, or simply reverb, consists of the combined lower-order reflections, usually a dense succession of echoes of diminishing intensity.
The combination of early reflections and late reverberation is sometimes called the room effect.
Reverb properties include the following:
- Attenuation of the early reflections and late reverberation.
- Rolloff factor, or the rate at which reflected signals become attenuated with distance. The rolloff factor for the direct path is managed by the DirectSound listener.
- Reflections delay, which is the interval between the arrival of the direct-path signals and the arrival of the first early reflections.
- Reverb delay, which is the interval between the first of the early reflections and the onset of late reverberation.
- Decay time, which is the interval between the onset of late reverberation and the time when its intensity has been reduced by 60 decibels (dB).
- Diffusion, which is proportional to the number of echoes per second in the late reverberation. Depending on the implementation, the density can change as the reverberation decays. In DirectX, the application can control this property by setting a percentage of the range allowed by the implementation.
- Density, which is is proportional to the number of resonances per hertz in the late reverberation. Lower densities produce hollower sounds like those found in small rooms. In DirectX, the application can control this property by setting a percentage of the range allowed by the implementation.
Reverb properties are represented by an Interactive3DLevel2ReverbEffect class, and the parameters of the environment are contained in an EffectsInteractive3DLevel2Reverb structure.
DirectSound supports many sets of default parameters, or presets, that describe the reverb properties of audio environments ranging from mountains to sewer pipes. Most applications can simply choose one of these environments by using the Interactive3DLevel2ReverbEffect.Preset property.
To set and retrieve custom properties, use the Interactive3DLevel2ReverbEffect.AllParameters property.
Flange
Flange, also called flanger, is an echo effect in which the delay between the original signal and its echo is very short and varies over time. The result is sometimes referred to as a sweeping sound. The term flange originated with the practice of grabbing the flanges of a tape reel to change the speed.
This effect is represented by the FlangerEffect class. Its parameters are contained in the EffectsFlanger structure.
Gargle
The gargle effect modulates the amplitude of the signal.
This effect is represented by the GargleEffect class. Its parameters are contained in the EffectsGargle structure.
Parametric Equalizer
A parametric equalizer amplifies or attenuates signals of a given frequency.
Parametric equalizer effects for different pitches can be applied in parallel by setting multiple instances of the effect on the same buffer. In this way, the application can have tone control similar to that provided by a hardware equalizer.
This effect is represented by the ParamEqEffect class. Its parameters are contained in the EffectsParamEq structure.
Waves Reverberation
The Waves reverberation effect is intended for use with music. The Waves reverberation DirectX Media Object (DMO) is based on the Waves MaxxVerb technology, which is licensed to Microsoft.
This effect is represented by the WavesReverbEffect class. Its parameters are contained in the EffectsWavesReverb structure.