TSignalCoreAudio Class

Component→TMtxComponent→TMtxComponentList→TAnalysisList→TSignalList→TSignalCoreAudio

type TSignalCoreAudio = class(TSignalList);

Abstract audio class with cross-platform support.

The component is the abstract class for TSignalCoreAudioIn and TSignalCoreAudioOut. It implements common features used by both. The following features are covered: Automatically multiplexes and demultiplexes multichannel audio. Performs user configurable buffering required to ensure skip free playback and recording. See ExtendedBufferTime property. Can perform rate conversion on the fly in real time with optionally higher quality than Windows OS, by specifying SamplingFrequencyHW, Ripple and TransBW properties. It will scale source data to audio bit range (or vice vers) provided that PrecisionHW and Precision properties are correctly set. Features audio click protection when starting, stopping and pausing audio. Within onProcessRealTime event, data can be analyzed or processed with minimum latency. Notes: Unlike ASIO drivers, WASAPI does not support playback of just recorded data. Latencies when using either drviver for playback or recording are comparable.

Properties

NameTypeDescription
ActiveBooleanSet active to false to suppress the propagation of the Pull request and the subsequent call to the Update method.
BlockAssignBooleanBlock streaming of specific properties when storing only a "template".
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.
CountIntegerDefines the size of the list.
DeviceIndexintegerReturns the index of the currently open CoreAudio driver in the list of available drivers.
DisabledOrDisconnectedbooleanReturns true, if the hardware appears disabled or disconnected.
EditIndexIntegerSpecifies index of the item in the list for which to display the design-time editor.
EditorActiveBooleanReturns True, if the component editor is displayed.
FirstTMtxComponentReturns the pointer to Items[0].
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.
IsDoubleBooleanSet this property to false, to request computation in 32bit floating point precision, 64bit, if true.
ItemTSignalAccess TSignal objects by Index.
ItemsTSignalChannelDefault array property allows access to individual list items.
ItemsCollectionTMtxComponentCollectionContent serialization and designer editor support.
LastTMtxComponentReturns Items[Count - 1].
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.
OnItemAddTMtxComponentAddEventEvent triggered after a new item has been added.
OnItemDeleteTMtxComponentDeleteEventEvent triggered before the Item will be deleted.
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.
PausedbooleanSet this property to True, to pause the playback and/or recording.
ProcessingTimedoubleReturns processing time of the real-time loop in miliseconds.
PropagateTemplateBooleanDefines how TMtxComponentList.Propagate will proparage properties.
ReferenceTReferenceListStores a list of components that have to be notified, when this component is destroyed.
SuspendNotifyUpdateBooleanSet this property to True, to prevent calling OnNotifyUpdate from the Update Method.
VolumesingleSet this property to to change the playback/recording volume.

Methods

NameDescription
ActualLatencyReturns actual buffer latency in miliseconds.
AllowStreamingReturns the negatated value of BlockAssign.
AssignAssign values of all published properties from Source.
AssignTemplateAssign values of "template-like" published properties from Source.
BufferStatsReturns information about total number of samples buffered per one channel and the size of the buffer.
ClearDeletes all items from the list.
Create
DeleteDeletes the item from the list.
Destroy
EditorClassTo be overriden in descendanr classses.
ElapsedSamplesReturns total number of samples elapsed since start.
ElapsedTimeReturns time elapsed since start in seconds.
ExchangeSwaps the position of two items in the Items array.
ExtractExtracts the item from the list.
GetDeviceListReturns a list of CoreAudio devices.
GetDriverLatencyReturns latency in miliseconds as reported by the driver.
GetSupportedPrecisionHWsReturns list of supported PrecisionHW values.
GetSupportedSamplingFrequenciesReturns list of supported sampling frequencies for the currently selected PrecisionHW.
InsertInserts an item at position Index
IsFormatSupportedReturns true if current setting of SamplingFrequency, ChannelCount and PrecisionHW properties is valid for the selected device.
LoadFromStreamLoad the component from Src stream.
LoadTemplateFromFileLoad a template from file.
LoadTemplateFromStreamLoad a template from stream.
MatchInputsMatch the connections of Inputs with the component.
MoveChanges the position of an item in the Items array.
Propagate (2)Propagates the settings of the component at SrcIndex to all other components.
PullDistribute Pull request to all objects in the list.
PullUntilEndCalls Pull until pipeEnd is returned.
RateConverterFilterDelayReturns rate conversion filter delay in number of samples.
RefreshDevicesUpdates the list of currently active devices.
RemoveDeletes the first reference to the Item parameter from the Items array.
RenumerateAssign consecutive numbers to individual items.
ResetReset is called after loading the data from stream or file.
RotateRotate the list up or down.
SaveTemplateToFileSave template to file.
SaveTemplateToStreamSave template to stream.
SaveToStreamSave the component to Dst stream.
StartStart the recording or playback.
StopStop the recording or playback.
StopGracefullyStop the recording or playback.
UpdateDistribute Update request to all objects in the list.
UpdateNotifyCall this method only, if SuspendNotifyUpdate is True.