|
MayaFlux 0.1.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 | |
| 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. | |
| uint64_t | current_sample () const |
| Gets the current sample position. | |
| uint64_t | current_position () const override |
| Get current position in the domain's timeline. | |
| double | current_time () const override |
| Converts current sample position to seconds. | |
| uint32_t | sample_rate () const |
| Gets the audio sample rate. | |
| uint32_t | rate () const override |
| Get the processing rate for this timing domain. | |
| void | reset () override |
| Reset clock to initial state (position 0) | |
Public Member Functions inherited from MayaFlux::Vruta::IClock | |
| virtual | ~IClock ()=default |
Private Attributes | |
| uint32_t | m_sample_rate |
| Audio sample rate in samples per second. | |
| uint64_t | m_current_sample |
| Current sample position counter. | |
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.