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:

SignalLab contains: SignalPlayer, SignalLogger, Signal Generator for Sine, Triangle, Square, DC and Jaehne signals, Noise generators, Scope component, Waterfall, LowPass, HiPass, BandPass, BandStop filters, FIR, Arbitrary IIR, BiQuad IIR, Fast Fourier Transformation (FFT) inverse FFT, Discrete Fourier Transformation (DFT), Inverse DFT, Discrete Cosine Transformation (DCT), Inverse DCT, Median, Hilbert, Haar, Power Spectrum, custom filters, signal combining components, arithmetic components, Cartesian, Polar converters, format converters, custom integer, real, and complex data filters, and much more.  See the “Components” tab for details.
 

 

Our component libraries come in 3 versions a VCL – Firemonkey version (for Delphi / C++ Builder / RAD Studio XE4 to 10.1 Berlin), an MFC compatible Visual C++ version, and a .NET 2.0 and 4.0 (4.5 and 4.6 compatible) supporting Visual Studio 2005 to 2015.
 
 

 

The RAD Studio version is a set of native VCL and Firemonkey components of which all include now the powerful Mitov Runtime.
 
 

 

The Visual C++ version is a set of native Visual C++ classes (components).
 
 

 

The NET 2.0 and 4.0 (4.5 and 4.6 compatible) version is a set of managed .NET components.  The .NET version has the same performance as the native versions, and supports all the Microsoft .NET languages including Visual Basic, C#, J#, F# and C++/CLI.
 
 

 

Due to the unique architecture of the OpenWire platform, the components are implemented the same way in Managed .NET and native Windows (32 and 64 bit) environments. The code to control a component from VB.NET, C++/CLI, C#, and J#, Visual C++ MFC, Delphi, and C++ Builder is almost identical. This allows the developers to migrate and share code between the different environments thus significantly improving the productivity.
 

 

OpenWire Libraries: for fast, complex data stream processing with almost zero lines of code!

 

Analysis

SLNoiseStats SLNoiseStats  Calculates the noise stats of a signal: SNR, THD, SINAD,  Harmonics and more.
SLPatternDetector  SLPatternDetector  Use this component to detect patterns in the buffers

 

Arithmetic

SLMultiply SLMultiply  Combines multiple input real signals by performing Multiply operation
SLAdd SLAdd  Combines multiple input signals by performing Add operation over real data
SLSubtract SLSubtract  Combines two input real signals by performing Subtract operation
SLDivide SLDivide  Combines two input real signals by performing Divide operation
SLApplyComplexConst  SLApplyComplexConst  Applies a Complex constant to each sample
SLApplyIntConst SLApplyIntConst  Applies a Integer constant to each sample
SLApplyRealConst SLApplyRealConst  Applies a Real constant to each sample
SLApplyWindow SLApplyWindow  Applies a window function over the input signal
SLAddComplex SLAddComplex  Combines multiple input signals by performing Add operation over complex data
SLMultiplyComplex  SLMultiplyComplex  Combines multiple input complex signals by performing Multiply operation
SLSubtractComplex  SLSubtractComplex  Combines two input complex signals by performing Subtract operation
SLDivideComplex SLDivideComplex  Combines two input complex signals by performing Divide operation
SLMinMax SLMinMax  Use this component to find the minimal and maximal values in the each buffer
SLMean SLMean  Use this component to find the Mean(average) of the data buffers

 

Converters

SLChangeRange SLChangeRange  Changes the output range of the signal
SLDetectLevels SLDetectLevels  Detects levels in the input signal
SLPair SLPair  Pairs multiple data buffers together
SLComplexToReal SLComplexToReal  Converts Complex buffer to Real and Imaginary buffers
SLRealToComplex SLRealToComplex  Converts Real and Imaginary buffers to a Complex buffer
SLRealToInt SLRealToInt  Converts Real data to Integer
SLIntToReal SLIntToReal  Converts Integer data to Real
SLCartToPolar SLCartToPolar  Converts the elements of a complex signal to polar coordinate form
SLPolarToCart SLPolarToCart  Converts the polar form magnitude/phase pairs stored in input signals to Cartesian coordinate form
SLHilbert SLHilbert  Performs a Hilbert transform
SLToSquare SLToSquare  Converts the input signal to a square signal
SLPowerSpectrum SLPowerSpectrum  Computes the Power Spectrum of a Real Buffer
SLConjugate SLConjugate  Performs Conjugater conversion
SLRepack SLRepack  Rearranges the samples into buffers with a specified size
SLRealTodB SLRealTodB  Converts real data to dB format

 

Custom Filters

SLGenericRealValue SLGenericRealValue  User defined filter for Real values
SLGenericReal SLGenericReal  User defined filter for Real data
SLGenericFilter SLGenericFilter  User defined filter for Binary data
SLGenericRealMatrix SLGenericRealMatrix  User defined generator for Real matrix data
SLGenericInt SLGenericInt  User defined filter for Integer data
SLGenericComplex SLGenericComplex  User defined filter for Complex data

DirectShow support components

