DC-DSP Components is a Component Pack for Delphi 6/7 that is able to do various DSP Transformations on 8/16/24/32 Bit PCM integer and 32Bit PCM Float Buffers. Some Filters, like 3DSound and the FFT (which is used by the Equalizer, Spectrum Analyzer, ...) is optimized to use SSE/3DNow and extended 3DNow instructions.
Included are also Wrapper components for all MS DMO Filters (available since DX8), Winamp2 Visual and DSP and two (easy to use) Spectrum and Waveform Analyzer Components. (Note that MS DMOs can only handle 2 Channels and 16Bit integer or 32 Bit Float Streams)
available Filters:
- TDCDMOChorus
- An easy to use Wrapper Component for Microsofts DMO Chorus Filter.
- TDCDMOCompressor
- An easy to use Wrapper Component for Microsofts DMO Compressor Filter.
- TDCDMODistortion
- An easy to use Wrapper Component for Microsofts DMO Distortion Filter.
- TDCDMOEcho
- An easy to use Wrapper Component for Microsofts DMO Echo Filter.
- TDCDMOFlanger
- An easy to use Wrapper Component for Microsofts DMO Flanger Filter.
- TDCDMOGargle
- An easy to use Wrapper Component for Microsofts DMO Gargle Filter.
- TDCDMOI3DL2Reverb
- An easy to use Wrapper Component for Microsofts DMO I3DL2 Reverb Filter.
- TDCDMOParamEQ
- An easy to use Wrapper Component for Microsofts DMO Parametric Equalizer Filter.
- TDCDMOWavesReverb
- An easy to use Wrapper Component for Microsofts DMO WavesReverb Filter.
- TDCAmplify
- Class to Amplify Audiodata. Amplification can be done seperate on each Channel. 32 Bit Float Data is tuned to use 3DNow/SSE instructions. When using a SSE capable CPU, make sure that Data is aligned on a 16 Byte boundary.
- TDCBandpass
- DSP Component to cutoff a certain Frequency Range. Each Channel can seperate cutoff the Frequency range.
- TDCBitrateconverter
- DSP Filter to convert from one BitRate to another.
- TDCChannelOrder
- Component to Swap Channels to any needed Position.
- TDCCompressor
- DSP Compressor Filter.
- TDCDownMix
- DSP Component to Mix every Channel together to one and then copy that Value to every Channel.
- TDCDynamicAmplify
- DSP Filter to automiticaly keep the Volum eat a specific maximum Value. If the Volume is silent for a specific Time, the Amplification is raised to a specific Value. If the current Amplification would break the Range of the Audiodata, the Amplification is faded out to the maximum possible Amplification.
- TDCEchoDelay
- DSP Echo/Delay Filter that supprts multiple Echos.
- TDCEqualizer
- Equalizer Component that can Equalize from 1 (2 Point FFT) up to 4096 Bands (8192 Point FFT). Each Channel can be equalized seperate.
- TDCFFT
- Fast Fourier Transform Component that can do Transformations up to a Size of 8192 Samples (Power of 2 only!). Optimized for SSE, 3DNow, 3DNowExt and CPUs that only supports FPU instructions. This Routine chooses automatically the fastest one.
- TDCFlanger
- Component to flange Audiodata. Every Channel can be seperate controlled.
- TDCHighpass
- DSP Component that cuts Frequencys from a specified Frequency to half of the Sampling Rate. Each Channel can be seperate Processed with different Cutoff Values.
- TDCLowpass
- DSP Component that cuts Frequencys from 0 to a specified Frequency. Each Channel can be seperate Processed with different Cutoff Values.
- TDCNotch
- DSP Component that cuts Frequencys in a Widerange of specified Frequency. Each Channel can be seperate Processed with different Cutoff Values.
- TDCPhaseInvert
- Phase Invert Component that inverts specific Channels.
- TDCPhaser
- Class for phasing Amplify Audiodata. Phasing can be done seperate on each Channel.
- TDCPitchScale
- Component to inc/decrease the Pitch of an Audio Buffer without changing the Tempo. The Buffersize isnīt affected, only the Pitch of the Voice is changed. Not that the Filter delays the Data for a couple of Samples.
- TDCPitchShift
- Pitch Shift Filter to increase Speed and Pitch of Audio Data.
- TDCReverse
- DSP Component to Reverse the content of an Audio Buffer. Each Channel can be reversed seperate.
- TDCSound3D
- 3D Sound Amplification Component that works on 2 Channels only. The difference between Left and Right Channel is calculated and added to the main Signal. For 32Bit Float and SSE CPUs make sure the Buffer is aligned on 16byte.
- TDCTempo
- DSP Filter to increase or decrease the Tempo without changing the Pitch.
- TDCTrueBass
- DSP Component to Amplify Low Frequencys of Audio Data. The Frequencyrange can be adjusted.
- TDCSpectrum
- Designed to retrieve some Values to do Visual drawing of a Spectrum. Output has always the same scaling on every Buffertype.
- TDCWaveform
- Designed to retrieve some Values to do Visual drawing of a Waveform. Output has always the same scaling on every Buffertype.
- TDCWADSPWrapper
- Winamp2 DSP Plugin Wrapper Component.
- TDCWADSPThreadedWrapper
- Threaded Version of TDCWADSPWrapper.
- TDCWAVisualWrapper
- Winamp2 Visual Plugin Wrapper Component.
Generally the usage is pretty simple. Drop a Filter onto a TForm, call Filter.Init() to initialize it.
Now you are able to Process some Data using Filter.Process(). To Flush the internal Buffers of a Filter,
call Filter.Flush(). Note, not all Filters needs to be initialized or can be Flushed.