ACMX 2.136.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 99 of file ACMXVK/audio.cpp.

Constructor & Destructor Documentation

◆ Impl()

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

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

References stream.

Referenced by audioCallback().

◆ ~Impl()

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

Definition at line 102 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 339 of file ACMXVK/audio.cpp.

References Impl(), and processCallback().

Referenced by open().

◆ close()

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

Definition at line 262 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 279 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 348 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 491 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 514 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 515 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 521 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 532 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 519 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 538 of file ACMXVK/audio.cpp.

Referenced by processSamples(), and resetMetrics().

◆ mid

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

Definition at line 520 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 539 of file ACMXVK/audio.cpp.

Referenced by processSamples(), and resetMetrics().

◆ output_channels

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

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

Referenced by open(), and processCallback().

◆ pass_through

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

Definition at line 534 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 535 of file ACMXVK/audio.cpp.

Referenced by open(), and processCallback().

◆ peak

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

Definition at line 516 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 525 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 530 of file ACMXVK/audio.cpp.

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

◆ recording

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

Definition at line 524 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 536 of file ACMXVK/audio.cpp.

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

◆ recording_mutex

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

Definition at line 529 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 531 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 517 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 523 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 522 of file ACMXVK/audio.cpp.

Referenced by open().

◆ smooth

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

Definition at line 518 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 537 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 528 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 527 of file ACMXVK/audio.cpp.

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

◆ stream

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

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

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


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