ACMX 2.139.0
Dual-Backend Real-Time GPU Video Synthesis
Loading...
Searching...
No Matches
acmxvk::audio::AudioEngine::Impl Class Reference

Public Member Functions

void close ()
 Impl ()
AudioMetrics metrics () const
bool open (const AudioStreamConfig &config)
int processCallback (float *output, const float *samples, unsigned int frame_count, RtAudioStreamStatus status)
int processSamples (const float *samples, unsigned int frame_count)
double recordingTime () const
void resetMetrics ()
std::vector< float > spectrum () const
bool startRecording ()
AudioRecording stopRecording ()
 ~Impl ()

Static Public Member Functions

static int audioCallback (void *output_buffer, void *input_buffer, unsigned int frame_count, double, RtAudioStreamStatus status, void *user_data)

Public Attributes

std::atomic< float > amplitude {0.0F}
std::atomic< float > frequency {0.0F}
std::atomic< float > high {0.0F}
unsigned int input_channels = 0
std::atomic< float > low {0.0F}
float low_pass_state = 0.0F
std::atomic< float > mid {0.0F}
float mid_pass_state = 0.0F
unsigned int output_channels = 0
bool pass_through = false
float pass_through_gain = 1.0F
std::atomic< float > peak {0.0F}
std::atomic< std::uint64_t > recorded_sample_count {0}
std::vector< float > recorded_samples
std::atomic< bool > recording {false}
float recording_gain = 1.0F
std::mutex recording_mutex
unsigned int recording_sample_rate = 44100
std::atomic< float > rms {0.0F}
std::atomic< unsigned int > sample_rate {44100}
std::atomic< float > sensitivity_value {1.0F}
std::atomic< float > smooth {0.0F}
float smooth_value = 0.0F
std::atomic< int > spectrum_front {0}
std::array< std::array< std::atomic< float >, AudioEngine::FFT_SIZE >, 2 > spectrum_samples {}
RtAudio stream

Detailed Description

Definition at line 91 of file ACMXVK/audio.cpp.

Constructor & Destructor Documentation

◆ Impl()

acmxvk::audio::AudioEngine::Impl::Impl ( )
inline

Definition at line 93 of file ACMXVK/audio.cpp.

References stream.

Referenced by audioCallback().

◆ ~Impl()

acmxvk::audio::AudioEngine::Impl::~Impl ( )
inline

Definition at line 94 of file ACMXVK/audio.cpp.

References close().

Member Function Documentation

◆ audioCallback()

int acmxvk::audio::AudioEngine::Impl::audioCallback ( void * output_buffer,
void * input_buffer,
unsigned int frame_count,
double ,
RtAudioStreamStatus status,
void * user_data )
inlinestatic

Definition at line 281 of file ACMXVK/audio.cpp.

References Impl(), and processCallback().

Referenced by open().

◆ close()

void acmxvk::audio::AudioEngine::Impl::close ( )
inline

Definition at line 212 of file ACMXVK/audio.cpp.

References stopRecording(), and stream.

Referenced by open(), and ~Impl().

◆ metrics()

AudioMetrics acmxvk::audio::AudioEngine::Impl::metrics ( ) const
inlinenodiscard

Definition at line 228 of file ACMXVK/audio.cpp.

References amplitude, frequency, high, low, mid, peak, rms, and smooth.

◆ open()

◆ processCallback()

int acmxvk::audio::AudioEngine::Impl::processCallback ( float * output,
const float * samples,
unsigned int frame_count,
RtAudioStreamStatus status )
inline

Definition at line 283 of file ACMXVK/audio.cpp.

References input_channels, output_channels, pass_through, pass_through_gain, and processSamples().

Referenced by audioCallback().

◆ processSamples()

int acmxvk::audio::AudioEngine::Impl::processSamples ( const float * samples,
unsigned int frame_count )
inline

◆ recordingTime()

double acmxvk::audio::AudioEngine::Impl::recordingTime ( ) const
inlinenodiscard

Definition at line 393 of file ACMXVK/audio.cpp.

References recorded_sample_count, and recording_sample_rate.

◆ resetMetrics()

void acmxvk::audio::AudioEngine::Impl::resetMetrics ( )
inline

◆ spectrum()

std::vector< float > acmxvk::audio::AudioEngine::Impl::spectrum ( ) const
inlinenodiscard

◆ startRecording()

bool acmxvk::audio::AudioEngine::Impl::startRecording ( )
inline

◆ stopRecording()

Member Data Documentation

◆ amplitude

std::atomic<float> acmxvk::audio::AudioEngine::Impl::amplitude {0.0F}

Definition at line 413 of file ACMXVK/audio.cpp.

Referenced by metrics(), processSamples(), and resetMetrics().

◆ frequency

std::atomic<float> acmxvk::audio::AudioEngine::Impl::frequency {0.0F}

Definition at line 414 of file ACMXVK/audio.cpp.

Referenced by metrics(), processSamples(), and resetMetrics().

◆ high

std::atomic<float> acmxvk::audio::AudioEngine::Impl::high {0.0F}

Definition at line 420 of file ACMXVK/audio.cpp.

Referenced by metrics(), processSamples(), and resetMetrics().

◆ input_channels

unsigned int acmxvk::audio::AudioEngine::Impl::input_channels = 0

