Zrythm
v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
resampler.h
1
// SPDX-FileCopyrightText: © 2023-2025 Alexandros Theodotou <alex@zrythm.org>
2
// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4
#pragma once
5
6
#include "zrythm-config.h"
7
8
#include "utils/audio.h"
9
#include "utils/types.h"
10
16
23
class
Resampler
24
{
25
public
:
26
enum class
Quality
27
{
28
Quick,
29
Low,
30
Medium,
31
High,
32
VeryHigh,
33
};
34
44
Resampler
(
45
const
zrythm::utils::audio::AudioBuffer
&in_frames,
46
const
double
input_rate,
47
const
double
output_rate,
48
const
Quality quality,
49
size_t
block_size = 1024);
50
51
~Resampler
();
52
59
void
process
();
60
64
bool
is_done
()
const
;
65
71
zrythm::utils::audio::AudioBuffer
get_out_frames
()
const
;
72
73
private
:
74
class
Impl;
75
std::unique_ptr<Impl> pimpl_;
76
};
77
Resampler::Resampler
Resampler(const zrythm::utils::audio::AudioBuffer &in_frames, const double input_rate, const double output_rate, const Quality quality, size_t block_size=1024)
Creates a new instance of a Resampler with the given settings.
Resampler::is_done
bool is_done() const
Indicates whether resampling is finished.
Resampler::get_out_frames
zrythm::utils::audio::AudioBuffer get_out_frames() const
Gets the interleaved output frames.
Resampler::process
void process()
To be called periodically until is_done() returns true.
zrythm::utils::audio::AudioBuffer
Definition
audio.h:114
src
utils
resampler.h
Generated by
1.16.1