Skip to content

Commit f34d7a5

Browse files
author
Maciej Makowski
committed
feat: added support for playing different AudioBuffer sample rates
1 parent 06e04a0 commit f34d7a5

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

packages/react-native-audio-api/common/cpp/core/AudioBufferSourceNode.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,11 @@ float AudioBufferSourceNode::getPlaybackRateValue(size_t &startOffset) {
232232
auto time = context_->getCurrentTime() +
233233
static_cast<double>(startOffset) / context_->getSampleRate();
234234

235-
return playbackRateParam_->getValueAtTime(time) *
236-
std::pow(2.0f, detuneParam_->getValueAtTime(time) / 1200.0f);
235+
auto sampleRateFactor = buffer_->getSampleRate() / context_->getSampleRate();
236+
auto detune = std::pow(2.0f, detuneParam_->getValueAtTime(time) / 1200.0f);
237+
auto playbackRate = playbackRateParam_->getValueAtTime(time);
238+
239+
return playbackRate * sampleRateFactor * detune;
237240
}
238241

239242
double AudioBufferSourceNode::getVirtualStartFrame() {

0 commit comments

Comments
 (0)