oa::FnAudio

FnAudio namespace in the OA Audio public surface.

NsC++ public headers

Public Functions

oa::Matrix oa::FnAudio::amplitudeToDb(const oa::Audio & inAudio, oa::F32 inFloorDb = -100.0F)
oa::Audio oa::FnAudio::biquad(const oa::Audio & inAudio, const oa::BiquadCoefficients & inCoefficients = {})
oa::Audio oa::FnAudio::clip(const oa::Audio & inAudio, oa::F32 inMin = -1.0F, oa::F32 inMax = 1.0F)
oa::Result<Audio> oa::FnAudio::decodeFile(const oa::Path & inPath)
oa::Result<Audio> oa::FnAudio::decodeMemory(oa::Span<const oa::U8> inData)
oa::Result<oa::Vector<oa::U8>> oa::FnAudio::encodeInterleavedWavF32(oa::Span<const oa::F32> inSamples, oa::U32 inSampleRate, oa::U32 inChannelCount)
oa::Result<oa::Vector<oa::U8>> oa::FnAudio::encodeWavF32(const Audio & inAudio)
oa::Audio oa::FnAudio::fade(const oa::Audio & inAudio, oa::U64 inFadeInSamples, oa::U64 inFadeOutSamples)
oa::Audio oa::FnAudio::gain(const oa::Audio & inAudio, oa::F32 inGainDb)
oa::Matrix oa::FnAudio::melSpectrogram(const oa::Audio & inAudio, const oa::MelConfig & inCfg = {})
oa::Matrix oa::FnAudio::mfcc(const oa::Audio & inAudio, const oa::MfccConfig & inCfg = {})
oa::Audio oa::FnAudio::mix(const oa::Audio & inA, const oa::Audio & inB, oa::F32 inGainA = 1.0F, oa::F32 inGainB = 1.0F)
oa::Audio oa::FnAudio::normalize(const oa::Audio & inAudio, oa::F32 inTargetDb = -3.0F, oa::U8 inMode = 0)
oa::Audio oa::FnAudio::preEmphasis(const oa::Audio & inAudio, oa::F32 inAlpha = 0.97F)
oa::Audio oa::FnAudio::resample(const oa::Audio & inAudio, oa::U32 inOutRate = 16'000U, oa::U32 inFilterHalfWidth = 64U)
oa::Audio oa::FnAudio::reverb(const oa::Audio & inAudio, oa::F32 inDecaySeconds = 1.5F, oa::F32 inWet = 0.35F)
oa::Audio oa::FnAudio::saturate(const oa::Audio & inAudio, oa::F32 inDriveDb = 0.0F, oa::F32 inMix = 1.0F)
oa::Status oa::FnAudio::saveWavF32(const oa::Path & inPath, const Audio & inAudio)
oa::Audio oa::FnAudio::sosFilter(const oa::Audio & inAudio, oa::Span<const oa::BiquadCoefficients> inSections)
oa::Matrix oa::FnAudio::stft(const oa::Audio & inAudio, const oa::StftConfig & inCfg = {})
oa::Audio oa::FnAudio::toMono(const oa::Audio & inAudio)
oa::Matrix oa::FnAudio::waveformEnvelope(const oa::Audio & inAudio, oa::U32 inBins = 2'048U)

Function Documentation

oa::Matrix oa::FnAudio::amplitudeToDb( const oa::Audio & inAudio, oa::F32 inFloorDb = -100.0F )
amplitudeToDb: Convert waveform amplitude to a finite dB matrix with a silence floor.

Parameters

inAudio
const oa::Audio &

inFloorDb
oa::F32

Default: -100.0F

Returns

oa::Matrix

The declared return value.

oa::Audio oa::FnAudio::biquad( const oa::Audio & inAudio, const oa::BiquadCoefficients & inCoefficients = {} )
biquad: Apply one stable a0-normalized biquad independently per channel with zero initial state.

Parameters

inAudio
const oa::Audio &

inCoefficients
const oa::BiquadCoefficients &

Default: {}

Returns

oa::Audio

The declared return value.

oa::Audio oa::FnAudio::clip( const oa::Audio & inAudio, oa::F32 inMin = -1.0F, oa::F32 inMax = 1.0F )
clip: Clamp waveform samples to a finite range while preserving audio metadata.

Parameters

inAudio
const oa::Audio &

inMin
oa::F32

Default: -1.0F

inMax
oa::F32

Default: 1.0F

Returns

oa::Audio

The declared return value.

oa::Result<Audio> oa::FnAudio::decodeFile( const oa::Path & inPath )
Stateless CPU codec boundaries. Decode uploads planar Float32 storage through the active engine. encoding is an explicit synchronous host boundary; the semantic overload completes and reads back its input.

Parameters

inPath
const oa::Path &

Returns

oa::Result<Audio>

The declared return value.

oa::Result<Audio> oa::FnAudio::decodeMemory( oa::Span<const oa::U8> inData )
No public source comment is attached to this declaration.

Parameters

inData
oa::Span<const oa::U8>

Returns

oa::Result<Audio>

The declared return value.

oa::Result<oa::Vector<oa::U8>> oa::FnAudio::encodeInterleavedWavF32( oa::Span<const oa::F32> inSamples, oa::U32 inSampleRate, oa::U32 inChannelCount )
No public source comment is attached to this declaration.

Parameters

inSamples
oa::Span<const oa::F32>

inSampleRate
oa::U32

inChannelCount
oa::U32

Returns

oa::Result<oa::Vector<oa::U8>>

The declared return value.

oa::Result<oa::Vector<oa::U8>> oa::FnAudio::encodeWavF32( const Audio & inAudio )
No public source comment is attached to this declaration.

Parameters

inAudio
const Audio &

Returns

oa::Result<oa::Vector<oa::U8>>

The declared return value.

oa::Audio oa::FnAudio::fade( const oa::Audio & inAudio, oa::U64 inFadeInSamples, oa::U64 inFadeOutSamples )
fade: Apply linear fade-in and fade-out envelopes measured in samples.

Parameters

inAudio
const oa::Audio &

inFadeInSamples
oa::U64

inFadeOutSamples
oa::U64

Returns

oa::Audio

The declared return value.

oa::Audio oa::FnAudio::gain( const oa::Audio & inAudio, oa::F32 inGainDb )
gain: Apply scalar gain in dB while preserving audio metadata.

Parameters

inAudio
const oa::Audio &

inGainDb
oa::F32

Returns

oa::Audio

The declared return value.

oa::Matrix oa::FnAudio::melSpectrogram( const oa::Audio & inAudio, const oa::MelConfig & inCfg = {} )
melSpectrogram: Mel feature matrix in [Channels, NumMels, Frames] layout.

Parameters

inAudio
const oa::Audio &

inCfg
const oa::MelConfig &

Default: {}

Returns

oa::Matrix

The declared return value.

oa::Matrix oa::FnAudio::mfcc( const oa::Audio & inAudio, const oa::MfccConfig & inCfg = {} )
mfcc: Orthonormal DCT-II coefficients of the log-mel feature matrix.

Parameters

inAudio
const oa::Audio &

inCfg
const oa::MfccConfig &

Default: {}

Returns

oa::Matrix

The declared return value.

oa::Audio oa::FnAudio::mix( const oa::Audio & inA, const oa::Audio & inB, oa::F32 inGainA = 1.0F, oa::F32 inGainB = 1.0F )
mix: Weighted sum of two audio values with identical rate, layout, shape, and dtype.

Parameters

inA
const oa::Audio &

inB
const oa::Audio &

inGainA
oa::F32

Default: 1.0F

inGainB
oa::F32

Default: 1.0F

Returns

oa::Audio

The declared return value.

oa::Audio oa::FnAudio::normalize( const oa::Audio & inAudio, oa::F32 inTargetDb = -3.0F, oa::U8 inMode = 0 ) Audio oa::FnAudio::normalize( const Audio & inAudio, const NormalizeAudioConfig & inCfg )
normalize: Peak or RMS normalization to a target dB level while preserving audio metadata.

Parameters

inAudio
const oa::Audio &

inTargetDb
oa::F32

Default: -3.0F

inMode
oa::U8

Default: 0

Returns

oa::Audio

The declared return value.

oa::Audio oa::FnAudio::preEmphasis( const oa::Audio & inAudio, oa::F32 inAlpha = 0.97F )
preEmphasis: Apply y[n] = x[n] - alpha*x[n-1] while preserving audio metadata.

Parameters

inAudio
const oa::Audio &

inAlpha
oa::F32

Default: 0.97F

Returns

oa::Audio

The declared return value.

oa::Audio oa::FnAudio::resample( const oa::Audio & inAudio, oa::U32 inOutRate = 16'000U, oa::U32 inFilterHalfWidth = 64U ) Audio oa::FnAudio::resample( const Audio & inAudio, const ResampleConfig & inCfg )
resample: Windowed-sinc resampling with sample rate derived from the input audio value.

Parameters

inAudio
const oa::Audio &

inOutRate
oa::U32

Default: 16'000U

inFilterHalfWidth
oa::U32

Default: 64U

Returns

oa::Audio

The declared return value.

oa::Audio oa::FnAudio::reverb( const oa::Audio & inAudio, oa::F32 inDecaySeconds = 1.5F, oa::F32 inWet = 0.35F )
reverb: Render a finite zero-state Schroeder reverberation tail with decay time in seconds and a dry/wet mix.

Parameters

inAudio
const oa::Audio &

inDecaySeconds
oa::F32

Default: 1.5F

inWet
oa::F32

Default: 0.35F

Returns

oa::Audio

The declared return value.

oa::Audio oa::FnAudio::saturate( const oa::Audio & inAudio, oa::F32 inDriveDb = 0.0F, oa::F32 inMix = 1.0F )
saturate: Apply a tanh soft-clipping waveshaper with drive in dB and a dry/wet mix.

Parameters

inAudio
const oa::Audio &

inDriveDb
oa::F32

Default: 0.0F

inMix
oa::F32

Default: 1.0F

Returns

oa::Audio

The declared return value.

oa::Status oa::FnAudio::saveWavF32( const oa::Path & inPath, const Audio & inAudio )
No public source comment is attached to this declaration.

Parameters

inPath
const oa::Path &

inAudio
const Audio &

Returns

oa::Status

The declared return value.

oa::Audio oa::FnAudio::sosFilter( const oa::Audio & inAudio, oa::Span<const oa::BiquadCoefficients> inSections )
sosFilter: Apply one to 64 stable a0-normalized second-order sections as a zero-state cascade.

Parameters

inAudio
const oa::Audio &

inSections
oa::Span<const oa::BiquadCoefficients>

Returns

oa::Audio

The declared return value.

oa::Matrix oa::FnAudio::stft( const oa::Audio & inAudio, const oa::StftConfig & inCfg = {} )
stft: Short-time Fourier magnitude transform to [Channels, Frames, Bins].

Parameters

inAudio
const oa::Audio &

inCfg
const oa::StftConfig &

Default: {}

Returns

oa::Matrix

The declared return value.

oa::Audio oa::FnAudio::toMono( const oa::Audio & inAudio )
toMono: Average channels into one mono channel while retaining the sample rate.

Parameters

inAudio
const oa::Audio &

Returns

oa::Audio

The declared return value.

oa::Matrix oa::FnAudio::waveformEnvelope( const oa::Audio & inAudio, oa::U32 inBins = 2'048U )
waveformEnvelope: Reduce multichannel audio to a peak-preserving min/max display matrix.

Parameters

inAudio
const oa::Audio &

inBins
oa::U32

Default: 2'048U

Returns

oa::Matrix

The declared return value.