Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions packages/audiodocs/docs/guides/create-your-own-effect.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ public:
explicit MyProcessorNode(const std::shared_ptr<BaseAudioContext> &context, );

protected:
std::shared_ptr<AudioBuffer>
processNode(const std::shared_ptr<AudioBuffer> &buffer,
std::shared_ptr<DSPAudioBuffer>
processNode(const std::shared_ptr<DSPAudioBuffer> &buffer,
int framesToProcess) override;

// highlight-start
Expand All @@ -80,7 +80,7 @@ namespace audioapi {
isInitialized_.store(true, std::memory_order_release);
}

std::shared_ptr<AudioBuffer> MyProcessorNode::processNode(const std::shared_ptr<AudioBuffer> &buffer,
std::shared_ptr<DSPAudioBuffer> MyProcessorNode::processNode(const std::shared_ptr<DSPAudioBuffer> &buffer,
int framesToProcess) {
// highlight-start
for (int channel = 0; channel < buffer->getNumberOfChannels(); ++channel) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ MyProcessorNode::MyProcessorNode(
isInitialized_.store(true, std::memory_order_release);
}

std::shared_ptr<AudioBuffer>
MyProcessorNode::processNode(const std::shared_ptr<AudioBuffer> &buffer,
std::shared_ptr<DSPAudioBuffer>
MyProcessorNode::processNode(const std::shared_ptr<DSPAudioBuffer> &buffer,
int framesToProcess) {
// put your processing logic here
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ class MyProcessorNode : public AudioNode {
explicit MyProcessorNode(const std::shared_ptr<BaseAudioContext> &context, );

protected:
std::shared_ptr<AudioBuffer>
processNode(const std::shared_ptr<AudioBuffer> &buffer,
std::shared_ptr<DSPAudioBuffer>
processNode(const std::shared_ptr<DSPAudioBuffer> &buffer,
int framesToProcess) override;
};
} // namespace audioapi
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
#include <audioapi/core/utils/Locker.h>
#include <audioapi/events/AudioEventHandlerRegistry.h>
#include <audioapi/utils/AudioFileProperties.h>
#include <audioapi/utils/CircularAudioArray.h>
#include <audioapi/utils/CircularArray.hpp>
#include <audioapi/utils/CircularOverflowableAudioArray.h>

#include <memory>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

namespace audioapi {

class CircularAudioArray;
class AudioFileProperties;
class AndroidRecorderCallback;
class AndroidFileWriterBackend;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
namespace audioapi {

AudioPlayer::AudioPlayer(
const std::function<void(std::shared_ptr<AudioBuffer>, int)> &renderAudio,
const std::function<void(std::shared_ptr<DSPAudioBuffer>, int)> &renderAudio,
float sampleRate,
int channelCount)
: renderAudio_(renderAudio),
Expand Down Expand Up @@ -42,7 +42,7 @@ bool AudioPlayer::openAudioStream() {
return false;
}

buffer_ = std::make_shared<AudioBuffer>(RENDER_QUANTUM_SIZE, channelCount_, sampleRate_);
buffer_ = std::make_shared<DSPAudioBuffer>(RENDER_QUANTUM_SIZE, channelCount_, sampleRate_);
return true;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class AudioContext;
class AudioPlayer : public AudioStreamDataCallback, AudioStreamErrorCallback {
public:
AudioPlayer(
const std::function<void(std::shared_ptr<AudioBuffer>, int)> &renderAudio,
const std::function<void(std::shared_ptr<DSPAudioBuffer>, int)> &renderAudio,
float sampleRate,
int channelCount);

Expand All @@ -40,9 +40,9 @@ class AudioPlayer : public AudioStreamDataCallback, AudioStreamErrorCallback {
void onErrorAfterClose(AudioStream * /* audioStream */, Result /* error */) override;

private:
std::function<void(std::shared_ptr<AudioBuffer>, int)> renderAudio_;
std::function<void(std::shared_ptr<DSPAudioBuffer>, int)> renderAudio_;
std::shared_ptr<AudioStream> mStream_;
std::shared_ptr<AudioBuffer> buffer_;
std::shared_ptr<DSPAudioBuffer> buffer_;
bool isInitialized_ = false;
float sampleRate_;
int channelCount_;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
#include <audioapi/events/AudioEventHandlerRegistry.h>
#include <audioapi/libs/miniaudio/miniaudio.h>
#include <audioapi/utils/AudioArray.hpp>

#include <audioapi/utils/CircularAudioArray.h>
#include <audioapi/utils/CircularArray.hpp>

#include <algorithm>
#include <memory>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

namespace audioapi {

class CircularAudioArray;
class AudioEventHandlerRegistry;

struct CallbackData {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,17 +80,17 @@ void ConvolverNodeHostObject::setBuffer(const std::shared_ptr<AudioBuffer> &buff
convolvers.back().init(RENDER_QUANTUM_SIZE, channelData, copiedBuffer->getSize());
}

auto internalBuffer = std::make_shared<AudioBuffer>(
auto internalBuffer = std::make_shared<DSPAudioBuffer>(
RENDER_QUANTUM_SIZE * 2, convolverNode->getChannelCount(), copiedBuffer->getSampleRate());
auto intermediateBuffer = std::make_shared<AudioBuffer>(
auto intermediateBuffer = std::make_shared<DSPAudioBuffer>(
RENDER_QUANTUM_SIZE, convolvers.size(), copiedBuffer->getSampleRate());

struct SetupData {
std::shared_ptr<AudioBuffer> buffer;
std::vector<Convolver> convolvers;
std::shared_ptr<ThreadPool> threadPool;
std::shared_ptr<AudioBuffer> internalBuffer;
std::shared_ptr<AudioBuffer> intermediateBuffer;
std::shared_ptr<DSPAudioBuffer> internalBuffer;
std::shared_ptr<DSPAudioBuffer> intermediateBuffer;
float scaleFactor;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
#include <audioapi/core/BaseAudioContext.h>
#include <audioapi/core/effects/WaveShaperNode.h>
#include <audioapi/types/NodeOptions.h>
#include <audioapi/utils/AudioArrayBuffer.hpp>

#include <memory>
#include <utility>
Expand Down Expand Up @@ -47,8 +46,8 @@ JSI_HOST_FUNCTION_IMPL(WaveShaperNodeHostObject, setCurve) {
thisValue.asObject(runtime).setExternalMemoryPressure(runtime, arrayBuffer.size(runtime) * 2);

auto size = static_cast<size_t>(arrayBuffer.size(runtime) / sizeof(float));
curve = std::make_shared<AudioArrayBuffer>(
reinterpret_cast<float *>(arrayBuffer.data(runtime)), size);
curve =
std::make_shared<AudioArray>(reinterpret_cast<float *>(arrayBuffer.data(runtime)), size);
}

auto event = [waveShaperNode, curve](BaseAudioContext &) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,13 +169,13 @@ void AudioBufferSourceNodeHostObject::setBuffer(const std::shared_ptr<AudioBuffe
auto audioBufferSourceNode = std::static_pointer_cast<AudioBufferSourceNode>(node_);

std::shared_ptr<AudioBuffer> copiedBuffer;
std::shared_ptr<AudioBuffer> playbackRateBuffer;
std::shared_ptr<AudioBuffer> audioBuffer;
std::shared_ptr<DSPAudioBuffer> playbackRateBuffer;
std::shared_ptr<DSPAudioBuffer> audioBuffer;

if (buffer == nullptr) {
copiedBuffer = nullptr;
playbackRateBuffer = nullptr;
audioBuffer = std::make_shared<AudioBuffer>(
audioBuffer = std::make_shared<DSPAudioBuffer>(
RENDER_QUANTUM_SIZE, 1, audioBufferSourceNode->getContextSampleRate());
} else {
if (pitchCorrection_) {
Expand All @@ -191,11 +191,11 @@ void AudioBufferSourceNodeHostObject::setBuffer(const std::shared_ptr<AudioBuffe
copiedBuffer = std::make_shared<AudioBuffer>(*buffer);
}

playbackRateBuffer = std::make_shared<AudioBuffer>(
playbackRateBuffer = std::make_shared<DSPAudioBuffer>(
3 * RENDER_QUANTUM_SIZE,
copiedBuffer->getNumberOfChannels(),
audioBufferSourceNode->getContextSampleRate());
audioBuffer = std::make_shared<AudioBuffer>(
audioBuffer = std::make_shared<DSPAudioBuffer>(
RENDER_QUANTUM_SIZE,
copiedBuffer->getNumberOfChannels(),
audioBufferSourceNode->getContextSampleRate());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ inline WaveShaperOptions parseWaveShaperOptions(
if (optionsObject.hasProperty(runtime, "buffer")) {
auto arrayBuffer = optionsObject.getPropertyAsObject(runtime, "buffer").getArrayBuffer(runtime);

options.curve = std::make_shared<AudioArrayBuffer>(
options.curve = std::make_shared<AudioArray>(
reinterpret_cast<float *>(arrayBuffer.data(runtime)),
static_cast<size_t>(arrayBuffer.size(runtime) / sizeof(float)));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,8 @@ bool AudioContext::start() {
return false;
}

std::function<void(std::shared_ptr<AudioBuffer>, int)> AudioContext::renderAudio() {
return [this](const std::shared_ptr<AudioBuffer> &data, int frames) {
std::function<void(std::shared_ptr<DSPAudioBuffer>, int)> AudioContext::renderAudio() {
return [this](const std::shared_ptr<DSPAudioBuffer> &data, int frames) {
destination_->renderAudio(data, frames);
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include <audioapi/core/BaseAudioContext.h>
#include <audioapi/core/utils/worklets/SafeIncludes.h>
#include <audioapi/utils/AudioBuffer.hpp>

#include <functional>
#include <memory>
Expand Down Expand Up @@ -37,7 +38,7 @@ class AudioContext : public BaseAudioContext {

bool isDriverRunning() const override;

std::function<void(std::shared_ptr<AudioBuffer>, int)> renderAudio();
std::function<void(std::shared_ptr<DSPAudioBuffer>, int)> renderAudio();
};

} // namespace audioapi
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ AudioNode::AudioNode(
channelCountMode_(options.channelCountMode),
channelInterpretation_(options.channelInterpretation),
requiresTailProcessing_(options.requiresTailProcessing) {
audioBuffer_ =
std::make_shared<AudioBuffer>(RENDER_QUANTUM_SIZE, channelCount_, context->getSampleRate());
audioBuffer_ = std::make_shared<DSPAudioBuffer>(
RENDER_QUANTUM_SIZE, channelCount_, context->getSampleRate());
}

AudioNode::~AudioNode() {
Expand Down Expand Up @@ -100,8 +100,8 @@ void AudioNode::disable() {
}
}

std::shared_ptr<AudioBuffer> AudioNode::processAudio(
const std::shared_ptr<AudioBuffer> &outputBuffer,
std::shared_ptr<DSPAudioBuffer> AudioNode::processAudio(
const std::shared_ptr<DSPAudioBuffer> &outputBuffer,
int framesToProcess,
bool checkIsAlreadyProcessed) {
if (!isInitialized_.load(std::memory_order_acquire)) {
Expand Down Expand Up @@ -146,8 +146,8 @@ bool AudioNode::isAlreadyProcessed() {
return true;
}

std::shared_ptr<AudioBuffer> AudioNode::processInputs(
const std::shared_ptr<AudioBuffer> &outputBuffer,
std::shared_ptr<DSPAudioBuffer> AudioNode::processInputs(
const std::shared_ptr<DSPAudioBuffer> &outputBuffer,
int framesToProcess,
bool checkIsAlreadyProcessed) {
auto processingBuffer = audioBuffer_;
Expand Down Expand Up @@ -175,8 +175,8 @@ std::shared_ptr<AudioBuffer> AudioNode::processInputs(
return processingBuffer;
}

std::shared_ptr<AudioBuffer> AudioNode::applyChannelCountMode(
const std::shared_ptr<AudioBuffer> &processingBuffer) {
std::shared_ptr<DSPAudioBuffer> AudioNode::applyChannelCountMode(
const std::shared_ptr<DSPAudioBuffer> &processingBuffer) {
// If the channelCountMode is EXPLICIT, the node should output the number of
// channels specified by the channelCount.
if (channelCountMode_ == ChannelCountMode::EXPLICIT) {
Expand All @@ -193,7 +193,7 @@ std::shared_ptr<AudioBuffer> AudioNode::applyChannelCountMode(
return processingBuffer;
}

void AudioNode::mixInputsBuffers(const std::shared_ptr<AudioBuffer> &processingBuffer) {
void AudioNode::mixInputsBuffers(const std::shared_ptr<DSPAudioBuffer> &processingBuffer) {
assert(processingBuffer != nullptr);

for (auto it = inputBuffers_.begin(), end = inputBuffers_.end(); it != end; ++it) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ class AudioNode : public std::enable_shared_from_this<AudioNode> {
void disconnect();
void disconnect(const std::shared_ptr<AudioNode> &node);
void disconnect(const std::shared_ptr<AudioParam> &param);
virtual std::shared_ptr<AudioBuffer> processAudio(
const std::shared_ptr<AudioBuffer> &outputBuffer,
virtual std::shared_ptr<DSPAudioBuffer> processAudio(
const std::shared_ptr<DSPAudioBuffer> &outputBuffer,
int framesToProcess,
bool checkIsAlreadyProcessed);

Expand Down Expand Up @@ -69,7 +69,7 @@ class AudioNode : public std::enable_shared_from_this<AudioNode> {
friend class DelayNodeHostObject;

std::weak_ptr<BaseAudioContext> context_;
std::shared_ptr<AudioBuffer> audioBuffer_;
std::shared_ptr<DSPAudioBuffer> audioBuffer_;

const int numberOfInputs_ = 1;
const int numberOfOutputs_ = 1;
Expand All @@ -92,18 +92,20 @@ class AudioNode : public std::enable_shared_from_this<AudioNode> {

private:
bool isEnabled_ = true;
std::vector<std::shared_ptr<AudioBuffer>> inputBuffers_ = {};
std::vector<std::shared_ptr<DSPAudioBuffer>> inputBuffers_ = {};

virtual std::shared_ptr<AudioBuffer> processInputs(
const std::shared_ptr<AudioBuffer> &outputBuffer,
virtual std::shared_ptr<DSPAudioBuffer> processInputs(
const std::shared_ptr<DSPAudioBuffer> &outputBuffer,
int framesToProcess,
bool checkIsAlreadyProcessed);
virtual std::shared_ptr<AudioBuffer> processNode(const std::shared_ptr<AudioBuffer> &, int) = 0;
virtual std::shared_ptr<DSPAudioBuffer> processNode(
const std::shared_ptr<DSPAudioBuffer> &,
int) = 0;

bool isAlreadyProcessed();
std::shared_ptr<AudioBuffer> applyChannelCountMode(
const std::shared_ptr<AudioBuffer> &processingBuffer);
void mixInputsBuffers(const std::shared_ptr<AudioBuffer> &processingBuffer);
std::shared_ptr<DSPAudioBuffer> applyChannelCountMode(
const std::shared_ptr<DSPAudioBuffer> &processingBuffer);
void mixInputsBuffers(const std::shared_ptr<DSPAudioBuffer> &processingBuffer);

void connectNode(const std::shared_ptr<AudioNode> &node);
void disconnectNode(const std::shared_ptr<AudioNode> &node);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ AudioParam::AudioParam(
startValue_(defaultValue),
endValue_(defaultValue),
audioBuffer_(
std::make_shared<AudioBuffer>(RENDER_QUANTUM_SIZE, 1, context->getSampleRate())) {
std::make_shared<DSPAudioBuffer>(RENDER_QUANTUM_SIZE, 1, context->getSampleRate())) {
inputBuffers_.reserve(4);
inputNodes_.reserve(4);
// Default calculation function just returns the static value
Expand Down Expand Up @@ -220,8 +220,8 @@ void AudioParam::removeInputNode(AudioNode *node) {
}
}

std::shared_ptr<AudioBuffer> AudioParam::calculateInputs(
const std::shared_ptr<AudioBuffer> &processingBuffer,
std::shared_ptr<DSPAudioBuffer> AudioParam::calculateInputs(
const std::shared_ptr<DSPAudioBuffer> &processingBuffer,
int framesToProcess) {
processingBuffer->zero();
if (inputNodes_.empty()) {
Expand All @@ -232,7 +232,7 @@ std::shared_ptr<AudioBuffer> AudioParam::calculateInputs(
return processingBuffer;
}

std::shared_ptr<AudioBuffer> AudioParam::processARateParam(int framesToProcess, double time) {
std::shared_ptr<DSPAudioBuffer> AudioParam::processARateParam(int framesToProcess, double time) {
auto processingBuffer = calculateInputs(audioBuffer_, framesToProcess);

std::shared_ptr<BaseAudioContext> context = context_.lock();
Expand Down Expand Up @@ -261,7 +261,7 @@ float AudioParam::processKRateParam(int framesToProcess, double time) {
}

void AudioParam::processInputs(
const std::shared_ptr<AudioBuffer> &outputBuffer,
const std::shared_ptr<DSPAudioBuffer> &outputBuffer,
int framesToProcess,
bool checkIsAlreadyProcessed) {
for (auto it = inputNodes_.begin(), end = inputNodes_.end(); it != end; ++it) {
Expand All @@ -279,7 +279,7 @@ void AudioParam::processInputs(
}
}

void AudioParam::mixInputsBuffers(const std::shared_ptr<AudioBuffer> &processingBuffer) {
void AudioParam::mixInputsBuffers(const std::shared_ptr<DSPAudioBuffer> &processingBuffer) {
assert(processingBuffer != nullptr);

// Sum all input buffers into the processing buffer
Expand Down
Loading
Loading