Definition at line 430 of file ACMXVK/audio.cpp.

Referenced by open(), processCallback(), and processSamples().

◆ low

std::atomic<float> acmxvk::audio::AudioEngine::Impl::low {0.0F}

Definition at line 418 of file ACMXVK/audio.cpp.

Referenced by metrics(), processSamples(), and resetMetrics().

◆ low_pass_state

float acmxvk::audio::AudioEngine::Impl::low_pass_state = 0.0F

Definition at line 436 of file ACMXVK/audio.cpp.

Referenced by processSamples(), and resetMetrics().

◆ mid

std::atomic<float> acmxvk::audio::AudioEngine::Impl::mid {0.0F}

Definition at line 419 of file ACMXVK/audio.cpp.

Referenced by metrics(), processSamples(), and resetMetrics().

◆ mid_pass_state

float acmxvk::audio::AudioEngine::Impl::mid_pass_state = 0.0F

Definition at line 437 of file ACMXVK/audio.cpp.

Referenced by processSamples(), and resetMetrics().

◆ output_channels

unsigned int acmxvk::audio::AudioEngine::Impl::output_channels = 0

Definition at line 431 of file ACMXVK/audio.cpp.

Referenced by open(), and processCallback().

◆ pass_through

bool acmxvk::audio::AudioEngine::Impl::pass_through = false

Definition at line 432 of file ACMXVK/audio.cpp.

Referenced by open(), and processCallback().

◆ pass_through_gain

float acmxvk::audio::AudioEngine::Impl::pass_through_gain = 1.0F

Definition at line 433 of file ACMXVK/audio.cpp.

Referenced by open(), and processCallback().

◆ peak

std::atomic<float> acmxvk::audio::AudioEngine::Impl::peak {0.0F}

Definition at line 415 of file ACMXVK/audio.cpp.

Referenced by metrics(), processSamples(), and resetMetrics().

◆ recorded_sample_count

std::atomic<std::uint64_t> acmxvk::audio::AudioEngine::Impl::recorded_sample_count {0}

Definition at line 424 of file ACMXVK/audio.cpp.

Referenced by processSamples(), recordingTime(), and startRecording().

◆ recorded_samples

std::vector<float> acmxvk::audio::AudioEngine::Impl::recorded_samples

Definition at line 428 of file ACMXVK/audio.cpp.

Referenced by processSamples(), startRecording(), and stopRecording().

◆ recording

std::atomic<bool> acmxvk::audio::AudioEngine::Impl::recording {false}

Definition at line 423 of file ACMXVK/audio.cpp.

Referenced by processSamples(), startRecording(), and stopRecording().

◆ recording_gain

float acmxvk::audio::AudioEngine::Impl::recording_gain = 1.0F

Definition at line 434 of file ACMXVK/audio.cpp.

Referenced by open(), processSamples(), and startRecording().

◆ recording_mutex

std::mutex acmxvk::audio::AudioEngine::Impl::recording_mutex

Definition at line 427 of file ACMXVK/audio.cpp.

Referenced by processSamples(), startRecording(), and stopRecording().

◆ recording_sample_rate

unsigned int acmxvk::audio::AudioEngine::Impl::recording_sample_rate = 44100

Definition at line 429 of file ACMXVK/audio.cpp.

Referenced by recordingTime(), startRecording(), and stopRecording().

◆ rms

std::atomic<float> acmxvk::audio::AudioEngine::Impl::rms {0.0F}

Definition at line 416 of file ACMXVK/audio.cpp.

Referenced by metrics(), processSamples(), and resetMetrics().

◆ sample_rate

std::atomic<unsigned int> acmxvk::audio::AudioEngine::Impl::sample_rate {44100}

Definition at line 422 of file ACMXVK/audio.cpp.

Referenced by open(), processSamples(), and startRecording().

◆ sensitivity_value

std::atomic<float> acmxvk::audio::AudioEngine::Impl::sensitivity_value {1.0F}

Definition at line 421 of file ACMXVK/audio.cpp.

Referenced by open().

◆ smooth

std::atomic<float> acmxvk::audio::AudioEngine::Impl::smooth {0.0F}

Definition at line 417 of file ACMXVK/audio.cpp.

Referenced by metrics(), processSamples(), and resetMetrics().

◆ smooth_value

float acmxvk::audio::AudioEngine::Impl::smooth_value = 0.0F

Definition at line 435 of file ACMXVK/audio.cpp.

Referenced by processSamples(), and resetMetrics().

◆ spectrum_front

std::atomic<int> acmxvk::audio::AudioEngine::Impl::spectrum_front {0}

Definition at line 426 of file ACMXVK/audio.cpp.

Referenced by processSamples(), resetMetrics(), and spectrum().

◆ spectrum_samples

std::array<std::array<std::atomic<float>, AudioEngine::FFT_SIZE>, 2> acmxvk::audio::AudioEngine::Impl::spectrum_samples {}

Definition at line 425 of file ACMXVK/audio.cpp.

Referenced by processSamples(), resetMetrics(), and spectrum().

◆ stream

RtAudio acmxvk::audio::AudioEngine::Impl::stream

Definition at line 412 of file ACMXVK/audio.cpp.

Referenced by close(), Impl(), open(), and startRecording().


The documentation for this class was generated from the following file: