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
| Name | Type | Description |
|---|---|---|
| Active | Boolean | Set active to false to suppress the propagation of the Pull request and the subsequent call to the Update method. |
| BlockAssign | Boolean | Block streaming of specific properties when storing only a "template". |
| Complex | Boolean | Set this property to true, to request computation using complex numbers. |
| Continuous | Boolean | If True, the component will pass on the udpate request to the connected component. |
| Count | Integer | Defines the size of the list. |
| DeviceIndex | integer | Returns the index of the currently open CoreAudio driver in the list of available drivers. |
| DisabledOrDisconnected | boolean | Returns true, if the hardware appears disabled or disconnected. |
| EditIndex | Integer | Specifies index of the item in the list for which to display the design-time editor. |
| EditorActive | Boolean | Returns True, if the component editor is displayed. |
| First | TMtxComponent | Returns the pointer to Items[0]. |
| FloatPrecision | TMtxFloatPrecision | Set this property to request computation in 32bit/64bit precision with real/complex numbers. |
| FloatPrecisionLock | Boolean | Set this property to true to lock changes to FloatPrecision property. |
| IsDouble | Boolean | Set this property to false, to request computation in 32bit floating point precision, 64bit, if true. |
| Item | TSignal | Access TSignal objects by Index. |
| Items | TSignalChannel | Default array property allows access to individual list items. |
| ItemsCollection | TMtxComponentCollection | Content serialization and designer editor support. |
| Last | TMtxComponent | Returns Items[Count - 1]. |
| OnAfterUpdate | TNotifyEvent | The event is triggered after the call to the Update method. |
| OnBeforeUpdate | TNotifyEvent | The event is triggered just before the call to the Update method. |
| OnDisplayUpdate | TNotifyEvent | The event is triggered after the OnAfterUpdate event. |
| OnItemAdd | TMtxComponentAddEvent | Event triggered after a new item has been added. |
| OnItemDelete | TMtxComponentDeleteEvent | Event triggered before the Item will be deleted. |
| OnNotifyUpdate | TNotifyEvent | The event is called after a call to InternalUpdate, OnAfterUpdate and OnDisplayUpdate from within the Update method. |
| OnParameterUpdate | TNotifyEvent | The event is triggered when ParamUpdate method is called. |
| Paused | boolean | Set this property to True, to pause the playback and/or recording. |
| ProcessingTime | double | Returns processing time of the real-time loop in miliseconds. |
| PropagateTemplate | Boolean | Defines how TMtxComponentList.Propagate will proparage properties. |
| Reference | TReferenceList | Stores a list of components that have to be notified, when this component is destroyed. |
| SuspendNotifyUpdate | Boolean | Set this property to True, to prevent calling OnNotifyUpdate from the Update Method. |
| Volume | single | Set this property to to change the playback/recording volume. |
Methods
| Name | Description |
|---|---|
| ActualLatency | Returns actual buffer latency in miliseconds. |
| AllowStreaming | Returns the negatated value of BlockAssign. |
| Assign | Assign values of all published properties from Source. |
| AssignTemplate | Assign values of "template-like" published properties from Source. |
| BufferStats | Returns information about total number of samples buffered per one channel and the size of the buffer. |
| Clear | Deletes all items from the list. |
| Create | |
| Delete | Deletes the item from the list. |
| Destroy | |
| EditorClass | To be overriden in descendanr classses. |
| ElapsedSamples | Returns total number of samples elapsed since start. |
| ElapsedTime | Returns time elapsed since start in seconds. |
| Exchange | Swaps the position of two items in the Items array. |
| Extract | Extracts the item from the list. |
| GetDeviceList | Returns a list of CoreAudio devices. |
| GetDriverLatency | Returns latency in miliseconds as reported by the driver. |
| GetSupportedPrecisionHWs | Returns list of supported PrecisionHW values. |
| GetSupportedSamplingFrequencies | Returns list of supported sampling frequencies for the currently selected PrecisionHW. |
| Insert | Inserts an item at position Index |
| IsFormatSupported | Returns true if current setting of SamplingFrequency, ChannelCount and PrecisionHW properties is valid for the selected device. |
| LoadFromStream | Load the component from Src stream. |
| LoadTemplateFromFile | Load a template from file. |
| LoadTemplateFromStream | Load a template from stream. |
| MatchInputs | Match the connections of Inputs with the component. |
| Move | Changes the position of an item in the Items array. |
| Propagate (2) | Propagates the settings of the component at SrcIndex to all other components. |
| Pull | Distribute Pull request to all objects in the list. |
| PullUntilEnd | Calls Pull until pipeEnd is returned. |
| RateConverterFilterDelay | Returns rate conversion filter delay in number of samples. |
| RefreshDevices | Updates the list of currently active devices. |
| Remove | Deletes the first reference to the Item parameter from the Items array. |
| Renumerate | Assign consecutive numbers to individual items. |
| Reset | Reset is called after loading the data from stream or file. |
| Rotate | Rotate the list up or down. |
| SaveTemplateToFile | Save template to file. |
| SaveTemplateToStream | Save template to stream. |
| SaveToStream | Save the component to Dst stream. |
| Start | Start the recording or playback. |
| Stop | Stop the recording or playback. |
| StopGracefully | Stop the recording or playback. |
| Update | Distribute Update request to all objects in the list. |
| UpdateNotify | Call this method only, if SuspendNotifyUpdate is True. |