arduino-audio-tools
Loading...
Searching...
No Matches
src
AudioTools
Communication
AdaptiveResamplingStream.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
AudioTools/Communication/AdaptiveResamplingBuffer.h
"
4
#include "
AudioTools/CoreAudio/AudioStreams.h
"
5
6
namespace
audio_tools
{
7
25
class
AdaptiveResamplingStream
:
public
AudioStream
{
26
public
:
31
AdaptiveResamplingStream
() {
addNotifyAudioChange
(
resampling_buffer
); }
38
AdaptiveResamplingStream
(
BaseBuffer<uint8_t>
& buffer,
39
float
stepRangePercent = 5.0f)
40
:
resampling_buffer
(buffer, stepRangePercent) {
41
addNotifyAudioChange
(
resampling_buffer
);
42
}
43
49
void
setBuffer
(
BaseBuffer<uint8_t>
& buffer) {
50
resampling_buffer
.
setBuffer
(buffer);
51
}
52
58
bool
begin
() {
59
resampling_buffer
.
setAudioInfo
(
audioInfo
());
60
return
resampling_buffer
.
begin
();
61
}
62
70
size_t
write
(
const
uint8_t* data,
size_t
len)
override
{
71
return
resampling_buffer
.
writeArray
(data, len);
72
}
73
77
void
end
() {
resampling_buffer
.
end
(); }
78
86
size_t
readBytes
(uint8_t* data,
size_t
len)
override
{
87
return
resampling_buffer
.
readArray
(data, len);
88
}
89
95
float
recalculate
() {
return
resampling_buffer
.
recalculate
(); }
96
102
void
setStepRangePercent
(
float
rangePercent) {
103
resampling_buffer
.
setStepRangePercent
(rangePercent);
104
}
105
114
void
setStartFillPercent
(
float
percent) {
115
resampling_buffer
.
setStartFillPercent
(percent);
116
}
117
120
bool
isPrimed
() {
return
resampling_buffer
.
isPrimed
(); }
121
127
float
levelPercentActual
() {
return
resampling_buffer
.
levelPercent
(); }
128
134
float
levelPercent
() {
return
resampling_buffer
.
levelPercentSmoothed
(); }
135
142
void
setKalmanParameters
(
float
process_noise,
float
measurement_noise) {
143
resampling_buffer
.
setKalmanParameters
(process_noise, measurement_noise);
144
}
145
153
void
setPIDParameters
(
float
p_value,
float
i_value,
float
d_value) {
154
resampling_buffer
.
setPIDParameters
(p_value, i_value, d_value);
155
}
156
157
protected
:
158
AdaptiveResamplingBuffer
resampling_buffer
;
159
};
160
161
}
// namespace audio_tools
AdaptiveResamplingBuffer.h
AudioStreams.h
audio_tools::AdaptiveResamplingBuffer
A BaseBuffer<uint8_t> that wraps a raw (unresampled) backing buffer and transparently resamples on re...
Definition
AdaptiveResamplingBuffer.h:52
audio_tools::AdaptiveResamplingBuffer::setStepRangePercent
void setStepRangePercent(float rangePercent)
Set the allowed resampling range as a percent.
Definition
AdaptiveResamplingBuffer.h:346
audio_tools::AdaptiveResamplingBuffer::setStartFillPercent
void setStartFillPercent(float percent)
Defines the fill level (in percent of the backing buffer's capacity) that must be reached once,...
Definition
AdaptiveResamplingBuffer.h:83
audio_tools::AdaptiveResamplingBuffer::setBuffer
void setBuffer(BaseBuffer< uint8_t > &buffer)
Set the raw (unresampled) backing buffer.
Definition
AdaptiveResamplingBuffer.h:98
audio_tools::AdaptiveResamplingBuffer::setPIDParameters
void setPIDParameters(float p_value, float i_value, float d_value)
Set the PID controller parameters.
Definition
AdaptiveResamplingBuffer.h:383
audio_tools::AdaptiveResamplingBuffer::readArray
int readArray(uint8_t data[], int len) override
Definition
AdaptiveResamplingBuffer.h:170
audio_tools::AdaptiveResamplingBuffer::isPrimed
bool isPrimed()
Definition
AdaptiveResamplingBuffer.h:364
audio_tools::AdaptiveResamplingBuffer::begin
bool begin()
Initialize the buffer and internal components.
Definition
AdaptiveResamplingBuffer.h:117
audio_tools::AdaptiveResamplingBuffer::levelPercent
float levelPercent() override
Current actual fill level of the backing buffer in percent (0-100).
Definition
AdaptiveResamplingBuffer.h:244
audio_tools::AdaptiveResamplingBuffer::end
void end()
End the buffer and release resources.
Definition
AdaptiveResamplingBuffer.h:143
audio_tools::AdaptiveResamplingBuffer::setKalmanParameters
void setKalmanParameters(float process_noise, float measurement_noise)
Set the Kalman filter parameters.
Definition
AdaptiveResamplingBuffer.h:372
audio_tools::AdaptiveResamplingBuffer::levelPercentSmoothed
float levelPercentSmoothed()
Get the Kalman-smoothed fill level from the last recalculate() call, in percent.
Definition
AdaptiveResamplingBuffer.h:356
audio_tools::AdaptiveResamplingBuffer::setAudioInfo
void setAudioInfo(AudioInfo info) override
Defines the audio format: needed to correctly interpret and resample the sample frames stored in the ...
Definition
AdaptiveResamplingBuffer.h:104
audio_tools::AdaptiveResamplingBuffer::recalculate
float recalculate()
Recalculate the resampling step size based on buffer fill level. Called automatically by writeArray()...
Definition
AdaptiveResamplingBuffer.h:255
audio_tools::AdaptiveResamplingBuffer::writeArray
int writeArray(const uint8_t data[], int len) override
Definition
AdaptiveResamplingBuffer.h:157
audio_tools::AdaptiveResamplingStream
An Audio Stream backed by a buffer (queue) which tries to correct jitter and automatically adjusts fo...
Definition
AdaptiveResamplingStream.h:25
audio_tools::AdaptiveResamplingStream::setStepRangePercent
void setStepRangePercent(float rangePercent)
Set the allowed resampling range as a percent.
Definition
AdaptiveResamplingStream.h:102
audio_tools::AdaptiveResamplingStream::setStartFillPercent
void setStartFillPercent(float percent)
Defines the fill level (percent) that must be reached once, right after begin(), before any data is r...
Definition
AdaptiveResamplingStream.h:114
audio_tools::AdaptiveResamplingStream::setBuffer
void setBuffer(BaseBuffer< uint8_t > &buffer)
Set the buffer used for audio data.
Definition
AdaptiveResamplingStream.h:49
audio_tools::AdaptiveResamplingStream::setPIDParameters
void setPIDParameters(float p_value, float i_value, float d_value)
Set the PID controller parameters.
Definition
AdaptiveResamplingStream.h:153
audio_tools::AdaptiveResamplingStream::AdaptiveResamplingStream
AdaptiveResamplingStream()
Construct a new AdaptiveResamplingStream object You need to call setBuffer() and setStepRangePercent(...
Definition
AdaptiveResamplingStream.h:31
audio_tools::AdaptiveResamplingStream::isPrimed
bool isPrimed()
Definition
AdaptiveResamplingStream.h:120
audio_tools::AdaptiveResamplingStream::readBytes
size_t readBytes(uint8_t *data, size_t len) override
Read resampled audio data from the buffer.
Definition
AdaptiveResamplingStream.h:86
audio_tools::AdaptiveResamplingStream::begin
bool begin()
Initialize the stream and internal components.
Definition
AdaptiveResamplingStream.h:58
audio_tools::AdaptiveResamplingStream::AdaptiveResamplingStream
AdaptiveResamplingStream(BaseBuffer< uint8_t > &buffer, float stepRangePercent=5.0f)
Construct a new AdaptiveResamplingStream object.
Definition
AdaptiveResamplingStream.h:38
audio_tools::AdaptiveResamplingStream::write
size_t write(const uint8_t *data, size_t len) override
Write audio data to the buffer.
Definition
AdaptiveResamplingStream.h:70
audio_tools::AdaptiveResamplingStream::levelPercent
float levelPercent()
Get the fill level at the last calculation in percent.
Definition
AdaptiveResamplingStream.h:134
audio_tools::AdaptiveResamplingStream::end
void end()
End the stream and release resources.
Definition
AdaptiveResamplingStream.h:77
audio_tools::AdaptiveResamplingStream::setKalmanParameters
void setKalmanParameters(float process_noise, float measurement_noise)
Set the Kalman filter parameters.
Definition
AdaptiveResamplingStream.h:142
audio_tools::AdaptiveResamplingStream::resampling_buffer
AdaptiveResamplingBuffer resampling_buffer
Definition
AdaptiveResamplingStream.h:158
audio_tools::AdaptiveResamplingStream::levelPercentActual
float levelPercentActual()
Get the current actual buffer fill level in percent.
Definition
AdaptiveResamplingStream.h:127
audio_tools::AdaptiveResamplingStream::recalculate
float recalculate()
Recalculate the resampling step size based on buffer fill level.
Definition
AdaptiveResamplingStream.h:95
audio_tools::AudioInfoSource::addNotifyAudioChange
virtual void addNotifyAudioChange(AudioInfoSupport &bi)
Adds target to be notified about audio changes.
Definition
AudioTypes.h:149
audio_tools::AudioStream
Base class for all Audio Streams. It support the boolean operator to test if the object is ready with...
Definition
BaseStream.h:120
audio_tools::AudioStream::audioInfo
virtual AudioInfo audioInfo() override
provides the actual input AudioInfo
Definition
BaseStream.h:151
audio_tools::BaseBuffer
Shared functionality of all buffers.
Definition
Buffers.h:23
audio_tools
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition
LMSEchoCancellationStream.h:6
Generated by
1.9.8