MLDSMediaFilter MLDSMediaFilter   Passes media trough a DirectShow filter

File access

SLLogger SLLogger Records the signal to file
SLPlayer SLPlayer Plays signal from file

 

Filters

SLIir SLIir  Performs an Arbitrary IIR filter over the input signal
SLBandPass SLBandPass  Performs a BandPass filter over the input signal
SLBandStop SLBandStop  Performs a BandStop filter over the input signal
SLFir SLFir  Performs a FIR filter over the input signal
SLHighPass SLHighPass  Performs a HighPass filter over the input signal
SLLowPass SLLowPass  Performs a LowPass filter over the input signal
SLMedian SLMedian  Performs a Median Filter
SLBiQuadIir SLBiQuadIir  Performs a BiQuad IIR filter over the input signal
SLDelayLine SLDelayLine  Delays the signal
SLRemoveDC SLRemoveDC  Removes the DC component from the signal
SLSnapshot SLSnapshot  Takes a snapshot of the data
SLSwitch SLSwitch  Enables or disables the data to go trough
SLCombFilter SLCombFilter  Performs a Comb filter over the input signal

 

Generic Filters

SLGenericReal SLGenericReal  User defined filter for Real data
SLGenericFilter SLGenericFilter  User defined filter for Binary data
SLGenericRealMatrix SLGenericRealMatrix  User defined generator for Real matrix data

Generic Generators

SLGenericGen SLGenericGen  User defined generator for Binary data
SLGenericRealGen SLGenericRealGen  User defined generator for Real data

 

Meters

SLRMSMeter SLRMSMeter  RMS (Root Mean Square) Meter

 

Signal Filters

SLGenericRealValue SLGenericRealValue  User defined filter for Real values
SLGenericReal SLGenericReal  User defined filter for Real data
SLGenericFilter SLGenericFilter  User defined filter for Binary data
SLGenericRealMatrix SLGenericRealMatrix  User defined generator for Real matrix data

 

Signal Generators

SLGenericRealValueGen SLGenericRealValueGen User defined generator for Real values
SLGenericGen SLGenericGen User defined generator for Binary data
SLGenericRealGen SLGenericRealGen User defined generator for Real data
SLGaussGen SLGaussGen Generates Gaussian distribution pseudo-random samples
SLRandomGen SLRandomGen Generates pseudo-random Real(double) dta samples
SLSignalGen SLSignalGen Generates Tone(Sine Wave), Triangle, Rectangle, Ramp or DC signal
SLGenericIntGen SLGenericIntGen User defined generator for Integer data
SLGenericComplexGen SLGenericComplexGen User defined generator for Complex data

 

Timing components

TLWatchDogTimer TLWatchDogTimer Implements a Watch Dog Timer.
TLMainThredEvent TLMainThredEvent Allows other threads to generate main thread notifications.
TLClockGen TLClockGen Provides clock for other components.
TLThreadEvent TLThreadEvent Use this component to execute code in a separated thread
TLStopWatch TLStopWatch Use this component to implement a Stop Watch
TLFrequencyMeter TLFrequencyMeter Use this component to implement a Frequency meter
TLCounter TLCounter Use this component to implement a Counter
SLSnippetTrigger SLSnippetTrigger

Defines trigger data class

 

Transformations

SLFourier SLFourier Performs Fast Fourier Transformation (FFT)
SLInverseFourier SLInverseFourier Performs Real Inverse Fast Fourier Transformation (Inverse FFT)
SLInverseComplexFourier SLInverseComplexFourier Performs Complex Inverse Fast Fourier Transformation (Inverse FFT)
SLDft SLDft Performs Discrete Fourier Transformation (DFT)
SLInverseDft SLInverseDft Performs Real Inverse Discrete Fourier Transformation (Inverse DFT)
SLInverseComplexDft SLInverseComplexDft Performs Complex Inverse Discrete Fourier Transformation (Inverse DFT)
SLDct SLDct Performs Discrete Cosine Transform (DCT)
SLInverseDct SLInverseDct Performs Inverse Discrete Cosine Transform (Inverse DCT)
SLGoertzOne SLGoertzOne Computes the Discrete Fourier Transform ( Goertzel DFT ) for a given frequency
SLHaar SLHaar Performs Forward single-level discrete wavelet Haar transformation
SLInverseHaar SLInverseHaar Performs Inverse single-level discrete wavelet Haar transformation
SLAbs SLAbs Converts the values of the buffers to absolute values
SLAverageValue SLAverageValue

Use this component to average the input values

 

Visualization

SLScope SLScope Visible Scope/Plot component for representing floating point data
SLWaterfall SLWaterfall Visible waterfall for representing Real(double) data

Video Layers

SLScopeLayer 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 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 SLExternalScopeMatrixLayer A scope matrix component layer
SLExternalWaterfallMatrixLayer SLExternalWaterfallMatrixLayer A waterfall matrix component layer

Control Element

SLExternalScopeElementSLExternalScopeElementA scope component element

SLExternalWaterfallElementSLExternalWaterfallElementA waterfall component element

 

 

