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
11
#include "juce_wrapper.h"
12
18
25
class
Resampler
26
{
27
public
:
28
enum class
Quality
29
{
30
Quick,
31
Low,
32
Medium,
33
High,
34
VeryHigh,
35
};
36
46
Resampler
(
47
const
zrythm::utils::audio::AudioBuffer
&in_frames,
48
const
double
input_rate,
49
const
double
output_rate,
50
const
Quality quality,
51
size_t
block_size = 1024);
52
53
~Resampler
();
54
61
void
process
();
62
66
bool
is_done
()
const
;
67
73
zrythm::utils::audio::AudioBuffer
get_out_frames
()
const
;
74
75
private
:
76
class
Impl;
77
std::unique_ptr<Impl> pimpl_;
78
};
79
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:113
src
utils
resampler.h
Generated by
1.15.0