Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
voice_sum_mixer.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <span>
5
7
8namespace pulp::audio {
9
12 float gain = 1.0f;
13 bool active = true;
14};
15
17 bool accumulate = true;
18};
19
21 // Max destination frame index touched + 1. When accumulate is false,
22 // destination clearing counts as touching the clamped frame range.
23 std::uint64_t frames_mixed = 0;
24 std::uint32_t inputs_mixed = 0;
25 std::uint32_t inputs_skipped = 0;
26 std::uint32_t nonfinite_gains = 0;
27};
28
30public:
31 // Allocation-free static mixer for prepared voice scratch buffers. Source
32 // and destination buffers must not overlap. Mono sources duplicate across
33 // outputs; multichannel sources feed matching output channels only.
34 static VoiceSumResult mix(std::span<const VoiceSumInput> inputs,
35 BufferView<float> destination,
36 std::uint64_t frames,
37 const VoiceSumOptions& options = {}) noexcept;
38};
39
40} // namespace pulp::audio
Non-owning view over multi-channel audio sample data.
Definition buffer.hpp:30
Definition voice_sum_mixer.hpp:29
static VoiceSumResult mix(std::span< const VoiceSumInput > inputs, BufferView< float > destination, std::uint64_t frames, const VoiceSumOptions &options={}) noexcept
Definition analyzer_provider.hpp:12
Definition voice_sum_mixer.hpp:10
bool active
Definition voice_sum_mixer.hpp:13
BufferView< const float > source
Definition voice_sum_mixer.hpp:11
float gain
Definition voice_sum_mixer.hpp:12
Definition voice_sum_mixer.hpp:16
bool accumulate
Definition voice_sum_mixer.hpp:17
Definition voice_sum_mixer.hpp:20
std::uint32_t nonfinite_gains
Definition voice_sum_mixer.hpp:26
std::uint32_t inputs_mixed
Definition voice_sum_mixer.hpp:24
std::uint32_t inputs_skipped
Definition voice_sum_mixer.hpp:25
std::uint64_t frames_mixed
Definition voice_sum_mixer.hpp:23