TSignalRead Class

Source: FileSignal.cs · Assembly: Dew.Signal
ComponentTMtxComponentTAnalysisTSignalTFileStorageTSignalRead

public class TSignalRead : TFileStorage

Reads a signal from the file.

TSignalRead is probably the most important component to understand in order to make effective use of other signal processing components.

Use TSignalRead to read wav, binary and text files and provide streaming capabilities with frame navigation and overlapp support. The read data is placed in the Data property and its sample count is determined with the Length property. Once a file is opened, the key properties immediatelly contain all the necessary information about the file size, number of records, data type etc...

You can connect the component to other components which have an Input property. Example: SpectrumAnalyzer.Input = SignalRead; By calling SpectrumAnalyzer.Pull data will be read from the file and a frequency spectrum will be computed.

Examples

csharp
SignalRead.FileName = MyFile.wav;
SignalRead.OpenFile;
SignalDemuxList.Input = SignalRead;
SignalDemuxList.Pull;

//now we have demulitplexed data stored in:
//SignalDemuxList[0].Data
//SignalDemuxList[1].Data
//..
//SignalDemuxList[SignalRead.ChannelCount-1].Data

Properties

NameTypeDescription
ActiveBooleanSet active to false to suppress the propagation of the Pull request and the subsequent call to the Update method.
AutoFileFormatBooleanIf True, the file format will be automatically determined from the file name extension.
BandWidthDoubleReturn the bandwidth of the signal.
BandwidthHDoubleReturns the upper bandwidth edge of the signal.
BandwidthLDoubleReturns the lower bandwidth edge of the signal.
BlockAssignBooleanBlock streaming of specific properties when storing only a "template".
ChannelCountInt32Get or set the number of channels multiplexed in the data property.
ComplexBooleanSet this property to true, to request computation using complex numbers.
ContinuousBooleanIf True, the component will pass on the udpate request to the connected component.
DataTVecStores the result of the processing.
DtDoubleTime between two consecutive samples.
EditorActiveBooleanReturns True, if the component editor is displayed.
FileFormatTFileFormatDefines the format of the file, if AutoFileFormat property is False.
FileNameStringDefines the file name to be read from or written to.
FloatPrecisionTMtxFloatPrecisionSet this property to request computation in 32bit/64bit precision with real/complex numbers.
FloatPrecisionLockBooleanSet this property to true to lock changes to FloatPrecision property.
ForceLengthBooleanWarn about compressed files varying Length read.
FrameNumberInt64Set FrameNumber to position the read cursor within the current record.
FramesPerSecondDoubleReturns the number of frames per second according to Framing and overlapp properties.
FramingTFramingDefines the method to traverse a multi-record the file.
HzResDoubleFrequency resolution obtained, if an FFT algorithm would be run on the data.
InputTAnalysisConnector property to obtain a pointer to the TSignal component holding the data to be processed.
IsDoubleBooleanSet this property to false, to request computation in 32bit floating point precision, 64bit, if true.
ItemDoubleDefault property to access values of a real signal.
ItemNumberInt32Number to label the object when it is an item in the List.
LastFrameCheckTLastFrameCheckSpecifies how to handle the end of file.
LengthInt32Get or set the length of the signal in samples.
LoopBooleanIf true, looping will be enabled.
MarksTMarkListStores the time stamps and amplitude of selected samples.
MaxAmpltDoubleStores the maximum amplitude of the signal found by the MinMax method.
MaxFramesInt64Read Only. Determine the maximum number of frames.
MaxXDoubleUse the MaxX property to store the time stamp (in seconds) of the right most sample.
MinAmpltDoubleStores the minimum amplitude of the signal found by the MinMax method.
MinXDoubleUse the MinX property to store the time stamp of the left-most sample.
NumberOfRecordsInt32Read only. Returns the number of records contained in the current file.
OnAfterUpdateTNotifyEventThe event is triggered after the call to the Update method.
OnBeforeUpdateTNotifyEventThe event is triggered just before the call to the Update method.
OnDisplayUpdateTNotifyEventThe event is triggered after the OnAfterUpdate event. Use this event to update any associated charts or graphs or result tables.
OnGetInputTNotifyEventIf the Input property is not assigned, the component will call OnGetInput.
OnNotifyUpdateTNotifyEventThe event is called after a call to InternalUpdate, OnAfterUpdate and OnDisplayUpdate from within the Update method.
OnParameterUpdateTNotifyEventThe event is triggered when ParamUpdate method is called. The ParamUpdate method is usually called by component editors when a value was changed by the user and the editor was "Live".
OnProcessAllTNotifyEventEvent triggered when Process command is selected from the drop-down menu in the component editor.
OnRecordPositionChangeTNotifyEventTriggered after RecordPosition changes.
OverlappingPercentDoubleDefine the overlapping in percent of consequtive frames when reading the file.
OverlappingSamplesInt32Define the overlapping in sampels of consequtive frames when reading the file.
PipeStateTPipeStateReturns the state of the pipe after the last update.
PostBufferSamplesInt32Append zeros to then end of file.
PostBufferTimeDoubleAppend zeros to end of file.
PrecisionTPrecisionRead the precision of the data being read from the file.
RecordLengthInt64Read only. Returns the length of the current record in samples for one channel.
RecordNumberInt32Set RecordNumber to move the read cursor within the file to the record with RecordNumber number.
RecordPositionInt64Set and get position in samples.
RecordTimeDoubleRead only. Returns the length of the current record in seconds for one channel.
RecordTimePositionDoubleSet RecordTimePosition in seconds to position the read cursor within the current record.
ReferenceTReferenceListStores a list of components that have to be notified, when this component is destroyed.
SamplingFrequencyDoubleDefines the sampling frequency of the signal.
SamplingTimeDoubleThe length of the signal in seconds.
ScaleFactorDoubleDefines a scale factor to be applied to just read data.
SelectionStartInt64Specifies the lower file range limit.
SelectionStopInt64Specifies the upper file range limit.
SuspendNotifyUpdateBooleanSet this property to True, to prevent calling OnNotifyUpdate from the Update Method.
UsesInputsBooleanSet it to True to indicate, that valid signals will be connected to the Input or Inputs properties.

