You are here: Symbol Reference > CoreAudioSignal Namespace > Classes > TSignalCoreAudioOut Class
DSP Master VCL
ContentsIndex
PreviousUpNext
TSignalCoreAudioOut Class

Audio playback component based on WASAPI drivers.

CoreAudioSignal_TSignalCoreAudioOutCoreAudioSignal_TSignalCoreAudioOutCoreAudioSignal_TSignalCoreAudioOutCoreAudioSignal_TSignalCoreAudioOutCoreAudioSignal_TSignalCoreAudioOutCoreAudioSignal_TSignalCoreAudioOut
Pascal
TSignalCoreAudioOut = class(TSignalCoreAudio);

Component uses CoreAudio audio drivers for playback. 

Output channel data is obtained from Inputs property which must be assigned before the playback starts. Typically TSignalDemuxList would be assigned to Inputs and TSignalDemuxList.Inputs to 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.
  • 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 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 OnProcessRealTime event. This event is executed within the drivers thread and should not interact directly with the user interface. From this event OutputBuffers can be accessed and processed with minimum delay time.

Copyright (c) 1999-2024 by Dew Research. All rights reserved.
What do you think about this topic? Send feedback!