OpenWire Studio: What’s New

New in Version 7.8.0.0 (released on 2016-05-03)

  1. Added RAD Studio 10.1 Berlin support
  2. Removed the old .NET 2.0 Assemblies
  3. Added option to Enable the processing engines
  4. Added Visual Live Binding property editors
  5. Added Reset to Default property editors
  6. Added Enum property editors
  7. Added Class events property editors
  8. Added Multi-Event property editors
  9. Added SaveBufferSizes for TSLLogger and TSLPlayer
  10. 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)

  1. Added 10 Seattle support
  2. Added support for VS2015
  3. Added TOWBoolToIntFormatConverter
  4. Improved threading support
  5. Improved OpenWire Editor
  6. Clock pins changed to MiltiSink
  7. Improved Design Time Editors
  8. Improved JSON support
  9. Improved collections
  10. Added more Live Binding types
  11. Added support for hosting OpenWire Studio projects
  12. 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)

  1. Improved .NET support
  2. Enchanced OpenWire Editor
  3. Added custom toolbar buttons, and images to the PlotLab components
  4. Added more visual live bindings
  5. 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?

SignalLab is free for non commercial purposes. This means that you can use it for personal pleasure, hobby, or evaluation purposes. If you are student you can also use it for free for your educational needs including school projects. If you are a tutor at present you also can use it for free for your classes. However in the near future a low cost tutor license will be available, and you will have to purchase it. Your students however will not need license to use the product at class.

Is SignalLab multithreading? Will it stop streaming while I move the window with the mouse?

Yes. SignalLab is fully multithreaded and will not stop streaming while the main thread is busy.

Can I use SignalLab with my data acquisition board?

You can use SignalLab with any data acquisition board as long as you have development libraries for the board. You can use the TSLGenericReal, and TLSGenericInt to send data from the board into the SignalLab components. Please check the SignalLab documentation as well as the CustomFilterDemo demo directory (See bellow).

Can I create my own filter?

You can create your own Real, Integer and Complex filters with SignalLabYou can use the TSLGenericReal, TSLGenericComplex, and TLSGenericInt to implement the filters. Please check the SignalLab documentation as well as the CustomFilterDemo demo directory (See bellow).

I have my own plot component. Can I display the data into it?

You can use any Third party plot component with SignalLab. Use the TSLGenericReal to obtain the data to be displayed in the plot component. Please check the SignalLab documentation as well as the CustomFilterDemo demo directory (See bellow).

 

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 plot

 

Mitov License

 

If you do not have a custom licensing agreement with Mitov Software then the following license applies:
 
 
The libraries are licensed per developer, and there are no royalties required. Once you have purchased a developer license, you are free to distribute your final product without the need to pay any royalties or other fees as long as you comply with the following license agreement:
 
 

 

LICENSE – AGREEMENT
 

 

Users of the LabPacks Component Pack(Software) must accept these terms of license.
 
If you refuse to accept the terms of license, you may not use this software, and you have the right to return it within 30 days of the purchase date, and to receive your money back.
 
For your convenience a copy of this license agreement will be stored on your system during the installation.
 
This license grants you the following rights:
 
You have a non exclusive license to the Software. The Title and all intangible rights to the Software are the property of Mitov Software .
 
You may install and use one copy of the Software per computer assuming only one and the same person will use the Software on all of the computers. You may distribute any application that includes Software without any additional royalties beyond your initial license registration fee.
 
You can also create a reasonable set of copies of the product on different types of media, such as CD Rom or Type Backup, as far as those copies are used only for your own back up protection.
 
Description of the limitations.
 
You may not reverse engineer, decompile, or disassemble the Software.
 
 
The Software is licensed as a single product. You may not rent or lease the Software. You must treat the Software like any other copyrighted material except that you may either (a) a reasonable amount of copies of the Software solely for backup or archival purposes, or (b) install the Software multiple computers provided you keep the original solely for backup or archival purposes and only a single developer will use all of the copies.
 
 
You may not separate Delphi and C++ Builder components from this Software.
Each developer must have a valid license for the Software.
 
 
You may not create a competing component product using this Software.
 
 
Additional restriction to Delphi-VCL and C++ Builder components:
 
 
You may not distribute the Delphi-VCL components in a DCU (Delphi Compiled Unit) format. You can distribute the component only as a part of your executable or dynamic link library program in a compiled form.
 
 
You may not distribute the C++ Builder components in OBJ format. You can distribute the component only as a part of your executable or dynamic link library program in a compiled form.
 
 
Mitov Software grants a limited warranty with these restrictions:
 
 
THE SOFTWARE IS SUPPLIED AS IT IS. MITOV SOFTWARE AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH REGARD TO THE SOFTWARE. NO LIABILITY FOR CONSEQUENTIAL DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL MITOV SOFTWARE OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE.

 

See the Components Tab for more detail.

Also, we offer custom licensing and vertical development of the SignalLab.  Please direct any questions about custom licensing to Boian Mitov ( mitov@mitov.com ).

PurchaseAll Products Page

 

[otw_is sidebar=otw-sidebar-1]