What can I build with SignalLab?
SignalLab is a set of components for very fast digital signal processing (DSP). The library allows very fast complex signal manipulations and visualization with zero lines of program code.
Applications include: real time data acquisition, process control, signal analysis, digital signal analysis, audio analysis, video analysis, data visualization, visual instrumentation and more.
A simple signal generation tutorial (.NET or VCL) and a more complex signal analysis tutorial (.NET or VCL) are available in the tutorials section.
Acquire, process, record and display signals:
Play and analyze signals and display the results:
Generate and output signals:
Mix different signal sources, then output and display the results:
Analysis
SLNoiseStats | Calculates the noise stats of a signal: SNR, THD, SINAD, Harmonics and more. | |
SLPatternDetector | Use this component to detect patterns in the buffers |
Arithmetic
SLMultiply | Combines multiple input real signals by performing Multiply operation | |
SLAdd | Combines multiple input signals by performing Add operation over real data | |
SLSubtract | Combines two input real signals by performing Subtract operation | |
SLDivide | Combines two input real signals by performing Divide operation | |
SLApplyComplexConst | Applies a Complex constant to each sample | |
SLApplyIntConst | Applies a Integer constant to each sample | |
SLApplyRealConst | Applies a Real constant to each sample | |
SLApplyWindow | Applies a window function over the input signal | |
SLAddComplex | Combines multiple input signals by performing Add operation over complex data | |
SLMultiplyComplex | Combines multiple input complex signals by performing Multiply operation | |
SLSubtractComplex | Combines two input complex signals by performing Subtract operation | |
SLDivideComplex | Combines two input complex signals by performing Divide operation | |
SLMinMax | Use this component to find the minimal and maximal values in the each buffer | |
SLMean | Use this component to find the Mean(average) of the data buffers |
Converters
SLChangeRange | Changes the output range of the signal | |
SLDetectLevels | Detects levels in the input signal | |
SLPair | Pairs multiple data buffers together | |
SLComplexToReal | Converts Complex buffer to Real and Imaginary buffers | |
SLRealToComplex | Converts Real and Imaginary buffers to a Complex buffer | |
SLRealToInt | Converts Real data to Integer | |
SLIntToReal | Converts Integer data to Real | |
SLCartToPolar | Converts the elements of a complex signal to polar coordinate form | |
SLPolarToCart | Converts the polar form magnitude/phase pairs stored in input signals to Cartesian coordinate form | |
SLHilbert | Performs a Hilbert transform | |
SLToSquare | Converts the input signal to a square signal | |
SLPowerSpectrum | Computes the Power Spectrum of a Real Buffer | |
SLConjugate | Performs Conjugater conversion | |
SLRepack | Rearranges the samples into buffers with a specified size | |
SLRealTodB | Converts real data to dB format |
Custom Filters
SLGenericRealValue | User defined filter for Real values | |
SLGenericReal | User defined filter for Real data | |
SLGenericFilter | User defined filter for Binary data | |
SLGenericRealMatrix | User defined generator for Real matrix data | |
SLGenericInt | User defined filter for Integer data | |
SLGenericComplex | User defined filter for Complex data |
DirectShow support components
MLDSMediaFilter Passes media trough a DirectShow filter
File access
SLLogger | Records the signal to file | |
SLPlayer | Plays signal from file |
Filters
SLIir | Performs an Arbitrary IIR filter over the input signal | |
SLBandPass | Performs a BandPass filter over the input signal | |
SLBandStop | Performs a BandStop filter over the input signal | |
SLFir | Performs a FIR filter over the input signal | |
SLHighPass | Performs a HighPass filter over the input signal | |
SLLowPass | Performs a LowPass filter over the input signal | |
SLMedian | Performs a Median Filter | |
SLBiQuadIir | Performs a BiQuad IIR filter over the input signal | |
SLDelayLine | Delays the signal | |
SLRemoveDC | Removes the DC component from the signal | |
SLSnapshot | Takes a snapshot of the data | |
SLSwitch | Enables or disables the data to go trough | |
SLCombFilter | Performs a Comb filter over the input signal |
Generic Filters
SLGenericReal | User defined filter for Real data | |
SLGenericFilter | User defined filter for Binary data | |
SLGenericRealMatrix | User defined generator for Real matrix data |
Generic Generators
SLGenericGen | User defined generator for Binary data | |
SLGenericRealGen | User defined generator for Real data |
Meters
SLRMSMeter | RMS (Root Mean Square) Meter |
Signal Filters
SLGenericRealValue | User defined filter for Real values | |
SLGenericReal | User defined filter for Real data | |
SLGenericFilter | User defined filter for Binary data | |
SLGenericRealMatrix | User defined generator for Real matrix data |
Signal Generators
SLGenericRealValueGen | User defined generator for Real values | |
SLGenericGen | User defined generator for Binary data | |
SLGenericRealGen | User defined generator for Real data | |
SLGaussGen | Generates Gaussian distribution pseudo-random samples | |
SLRandomGen | Generates pseudo-random Real(double) dta samples | |
SLSignalGen | Generates Tone(Sine Wave), Triangle, Rectangle, Ramp or DC signal | |
SLGenericIntGen | User defined generator for Integer data | |
SLGenericComplexGen | User defined generator for Complex data |
Timing components
TLWatchDogTimer | Implements a Watch Dog Timer. | |
TLMainThredEvent | Allows other threads to generate main thread notifications. | |
TLClockGen | Provides clock for other components. | |
TLThreadEvent | Use this component to execute code in a separated thread | |
TLStopWatch | Use this component to implement a Stop Watch | |
TLFrequencyMeter | Use this component to implement a Frequency meter | |
TLCounter | Use this component to implement a Counter | |
SLSnippetTrigger |
Defines trigger data class |
Transformations
SLFourier | Performs Fast Fourier Transformation (FFT) | |
SLInverseFourier | Performs Real Inverse Fast Fourier Transformation (Inverse FFT) | |
SLInverseComplexFourier | Performs Complex Inverse Fast Fourier Transformation (Inverse FFT) | |
SLDft | Performs Discrete Fourier Transformation (DFT) | |
SLInverseDft | Performs Real Inverse Discrete Fourier Transformation (Inverse DFT) | |
SLInverseComplexDft | Performs Complex Inverse Discrete Fourier Transformation (Inverse DFT) | |
SLDct | Performs Discrete Cosine Transform (DCT) | |
SLInverseDct | Performs Inverse Discrete Cosine Transform (Inverse DCT) | |
SLGoertzOne | Computes the Discrete Fourier Transform ( Goertzel DFT ) for a given frequency | |
SLHaar | Performs Forward single-level discrete wavelet Haar transformation | |
SLInverseHaar | Performs Inverse single-level discrete wavelet Haar transformation | |
SLAbs | Converts the values of the buffers to absolute values | |
SLAverageValue |
Use this component to average the input values |
Visualization
SLScope | Visible Scope/Plot component for representing floating point data | |
SLWaterfall | Visible waterfall for representing Real(double) data |
Video Layers
SLScopeLayer | A scope drawing layer. You can add this layer to any drawing component such as TVLDraw to render a video layer containing a scope | |
SLWaterfallLayer |
A waterfall draw layer. You can add this layer to any drawing component such as TVLDraw to render a video layer containing a waterfall |
Matrix Layers
SLExternalScopeMatrixLayer | A scope matrix component layer | |
SLExternalWaterfallMatrixLayer | A waterfall matrix component layer |
Control Element
SLExternalScopeElementA scope component element
SLExternalWaterfallElementA waterfall component element
OpenWire Studio: What’s New
New in Version 7.8.0.0 (released on 2016-05-03)
- Added RAD Studio 10.1 Berlin support
- Removed the old .NET 2.0 Assemblies
- Added option to Enable the processing engines
- Added Visual Live Binding property editors
- Added Reset to Default property editors
- Added Enum property editors
- Added Class events property editors
- Added Multi-Event property editors
- Added SaveBufferSizes for TSLLogger and TSLPlayer
- Introduced MAC support for some of the components when compiling with source code
New in Version 7.7.0.0 (released on 2015-10-28)
- Added 10 Seattle support
- Added support for VS2015
- Added TOWBoolToIntFormatConverter
- Improved threading support
- Improved OpenWire Editor
- Clock pins changed to MiltiSink
- Improved Design Time Editors
- Improved JSON support
- Improved collections
- Added more Live Binding types
- Added support for hosting OpenWire Studio projects
- Added serialization support in the buffers
New in Version 7.6.0.0 (released on 2015-04-17)
- Added TTLGenericFilter
- Added more visual live binding types
- Significantly improved property Delphi editors
- Added option for WindowType None
- ISLSequenceStamp – interfaced
New in Version 7.5.1.0 (released on 2014-12-20)
- Improved .NET support
- Enchanced OpenWire Editor
- Added custom toolbar buttons, and images to the PlotLab components
- Added more visual live bindings
- Added custom Width for the display cursors to the PlotLab components
( Click to view Larger images. )
SignalLab EXAMPLES
[table id=12 /]
SignalLab: Frequently Asked Questions
Do I have to purchase SignalLab?
Is SignalLab multithreading? Will it stop streaming while I move the window with the mouse?
Can I use SignalLab with my data acquisition board?
Can I create my own filter?
I have my own plot component. Can I display the data into it?
SignalLab Installers
Firemonkey and VCL Installer: SignalLab 7.8.2.288 VCL and FireMonkey 32 & 64 bit support for 10.2 Tokyo and 10.3 Rio
Updated on 2018-12-21, downloaded 91 times.
Visual C++ Installer: SignalLab 7.8.2.152 for Visual C++ MFC
Updated on 2018-11-12, downloaded 6763 times.
.NET Installer: SignalLab 7.8.2.271 for Microsoft .NET 4.0 (4.5 and 4.6 compatible)
Updated on 2018-11-08, downloaded 12985 times.
Firemonkey and VCL Installer: SignalLab 7.8.2.0 VCL and FireMonkey 32 & 64 bit support for XE8 to 10.1 Berlin
Updated on 2016-06-06, downloaded 2108 times.
Firemonkey and VCL Installer: SignalLab 7.7.0.0 VCL and FireMonkey 32 & 64 bit support for XE7 to 10 Seattle
Updated on 2015-10-28, downloaded 753 times.
Firemonkey and VCL Installer: SignalLab 7.6.1.0 VCL and FireMonkey 32 & 64 bit support for XE6 to XE8
Updated on 2015-06-11, downloaded 777 times.
Firemonkey and VCL Installer: SignalLab 6.0.0 VCL and FireMonkey (Windows only) 32 and 64 bit support for XE2 to XE4
Updated on 2014-11-19, downloaded 653 times.
Firemonkey and VCL Installer: SignalLab 7.5.0.0 VCL and FireMonkey 32 & 64 bit support for XE4 to XE7
Updated on 2014-11-18, downloaded 740 times.
Firemonkey and VCL Installer: SignalLab 7.0.0.0 VCL and FireMonkey 32 & 64 bit support for XE3 to XE6
Updated on 2014-04-21, downloaded 743 times.
Firemonkey and VCL Installer: SignalLab 5.0.3 VCL and FireMonkey for XE2 Update4 Hotfix1
Updated on 2012-10-13, downloaded 809 times.
Firemonkey and VCL Installer: Legacy SignalLab 5.0.3 VCL and FireMonkey (Windows only) 32 and 64 bit support for 2010 to XE
Updated on 2012-10-10, downloaded 4557 times.
Firemonkey and VCL Installer: SignalLab 5.0.1 for Delphi/C++ Builder 5 to 2009
Updated on 2011-10-18, downloaded 23225 times.
Visual C++ Installer: SignalLab 5.0.3 for Visual C++ MFC
Updated on 2012-10-10, downloaded 6713 times.
.NET Installer: SignalLab 7.8.2.0 for Microsoft .NET 4.0 (4.5 and 4.6 compatible)
Updated on 2012-10-10, downloaded 6713 times.
DEMOS
These demos are executable after downloading. Also see: Demo source code downloads
Filters demo (LowPass, HighPass, BandPass, BandStop) Demonstrates the application of LowPass, HighPass, BandPass and BandStop filters Signal Generator demo Demonstrates how to use TSLSignalGen to generate tone (sine), triangle and square waves Low Pass demo Demonstrates how to apply TSLLowPass filter, and displays the output in a Waterfall plot Custom Digital Filters demo Demonstrates how to use the TSLGenericReal component to apply custom filter logic Fast Fourier Transform demo Demonstrats application of TSLFourier and TSLInverseFourier components. Displays real, imaginary, phase and spectrum magnitude outputs Goertzel (Alternative to FFT) demo Unlike the FFT, the TSLGoertzOne component looks for predetermined frequencies. It can be used, e.g., to detect the tones generated by telephone pushbuttons Lissajous Figures demo Demonstrates the generation and modification of Lissajous curves in a rectangular space by altering the sine equation parameters Player Waterfal demo Demonstrates playing a saved (binary) signal file and displaying in a waterfall plotMitov License
Also, we offer custom licensing and vertical development of the SignalLab. Please direct any questions about custom licensing to Boian Mitov ( mitov@mitov.com ).