Methods

NameDescription
AllowStreamingReturns the negatated value of BlockAssign.
AppendAppends Sample to the end of the signal.
AssignAssign values of all published properties from Source.
AssignTemplateAssign values of "template-like" published properties from Source.
CloseFileClose file.
CopyCopies signal Data and sampling frequency information.
CrestCompute the CREST parameter.
EditorClassTo be overriden in descendanr classses.
FileIsOpenReturns true, if the file is open.
FileSizeReturns the size of the file in bytes.
FirstFrameSets the record position to the start of the current record and reads the data.
FormatDescriptionReturns the description of the file format.
FormatTagDescriptionReturns the name of the file format.
InputsDirtyIf all Inputs[i] are dirty the function returns true.
InternalPullWhen called, the method will pass Update requests recursively to all connected objects.
InvalidateNotifies all connected components that this component has fresh data.
IsEndOfFileReturns true, if the current frame is the last frame.
LastFrameSets the record position to the start of the last frame of the current record and reads the data.
LoadFromStreamLoad the component from Src stream.
LoadHeaderFileReads the header file for raw file formats.
LoadTemplateFromFileLoad a template from file.
LoadTemplateFromStreamLoad a template from stream.
MarksToStringsConvert marks to strings.
MinMaxFind minimum and maximum amplitude and store the result in the MinAmplt and MaxAmplt properties.
NextFrameAdvances the record position forward in the current record and reads the data.
OpenFileOpen file.
ParamUpdateThe method can be assigned to some other component even handler, as a notification that a parameter has changed and that Self should consider a recalculation.
PeakFind the maximum deviation of the signal from its mean value.
PipeResetRecursively processes all connected components backward and calls Reset method.
PrevFrameMoves the record position backward in the current record and reads the data.
PullRequest recalculation of the entire chain of all connected components.
PullUntilEndCalls Pull until pipeEnd is returned.
RawFileFormatChecks if the file format is raw.
ResetReset is called after loading the data from stream or file.
SamplesLeftReturnes the number of samples left to the end of the file per channel.
SaveHeaderFileSaves a header file describing file contents.
SaveTemplateToFileSave template to file.
SaveTemplateToStreamSave template to stream.
SaveToStreamSave the component to Dst stream.
SizeAssign the size of the signal from Src.
UpdateRequest recalculation of the data and place the result in Self.
UpdateNotifyCall this method only, if SuspendNotifyUpdate is True.
ValuesToStringsConvert values to strings.

Events

NameDescription
OnAfterUpdateEventThe event is triggered after the call to the Update method.
OnBeforeUpdateEventThe event is triggered just before the call to the Update method.
OnDisplayUpdateEventThe event is triggered after the OnAfterUpdate event. Use this event to update any associated charts or graphs or result tables.
OnGetInputEventIf the Input property is not assigned, the component will call OnGetInput.
OnNotifyUpdateEventThe event is called after a call to InternalUpdate, OnAfterUpdate and OnDisplayUpdate from within the Update method.
OnParameterUpdateEventThe event is triggered when ParamUpdate method is called. The ParamUpdate method is usually called by component editors when a value was changed by the user and the editor was "Live".
OnProcessAllEventEvent triggered when Process command is selected from the drop-down menu in the component editor.
OnRecordPositionChangeEventTriggered after RecordPosition changes.