Audio playback component based on WASAPI drivers.
Component uses CoreAudio audio drivers for playback. Output channel data is obtained from Inputs property which must be assigned before the playback starts. Typically <see cref="TSignalDemuxList"/> would be assigned to Inputs and TSignalDemuxList.Inputs to <see cref="TSignalRead"/>. Before the playback can start: The SamplingFrequency for the CoreAudio component must always be set manually and needs to be supported by the driver. The component will perform rate conversion if input signal does not have the same SamplingFrequency. ChannelCount and Inputs.Count need to match. An exception is the mono single channel signal. Mono signal will always play on all channels. <see cref="Precision"/> property must be set to reflect the format of the data to be played back. In case of 16bit, it should be set to prSmallInt. If data is stored as double precision and normalized to have a maximum value of 1 then this setting should be prDouble. Define <see cref="PrecisionHw"/> property. This is the precision of the audio engine. Choose values supported by the audio drivers and hardware. Precision and PrecisionHW are used together to determine the correct scaling. * Exclusive can be set to true or false. When access to the device is exclusive, the latency can be less, audio quality higher, but audio device cannot be shared with other applications. Most importantly, all pre and post processing filters used by Windows are bypassed. (Like Dolby Digital, Room Correction, etc...) Once a new buffer is ready, the driver will call <see cref="OnProcessRealTime"/> event. This event is executed within the drivers thread and should not interact directly with the user interface. From this event <see cref="OutputBuffers"/> can be accessed and processed with minimum delay time.
| 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. |