|
MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
|
Sample-accurate timing system for audio processing domain. More...
#include <Clock.hpp>
Inheritance diagram for MayaFlux::Vruta::SampleClock:
Collaboration diagram for MayaFlux::Vruta::SampleClock:Public Member Functions | |
| uint64_t | current_position () const override |
| Get current position in the domain's timeline. | |
| uint64_t | current_sample () const |
| Gets the current sample position. | |
| double | current_time () const override |
| Converts current sample position to seconds. | |
| uint32_t | rate () const override |
| Get the processing rate for this timing domain. | |
| void | reset () override |
| Reset clock to initial state (position 0) | |
| uint32_t | sample_rate () const |
| Gets the audio sample rate. | |
| SampleClock (uint64_t sample_rate=48000) | |
| Constructs a SampleClock with the specified sample rate. | |
| void | tick (uint64_t samples=1) override |
| Advances the clock by the specified number of samples. | |
Public Member Functions inherited from MayaFlux::Vruta::IClock | |
| virtual | ~IClock ()=default |
Private Attributes | |
| uint64_t | m_current_sample |
| Current sample position counter. | |
| uint32_t | m_sample_rate |
| Audio sample rate in samples per second. | |
Sample-accurate timing system for audio processing domain.
SampleClock provides precise sample-based timing for audio processing tasks. Unlike wall-clock time which can be imprecise and subject to system load variations, SampleClock advances strictly based on audio samples processed, ensuring perfect synchronization with the audio stream.
Key Characteristics:
This sample-based approach is essential for audio applications where precise timing is critical and operations must align perfectly with audio buffer boundaries. SampleClock serves as the authoritative timekeeper for the audio processing domain.