react-native-audio-api 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/cpp/core/AudioPlayer.cpp +38 -11
- package/android/src/main/cpp/core/AudioPlayer.h +5 -1
- package/common/cpp/HostObjects/AudioAPIInstallerHostObject.h +11 -3
- package/common/cpp/HostObjects/AudioNodeHostObject.h +5 -0
- package/common/cpp/core/AudioContext.cpp +41 -1
- package/common/cpp/core/AudioContext.h +17 -0
- package/common/cpp/core/AudioNode.cpp +15 -3
- package/common/cpp/core/AudioNode.h +1 -0
- package/common/cpp/core/BaseAudioContext.cpp +0 -40
- package/common/cpp/core/BaseAudioContext.h +5 -18
- package/common/cpp/core/Constants.h +3 -2
- package/common/cpp/jsi/JsiHostObject.h +1 -1
- package/common/cpp/jsi/JsiPromise.h +1 -0
- package/common/cpp/utils/VectorMath.cpp +1 -1
- package/ios/core/AudioPlayer.h +3 -2
- package/ios/core/AudioPlayer.m +49 -15
- package/ios/core/IOSAudioPlayer.h +3 -1
- package/ios/core/IOSAudioPlayer.mm +46 -10
- package/lib/module/core/AudioContext.js +2 -2
- package/lib/module/core/AudioContext.js.map +1 -1
- package/lib/module/core/AudioNode.js +5 -5
- package/lib/module/core/AudioNode.js.map +1 -1
- package/lib/module/index.js +10 -6
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/core/AudioContext.d.ts +1 -1
- package/lib/typescript/core/AudioContext.d.ts.map +1 -1
- package/lib/typescript/core/AudioNode.d.ts +2 -2
- package/lib/typescript/core/AudioNode.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +3 -3
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/interfaces.d.ts +1 -1
- package/lib/typescript/interfaces.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/AudioContext.ts +2 -2
- package/src/core/AudioNode.ts +5 -5
- package/src/index.ts +11 -6
- package/src/interfaces.ts +1 -1
- package/src/specs/global.d.ts +1 -1
|
@@ -21,17 +21,36 @@ AudioPlayer::AudioPlayer(
|
|
|
21
21
|
->setDataCallback(this)
|
|
22
22
|
->openStream(mStream_);
|
|
23
23
|
|
|
24
|
+
sampleRate_ = mStream_->getSampleRate();
|
|
24
25
|
mBus_ = std::make_shared<AudioBus>(
|
|
25
|
-
|
|
26
|
+
sampleRate_, RENDER_QUANTUM_SIZE, CHANNEL_COUNT);
|
|
26
27
|
isInitialized_ = true;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
AudioPlayer::AudioPlayer(
|
|
31
|
+
const std::function<void(AudioBus *, int)> &renderAudio,
|
|
32
|
+
int sampleRate)
|
|
33
|
+
: renderAudio_(renderAudio) {
|
|
34
|
+
AudioStreamBuilder builder;
|
|
35
|
+
|
|
36
|
+
builder.setSharingMode(SharingMode::Exclusive)
|
|
37
|
+
->setFormat(AudioFormat::Float)
|
|
38
|
+
->setFormatConversionAllowed(true)
|
|
39
|
+
->setPerformanceMode(PerformanceMode::LowLatency)
|
|
40
|
+
->setChannelCount(CHANNEL_COUNT)
|
|
41
|
+
->setSampleRateConversionQuality(SampleRateConversionQuality::Medium)
|
|
42
|
+
->setDataCallback(this)
|
|
43
|
+
->setSampleRate(sampleRate)
|
|
44
|
+
->openStream(mStream_);
|
|
45
|
+
|
|
46
|
+
sampleRate_ = sampleRate;
|
|
47
|
+
mBus_ = std::make_shared<AudioBus>(
|
|
48
|
+
sampleRate_, RENDER_QUANTUM_SIZE, CHANNEL_COUNT);
|
|
49
|
+
isInitialized_ = true;
|
|
31
50
|
}
|
|
32
51
|
|
|
33
|
-
int AudioPlayer::
|
|
34
|
-
return
|
|
52
|
+
int AudioPlayer::getSampleRate() const {
|
|
53
|
+
return sampleRate_;
|
|
35
54
|
}
|
|
36
55
|
|
|
37
56
|
void AudioPlayer::start() {
|
|
@@ -59,14 +78,22 @@ DataCallbackResult AudioPlayer::onAudioReady(
|
|
|
59
78
|
}
|
|
60
79
|
|
|
61
80
|
auto buffer = static_cast<float *>(audioData);
|
|
62
|
-
|
|
81
|
+
int processedFrames = 0;
|
|
63
82
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
83
|
+
while (processedFrames < numFrames) {
|
|
84
|
+
int framesToProcess =
|
|
85
|
+
std::min(numFrames - processedFrames, RENDER_QUANTUM_SIZE);
|
|
86
|
+
renderAudio_(mBus_.get(), framesToProcess);
|
|
87
|
+
|
|
88
|
+
// TODO: optimize this with SIMD?
|
|
89
|
+
for (int i = 0; i < framesToProcess; i++) {
|
|
90
|
+
for (int channel = 0; channel < CHANNEL_COUNT; channel += 1) {
|
|
91
|
+
buffer[(processedFrames + i) * CHANNEL_COUNT + channel] =
|
|
92
|
+
mBus_->getChannel(channel)->getData()[i];
|
|
93
|
+
}
|
|
69
94
|
}
|
|
95
|
+
|
|
96
|
+
processedFrames += framesToProcess;
|
|
70
97
|
}
|
|
71
98
|
|
|
72
99
|
return DataCallbackResult::Continue;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
#include <oboe/Oboe.h>
|
|
4
4
|
#include <memory>
|
|
5
|
+
#include <functional>
|
|
5
6
|
|
|
6
7
|
namespace audioapi {
|
|
7
8
|
|
|
@@ -13,9 +14,11 @@ class AudioBus;
|
|
|
13
14
|
class AudioPlayer : public AudioStreamDataCallback {
|
|
14
15
|
public:
|
|
15
16
|
explicit AudioPlayer(const std::function<void(AudioBus *, int)> &renderAudio);
|
|
17
|
+
AudioPlayer(
|
|
18
|
+
const std::function<void(AudioBus *, int)> &renderAudio,
|
|
19
|
+
int sampleRate);
|
|
16
20
|
|
|
17
21
|
[[nodiscard]] int getSampleRate() const;
|
|
18
|
-
[[nodiscard]] int getBufferSizeInFrames() const;
|
|
19
22
|
void start();
|
|
20
23
|
void stop();
|
|
21
24
|
|
|
@@ -29,6 +32,7 @@ class AudioPlayer : public AudioStreamDataCallback {
|
|
|
29
32
|
std::shared_ptr<AudioStream> mStream_;
|
|
30
33
|
std::shared_ptr<AudioBus> mBus_;
|
|
31
34
|
bool isInitialized_ = false;
|
|
35
|
+
int sampleRate_;
|
|
32
36
|
};
|
|
33
37
|
|
|
34
38
|
} // namespace audioapi
|
|
@@ -35,10 +35,18 @@ class AudioAPIInstallerHostObject
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
JSI_HOST_FUNCTION(createAudioContext) {
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
std::shared_ptr<AudioContext> audioContext;
|
|
39
|
+
if (args[0].isUndefined()) {
|
|
40
|
+
audioContext = std::make_shared<AudioContext>();
|
|
41
|
+
} else {
|
|
42
|
+
int sampleRate = static_cast<int>(args[0].getNumber());
|
|
43
|
+
audioContext = std::make_shared<AudioContext>(sampleRate);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
auto audioContextHostObject =
|
|
40
47
|
std::make_shared<AudioContextHostObject>(audioContext, promiseVendor_);
|
|
41
|
-
|
|
48
|
+
|
|
49
|
+
return jsi::Object::createFromHostObject(runtime, audioContextHostObject);
|
|
42
50
|
}
|
|
43
51
|
|
|
44
52
|
private:
|
|
@@ -54,6 +54,11 @@ class AudioNodeHostObject : public JsiHostObject {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
JSI_HOST_FUNCTION(disconnect) {
|
|
57
|
+
if(args[0].isUndefined()) {
|
|
58
|
+
node_->disconnect();
|
|
59
|
+
return jsi::Value::undefined();
|
|
60
|
+
}
|
|
61
|
+
|
|
57
62
|
auto node =
|
|
58
63
|
args[0].getObject(runtime).getHostObject<AudioNodeHostObject>(runtime);
|
|
59
64
|
node_->disconnect(std::shared_ptr<AudioNodeHostObject>(node)->node_);
|
|
@@ -5,16 +5,56 @@
|
|
|
5
5
|
#endif
|
|
6
6
|
|
|
7
7
|
#include "AudioContext.h"
|
|
8
|
+
#include "AudioDecoder.h"
|
|
9
|
+
#include "AudioDestinationNode.h"
|
|
8
10
|
|
|
9
11
|
namespace audioapi {
|
|
10
|
-
|
|
11
12
|
AudioContext::AudioContext() : BaseAudioContext() {
|
|
13
|
+
#ifdef ANDROID
|
|
14
|
+
audioPlayer_ = std::make_shared<AudioPlayer>(this->renderAudio());
|
|
15
|
+
#else
|
|
16
|
+
audioPlayer_ = std::make_shared<IOSAudioPlayer>(this->renderAudio());
|
|
17
|
+
#endif
|
|
18
|
+
sampleRate_ = audioPlayer_->getSampleRate();
|
|
19
|
+
audioDecoder_ = std::make_shared<AudioDecoder>(sampleRate_);
|
|
20
|
+
|
|
21
|
+
audioPlayer_->start();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
AudioContext::AudioContext(int sampleRate) : BaseAudioContext() {
|
|
25
|
+
#ifdef ANDROID
|
|
26
|
+
audioPlayer_ = std::make_shared<AudioPlayer>(this->renderAudio(), sampleRate);
|
|
27
|
+
#else
|
|
28
|
+
audioPlayer_ =
|
|
29
|
+
std::make_shared<IOSAudioPlayer>(this->renderAudio(), sampleRate);
|
|
30
|
+
#endif
|
|
31
|
+
sampleRate_ = audioPlayer_->getSampleRate();
|
|
32
|
+
audioDecoder_ = std::make_shared<AudioDecoder>(sampleRate_);
|
|
33
|
+
|
|
12
34
|
audioPlayer_->start();
|
|
13
35
|
}
|
|
14
36
|
|
|
37
|
+
AudioContext::~AudioContext() {
|
|
38
|
+
if (isRunning()) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
close();
|
|
43
|
+
}
|
|
44
|
+
|
|
15
45
|
void AudioContext::close() {
|
|
16
46
|
state_ = ContextState::CLOSED;
|
|
17
47
|
audioPlayer_->stop();
|
|
18
48
|
}
|
|
19
49
|
|
|
50
|
+
std::function<void(AudioBus *, int)> AudioContext::renderAudio() {
|
|
51
|
+
if (!isRunning()) {
|
|
52
|
+
return [](AudioBus *, int) {};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return [this](AudioBus *data, int frames) {
|
|
56
|
+
destination_->renderAudio(data, frames);
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
20
60
|
} // namespace audioapi
|
|
@@ -1,16 +1,33 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
3
|
#include <memory>
|
|
4
|
+
#include <functional>
|
|
4
5
|
|
|
5
6
|
#include "BaseAudioContext.h"
|
|
6
7
|
|
|
7
8
|
namespace audioapi {
|
|
9
|
+
#ifdef ANDROID
|
|
10
|
+
class AudioPlayer;
|
|
11
|
+
#else
|
|
12
|
+
class IOSAudioPlayer;
|
|
13
|
+
#endif
|
|
8
14
|
|
|
9
15
|
class AudioContext : public BaseAudioContext {
|
|
10
16
|
public:
|
|
11
17
|
AudioContext();
|
|
18
|
+
explicit AudioContext(int sampleRate);
|
|
19
|
+
~AudioContext() override;
|
|
12
20
|
|
|
13
21
|
void close();
|
|
22
|
+
|
|
23
|
+
std::function<void(AudioBus *, int)> renderAudio();
|
|
24
|
+
|
|
25
|
+
private:
|
|
26
|
+
#ifdef ANDROID
|
|
27
|
+
std::shared_ptr<AudioPlayer> audioPlayer_;
|
|
28
|
+
#else
|
|
29
|
+
std::shared_ptr<IOSAudioPlayer> audioPlayer_;
|
|
30
|
+
#endif
|
|
14
31
|
};
|
|
15
32
|
|
|
16
33
|
} // namespace audioapi
|
|
@@ -9,9 +9,7 @@ namespace audioapi {
|
|
|
9
9
|
|
|
10
10
|
AudioNode::AudioNode(BaseAudioContext *context) : context_(context) {
|
|
11
11
|
audioBus_ = std::make_shared<AudioBus>(
|
|
12
|
-
context->getSampleRate(),
|
|
13
|
-
context->getBufferSizeInFrames(),
|
|
14
|
-
channelCount_);
|
|
12
|
+
context->getSampleRate(), RENDER_QUANTUM_SIZE, channelCount_);
|
|
15
13
|
}
|
|
16
14
|
|
|
17
15
|
AudioNode::~AudioNode() {
|
|
@@ -49,6 +47,12 @@ void AudioNode::connectNode(const std::shared_ptr<AudioNode> &node) {
|
|
|
49
47
|
node->onInputConnected(this);
|
|
50
48
|
}
|
|
51
49
|
|
|
50
|
+
void AudioNode::disconnect() {
|
|
51
|
+
for (auto &outputNode : outputNodes_) {
|
|
52
|
+
disconnectNode(outputNode);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
52
56
|
void AudioNode::disconnect(const std::shared_ptr<AudioNode> &node) {
|
|
53
57
|
context_->getNodeManager()->addPendingConnection(
|
|
54
58
|
shared_from_this(), node, AudioNodeManager::ConnectionType::DISCONNECT);
|
|
@@ -201,6 +205,10 @@ void AudioNode::onInputDisabled() {
|
|
|
201
205
|
}
|
|
202
206
|
|
|
203
207
|
void AudioNode::onInputConnected(AudioNode *node) {
|
|
208
|
+
if (!isInitialized_) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
|
|
204
212
|
inputNodes_.push_back(node);
|
|
205
213
|
|
|
206
214
|
if (node->isEnabled()) {
|
|
@@ -209,6 +217,10 @@ void AudioNode::onInputConnected(AudioNode *node) {
|
|
|
209
217
|
}
|
|
210
218
|
|
|
211
219
|
void AudioNode::onInputDisconnected(AudioNode *node) {
|
|
220
|
+
if (!isInitialized_) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
|
|
212
224
|
auto position = std::find(inputNodes_.begin(), inputNodes_.end(), node);
|
|
213
225
|
|
|
214
226
|
if (position != inputNodes_.end()) {
|
|
@@ -23,6 +23,7 @@ class AudioNode : public std::enable_shared_from_this<AudioNode> {
|
|
|
23
23
|
std::string getChannelCountMode() const;
|
|
24
24
|
std::string getChannelInterpretation() const;
|
|
25
25
|
void connect(const std::shared_ptr<AudioNode> &node);
|
|
26
|
+
void disconnect();
|
|
26
27
|
void disconnect(const std::shared_ptr<AudioNode> &node);
|
|
27
28
|
|
|
28
29
|
bool isEnabled() const;
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
#ifdef ANDROID
|
|
2
|
-
#include "AudioPlayer.h"
|
|
3
|
-
#else
|
|
4
|
-
#include "IOSAudioPlayer.h"
|
|
5
|
-
#endif
|
|
6
|
-
|
|
7
1
|
#include "BaseAudioContext.h"
|
|
8
2
|
|
|
9
3
|
#include "AnalyserNode.h"
|
|
@@ -23,30 +17,10 @@
|
|
|
23
17
|
namespace audioapi {
|
|
24
18
|
|
|
25
19
|
BaseAudioContext::BaseAudioContext() {
|
|
26
|
-
#ifdef ANDROID
|
|
27
|
-
audioPlayer_ = std::make_shared<AudioPlayer>(this->renderAudio());
|
|
28
|
-
#else
|
|
29
|
-
audioPlayer_ = std::make_shared<IOSAudioPlayer>(this->renderAudio());
|
|
30
|
-
#endif
|
|
31
|
-
|
|
32
|
-
audioDecoder_ = std::make_shared<AudioDecoder>(audioPlayer_->getSampleRate());
|
|
33
|
-
|
|
34
|
-
sampleRate_ = audioPlayer_->getSampleRate();
|
|
35
|
-
bufferSizeInFrames_ = audioPlayer_->getBufferSizeInFrames();
|
|
36
|
-
|
|
37
20
|
nodeManager_ = std::make_shared<AudioNodeManager>();
|
|
38
21
|
destination_ = std::make_shared<AudioDestinationNode>(this);
|
|
39
22
|
}
|
|
40
23
|
|
|
41
|
-
BaseAudioContext::~BaseAudioContext() {
|
|
42
|
-
if (isRunning()) {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
state_ = ContextState::CLOSED;
|
|
47
|
-
audioPlayer_->stop();
|
|
48
|
-
}
|
|
49
|
-
|
|
50
24
|
std::string BaseAudioContext::getState() {
|
|
51
25
|
return BaseAudioContext::toString(state_);
|
|
52
26
|
}
|
|
@@ -55,10 +29,6 @@ int BaseAudioContext::getSampleRate() const {
|
|
|
55
29
|
return sampleRate_;
|
|
56
30
|
}
|
|
57
31
|
|
|
58
|
-
int BaseAudioContext::getBufferSizeInFrames() const {
|
|
59
|
-
return bufferSizeInFrames_;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
32
|
std::size_t BaseAudioContext::getCurrentSampleFrame() const {
|
|
63
33
|
return destination_->getCurrentSampleFrame();
|
|
64
34
|
}
|
|
@@ -117,16 +87,6 @@ std::shared_ptr<AudioBuffer> BaseAudioContext::decodeAudioDataSource(
|
|
|
117
87
|
return std::make_shared<AudioBuffer>(audioBus);
|
|
118
88
|
}
|
|
119
89
|
|
|
120
|
-
std::function<void(AudioBus *, int)> BaseAudioContext::renderAudio() {
|
|
121
|
-
if (!isRunning()) {
|
|
122
|
-
return [](AudioBus *, int) {};
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return [this](AudioBus *data, int frames) {
|
|
126
|
-
destination_->renderAudio(data, frames);
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
|
|
130
90
|
AudioNodeManager *BaseAudioContext::getNodeManager() {
|
|
131
91
|
return nodeManager_.get();
|
|
132
92
|
}
|
|
@@ -24,21 +24,14 @@ class AudioBufferSourceNode;
|
|
|
24
24
|
class AudioDecoder;
|
|
25
25
|
class AnalyserNode;
|
|
26
26
|
|
|
27
|
-
#ifdef ANDROID
|
|
28
|
-
class AudioPlayer;
|
|
29
|
-
#else
|
|
30
|
-
class IOSAudioPlayer;
|
|
31
|
-
#endif
|
|
32
|
-
|
|
33
27
|
class BaseAudioContext {
|
|
34
28
|
public:
|
|
35
29
|
BaseAudioContext();
|
|
36
|
-
~BaseAudioContext();
|
|
30
|
+
virtual ~BaseAudioContext() = default;
|
|
37
31
|
|
|
38
32
|
std::string getState();
|
|
39
33
|
[[nodiscard]] int getSampleRate() const;
|
|
40
34
|
[[nodiscard]] double getCurrentTime() const;
|
|
41
|
-
[[nodiscard]] int getBufferSizeInFrames() const;
|
|
42
35
|
[[nodiscard]] std::size_t getCurrentSampleFrame() const;
|
|
43
36
|
std::shared_ptr<AudioDestinationNode> getDestination();
|
|
44
37
|
|
|
@@ -58,7 +51,6 @@ class BaseAudioContext {
|
|
|
58
51
|
|
|
59
52
|
std::shared_ptr<AudioBuffer> decodeAudioDataSource(const std::string &path);
|
|
60
53
|
std::shared_ptr<PeriodicWave> getBasicWaveForm(OscillatorType type);
|
|
61
|
-
std::function<void(AudioBus *, int)> renderAudio();
|
|
62
54
|
AudioNodeManager *getNodeManager();
|
|
63
55
|
[[nodiscard]] bool isRunning() const;
|
|
64
56
|
[[nodiscard]] bool isClosed() const;
|
|
@@ -66,16 +58,11 @@ class BaseAudioContext {
|
|
|
66
58
|
protected:
|
|
67
59
|
static std::string toString(ContextState state);
|
|
68
60
|
std::shared_ptr<AudioDestinationNode> destination_;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
#ifdef ANDROID
|
|
72
|
-
std::shared_ptr<AudioPlayer> audioPlayer_;
|
|
73
|
-
#else
|
|
74
|
-
std::shared_ptr<IOSAudioPlayer> audioPlayer_;
|
|
75
|
-
#endif
|
|
61
|
+
// init in AudioContext or OfflineContext constructor
|
|
62
|
+
std::shared_ptr<AudioDecoder> audioDecoder_ {};
|
|
76
63
|
|
|
77
|
-
|
|
78
|
-
int
|
|
64
|
+
// init in AudioContext or OfflineContext constructor
|
|
65
|
+
int sampleRate_ {};
|
|
79
66
|
ContextState state_ = ContextState::RUNNING;
|
|
80
67
|
std::shared_ptr<AudioNodeManager> nodeManager_;
|
|
81
68
|
|
|
@@ -6,13 +6,14 @@
|
|
|
6
6
|
// https://webaudio.github.io/web-audio-api/
|
|
7
7
|
|
|
8
8
|
namespace audioapi {
|
|
9
|
-
constexpr int
|
|
9
|
+
constexpr int DEFAULT_SAMPLE_RATE = 48000;
|
|
10
|
+
constexpr int RENDER_QUANTUM_SIZE = 128;
|
|
10
11
|
constexpr int CHANNEL_COUNT = 2;
|
|
11
12
|
|
|
12
13
|
constexpr float MOST_POSITIVE_SINGLE_FLOAT = static_cast<float>(std::numeric_limits<float>::max());
|
|
13
14
|
constexpr float MOST_NEGATIVE_SINGLE_FLOAT = static_cast<float>(std::numeric_limits<float>::lowest());
|
|
14
15
|
|
|
15
|
-
constexpr float NYQUIST_FREQUENCY =
|
|
16
|
+
constexpr float NYQUIST_FREQUENCY = DEFAULT_SAMPLE_RATE / 2.0;
|
|
16
17
|
static float MAX_DETUNE = 1200 * std::log2(MOST_POSITIVE_SINGLE_FLOAT);
|
|
17
18
|
constexpr float MAX_GAIN = MOST_POSITIVE_SINGLE_FLOAT;
|
|
18
19
|
constexpr float MAX_PAN = 1.0;
|
package/ios/core/AudioPlayer.h
CHANGED
|
@@ -12,12 +12,13 @@ typedef void (^RenderAudioBlock)(AudioBufferList *outputBuffer, int numFrames);
|
|
|
12
12
|
@property (nonatomic, strong) AVAudioFormat *format;
|
|
13
13
|
@property (nonatomic, strong) AVAudioSourceNode *sourceNode;
|
|
14
14
|
@property (nonatomic, copy) RenderAudioBlock renderAudio;
|
|
15
|
+
@property (nonatomic, assign) int sampleRate;
|
|
15
16
|
|
|
16
17
|
- (instancetype)initWithRenderAudioBlock:(RenderAudioBlock)renderAudio;
|
|
17
18
|
|
|
18
|
-
- (int)
|
|
19
|
+
- (instancetype)initWithRenderAudioBlock:(RenderAudioBlock)renderAudio sampleRate:(int)sampleRate;
|
|
19
20
|
|
|
20
|
-
- (int)
|
|
21
|
+
- (int)getSampleRate;
|
|
21
22
|
|
|
22
23
|
- (void)start;
|
|
23
24
|
|
package/ios/core/AudioPlayer.m
CHANGED
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
@throw error;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
self.sampleRate = [self.audioSession sampleRate];
|
|
32
|
+
|
|
33
|
+
_format = [[AVAudioFormat alloc] initStandardFormatWithSampleRate:self.sampleRate channels:2];
|
|
32
34
|
|
|
33
35
|
__weak typeof(self) weakSelf = self;
|
|
34
36
|
_sourceNode = [[AVAudioSourceNode alloc] initWithFormat:self.format
|
|
@@ -47,24 +49,56 @@
|
|
|
47
49
|
return self;
|
|
48
50
|
}
|
|
49
51
|
|
|
50
|
-
- (int)
|
|
52
|
+
- (instancetype)initWithRenderAudioBlock:(RenderAudioBlock)renderAudio sampleRate:(int)sampleRate
|
|
51
53
|
{
|
|
52
|
-
|
|
54
|
+
if (self = [super init]) {
|
|
55
|
+
self.renderAudio = [renderAudio copy];
|
|
56
|
+
self.audioEngine = [[AVAudioEngine alloc] init];
|
|
57
|
+
self.audioEngine.mainMixerNode.outputVolume = 1;
|
|
58
|
+
|
|
59
|
+
self.audioSession = AVAudioSession.sharedInstance;
|
|
60
|
+
NSError *error = nil;
|
|
61
|
+
|
|
62
|
+
// TODO:
|
|
63
|
+
// We will probably want to change it to AVAudioSessionCategoryPlayAndRecord in the future.
|
|
64
|
+
// Eventually we to make this a dynamic setting, if user of the lib wants to use recording features.
|
|
65
|
+
// But setting a recording category might require some setup first, so lets skip it for now :)
|
|
66
|
+
[self.audioSession setCategory:AVAudioSessionCategoryPlayback error:&error];
|
|
67
|
+
|
|
68
|
+
if (error != nil) {
|
|
69
|
+
@throw error;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
[self.audioSession setActive:true error:&error];
|
|
73
|
+
|
|
74
|
+
if (error != nil) {
|
|
75
|
+
@throw error;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
self.sampleRate = sampleRate;
|
|
79
|
+
|
|
80
|
+
_format = [[AVAudioFormat alloc] initStandardFormatWithSampleRate:self.sampleRate channels:2];
|
|
81
|
+
|
|
82
|
+
__weak typeof(self) weakSelf = self;
|
|
83
|
+
_sourceNode = [[AVAudioSourceNode alloc] initWithFormat:self.format
|
|
84
|
+
renderBlock:^OSStatus(
|
|
85
|
+
BOOL *isSilence,
|
|
86
|
+
const AudioTimeStamp *timestamp,
|
|
87
|
+
AVAudioFrameCount frameCount,
|
|
88
|
+
AudioBufferList *outputData) {
|
|
89
|
+
return [weakSelf renderCallbackWithIsSilence:isSilence
|
|
90
|
+
timestamp:timestamp
|
|
91
|
+
frameCount:frameCount
|
|
92
|
+
outputData:outputData];
|
|
93
|
+
}];
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return self;
|
|
53
97
|
}
|
|
54
98
|
|
|
55
|
-
- (int)
|
|
99
|
+
- (int)getSampleRate
|
|
56
100
|
{
|
|
57
|
-
|
|
58
|
-
// For some reason audioSession.IOBufferDuration is always 0.01, which for sample rate of 48k
|
|
59
|
-
// gives exactly 480 frames, while at the same time frameCount requested by AVAudioSourceEngine
|
|
60
|
-
// might vary f.e. between 555-560.
|
|
61
|
-
// preferredIOBufferDuration seems to be double the value (resulting in 960 frames),
|
|
62
|
-
// which is safer to base our internal AudioBus sizes.
|
|
63
|
-
// Buut no documentation => no guarantee :)
|
|
64
|
-
// If something is crackling when it should play silence, start here 📻
|
|
65
|
-
double maxBufferDuration =
|
|
66
|
-
fmax(0.02, fmax(self.audioSession.IOBufferDuration, self.audioSession.preferredIOBufferDuration));
|
|
67
|
-
return (int)(maxBufferDuration * self.audioSession.sampleRate + 1);
|
|
101
|
+
return self.sampleRate;
|
|
68
102
|
}
|
|
69
103
|
|
|
70
104
|
- (void)start
|
|
@@ -22,10 +22,12 @@ class IOSAudioPlayer {
|
|
|
22
22
|
public:
|
|
23
23
|
explicit IOSAudioPlayer(
|
|
24
24
|
const std::function<void(AudioBus *, int)> &renderAudio);
|
|
25
|
+
IOSAudioPlayer(
|
|
26
|
+
const std::function<void(AudioBus *, int)> &renderAudio,
|
|
27
|
+
int sampleRate);
|
|
25
28
|
~IOSAudioPlayer();
|
|
26
29
|
|
|
27
30
|
int getSampleRate() const;
|
|
28
|
-
int getBufferSizeInFrames() const;
|
|
29
31
|
|
|
30
32
|
void start();
|
|
31
33
|
void stop();
|
|
@@ -10,18 +10,59 @@ namespace audioapi {
|
|
|
10
10
|
IOSAudioPlayer::IOSAudioPlayer(const std::function<void(AudioBus *, int)> &renderAudio)
|
|
11
11
|
: renderAudio_(renderAudio), audioBus_(0)
|
|
12
12
|
{
|
|
13
|
+
audioBus_ = new AudioBus(getSampleRate(), RENDER_QUANTUM_SIZE, CHANNEL_COUNT);
|
|
14
|
+
|
|
13
15
|
RenderAudioBlock renderAudioBlock = ^(AudioBufferList *outputData, int numFrames) {
|
|
14
|
-
|
|
16
|
+
int processedFrames = 0;
|
|
17
|
+
|
|
18
|
+
while (processedFrames < numFrames) {
|
|
19
|
+
int framesToProcess = std::min(numFrames - processedFrames, RENDER_QUANTUM_SIZE);
|
|
20
|
+
renderAudio_(audioBus_, framesToProcess);
|
|
21
|
+
|
|
22
|
+
// TODO: optimize this with SIMD?
|
|
23
|
+
for (int channel = 0; channel < CHANNEL_COUNT; channel += 1) {
|
|
24
|
+
float *outputChannel = (float *)outputData->mBuffers[channel].mData;
|
|
25
|
+
auto *inputChannel = audioBus_->getChannel(channel)->getData();
|
|
15
26
|
|
|
16
|
-
|
|
17
|
-
|
|
27
|
+
for (int i = 0; i < framesToProcess; i++) {
|
|
28
|
+
outputChannel[processedFrames + i] = inputChannel[i];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
18
31
|
|
|
19
|
-
|
|
32
|
+
processedFrames += framesToProcess;
|
|
20
33
|
}
|
|
21
34
|
};
|
|
22
35
|
|
|
23
36
|
audioPlayer_ = [[AudioPlayer alloc] initWithRenderAudioBlock:renderAudioBlock];
|
|
24
|
-
audioBus_ = new AudioBus(getSampleRate
|
|
37
|
+
audioBus_ = new AudioBus([audioPlayer_ getSampleRate], RENDER_QUANTUM_SIZE, CHANNEL_COUNT);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
IOSAudioPlayer::IOSAudioPlayer(const std::function<void(AudioBus *, int)> &renderAudio, int sampleRate)
|
|
41
|
+
: renderAudio_(renderAudio), audioBus_(0)
|
|
42
|
+
{
|
|
43
|
+
RenderAudioBlock renderAudioBlock = ^(AudioBufferList *outputData, int numFrames) {
|
|
44
|
+
int processedFrames = 0;
|
|
45
|
+
|
|
46
|
+
while (processedFrames < numFrames) {
|
|
47
|
+
int framesToProcess = std::min(numFrames - processedFrames, RENDER_QUANTUM_SIZE);
|
|
48
|
+
renderAudio_(audioBus_, framesToProcess);
|
|
49
|
+
|
|
50
|
+
// TODO: optimize this with SIMD?
|
|
51
|
+
for (int channel = 0; channel < CHANNEL_COUNT; channel += 1) {
|
|
52
|
+
float *outputChannel = (float *)outputData->mBuffers[channel].mData;
|
|
53
|
+
auto *inputChannel = audioBus_->getChannel(channel)->getData();
|
|
54
|
+
|
|
55
|
+
for (int i = 0; i < framesToProcess; i++) {
|
|
56
|
+
outputChannel[processedFrames + i] = inputChannel[i];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
processedFrames += framesToProcess;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
audioPlayer_ = [[AudioPlayer alloc] initWithRenderAudioBlock:renderAudioBlock sampleRate:sampleRate];
|
|
65
|
+
audioBus_ = new AudioBus([audioPlayer_ getSampleRate], RENDER_QUANTUM_SIZE, CHANNEL_COUNT);
|
|
25
66
|
}
|
|
26
67
|
|
|
27
68
|
IOSAudioPlayer::~IOSAudioPlayer()
|
|
@@ -50,9 +91,4 @@ int IOSAudioPlayer::getSampleRate() const
|
|
|
50
91
|
return [audioPlayer_ getSampleRate];
|
|
51
92
|
}
|
|
52
93
|
|
|
53
|
-
int IOSAudioPlayer::getBufferSizeInFrames() const
|
|
54
|
-
{
|
|
55
|
-
return [audioPlayer_ getBufferSizeInFrames];
|
|
56
|
-
}
|
|
57
|
-
|
|
58
94
|
} // namespace audioapi
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import BaseAudioContext from "./BaseAudioContext.js";
|
|
4
4
|
export default class AudioContext extends BaseAudioContext {
|
|
5
|
-
constructor() {
|
|
6
|
-
super(global.__AudioAPIInstaller.createAudioContext());
|
|
5
|
+
constructor(sampleRate) {
|
|
6
|
+
super(global.__AudioAPIInstaller.createAudioContext(sampleRate));
|
|
7
7
|
}
|
|
8
8
|
close() {
|
|
9
9
|
this.context.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseAudioContext","AudioContext","constructor","global","__AudioAPIInstaller","createAudioContext","close","context"],"sourceRoot":"../../../src","sources":["core/AudioContext.ts"],"mappings":";;AACA,OAAOA,gBAAgB,MAAM,uBAAoB;AAEjD,eAAe,MAAMC,YAAY,SAASD,gBAAgB,CAAC;EACzDE,WAAWA,
|
|
1
|
+
{"version":3,"names":["BaseAudioContext","AudioContext","constructor","sampleRate","global","__AudioAPIInstaller","createAudioContext","close","context"],"sourceRoot":"../../../src","sources":["core/AudioContext.ts"],"mappings":";;AACA,OAAOA,gBAAgB,MAAM,uBAAoB;AAEjD,eAAe,MAAMC,YAAY,SAASD,gBAAgB,CAAC;EACzDE,WAAWA,CAACC,UAAmB,EAAE;IAC/B,KAAK,CAACC,MAAM,CAACC,mBAAmB,CAACC,kBAAkB,CAACH,UAAU,CAAC,CAAC;EAClE;EAEAI,KAAKA,CAAA,EAAS;IACX,IAAI,CAACC,OAAO,CAAmBD,KAAK,CAAC,CAAC;EACzC;AACF","ignoreList":[]}
|
|
@@ -11,14 +11,14 @@ export default class AudioNode {
|
|
|
11
11
|
this.channelCountMode = this.node.channelCountMode;
|
|
12
12
|
this.channelInterpretation = this.node.channelInterpretation;
|
|
13
13
|
}
|
|
14
|
-
connect(
|
|
15
|
-
if (this.context !==
|
|
14
|
+
connect(destination) {
|
|
15
|
+
if (this.context !== destination.context) {
|
|
16
16
|
throw new InvalidAccessError('The AudioNodes are from different BaseAudioContexts');
|
|
17
17
|
}
|
|
18
|
-
this.node.connect(
|
|
18
|
+
this.node.connect(destination.node);
|
|
19
19
|
}
|
|
20
|
-
disconnect(
|
|
21
|
-
this.node.disconnect(node
|
|
20
|
+
disconnect(destination) {
|
|
21
|
+
this.node.disconnect(destination?.node);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
//# sourceMappingURL=AudioNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["InvalidAccessError","AudioNode","constructor","context","node","numberOfInputs","numberOfOutputs","channelCount","channelCountMode","channelInterpretation","connect","disconnect"],"sourceRoot":"../../../src","sources":["core/AudioNode.ts"],"mappings":";;AAGA,SAASA,kBAAkB,QAAQ,oBAAW;AAE9C,eAAe,MAAMC,SAAS,CAAC;EAS7BC,WAAWA,CAACC,OAAyB,EAAEC,IAAgB,EAAE;IACvD,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,cAAc,GAAG,IAAI,CAACD,IAAI,CAACC,cAAc;IAC9C,IAAI,CAACC,eAAe,GAAG,IAAI,CAACF,IAAI,CAACE,eAAe;IAChD,IAAI,CAACC,YAAY,GAAG,IAAI,CAACH,IAAI,CAACG,YAAY;IAC1C,IAAI,CAACC,gBAAgB,GAAG,IAAI,CAACJ,IAAI,CAACI,gBAAgB;IAClD,IAAI,CAACC,qBAAqB,GAAG,IAAI,CAACL,IAAI,CAACK,qBAAqB;EAC9D;EAEOC,OAAOA,
|
|
1
|
+
{"version":3,"names":["InvalidAccessError","AudioNode","constructor","context","node","numberOfInputs","numberOfOutputs","channelCount","channelCountMode","channelInterpretation","connect","destination","disconnect"],"sourceRoot":"../../../src","sources":["core/AudioNode.ts"],"mappings":";;AAGA,SAASA,kBAAkB,QAAQ,oBAAW;AAE9C,eAAe,MAAMC,SAAS,CAAC;EAS7BC,WAAWA,CAACC,OAAyB,EAAEC,IAAgB,EAAE;IACvD,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,cAAc,GAAG,IAAI,CAACD,IAAI,CAACC,cAAc;IAC9C,IAAI,CAACC,eAAe,GAAG,IAAI,CAACF,IAAI,CAACE,eAAe;IAChD,IAAI,CAACC,YAAY,GAAG,IAAI,CAACH,IAAI,CAACG,YAAY;IAC1C,IAAI,CAACC,gBAAgB,GAAG,IAAI,CAACJ,IAAI,CAACI,gBAAgB;IAClD,IAAI,CAACC,qBAAqB,GAAG,IAAI,CAACL,IAAI,CAACK,qBAAqB;EAC9D;EAEOC,OAAOA,CAACC,WAAsB,EAAQ;IAC3C,IAAI,IAAI,CAACR,OAAO,KAAKQ,WAAW,CAACR,OAAO,EAAE;MACxC,MAAM,IAAIH,kBAAkB,CAC1B,qDACF,CAAC;IACH;IAEA,IAAI,CAACI,IAAI,CAACM,OAAO,CAACC,WAAW,CAACP,IAAI,CAAC;EACrC;EAEOQ,UAAUA,CAACD,WAAuB,EAAQ;IAC/C,IAAI,CAACP,IAAI,CAACQ,UAAU,CAACD,WAAW,EAAEP,IAAI,CAAC;EACzC;AACF","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -47,14 +47,18 @@ export class AudioNode {
|
|
|
47
47
|
this.channelCountMode = this.node.channelCountMode;
|
|
48
48
|
this.channelInterpretation = this.node.channelInterpretation;
|
|
49
49
|
}
|
|
50
|
-
connect(
|
|
51
|
-
if (this.context !==
|
|
50
|
+
connect(destination) {
|
|
51
|
+
if (this.context !== destination.context) {
|
|
52
52
|
throw new Error('The AudioNodes are from different BaseAudioContexts');
|
|
53
53
|
}
|
|
54
|
-
this.node.connect(
|
|
54
|
+
this.node.connect(destination.node);
|
|
55
55
|
}
|
|
56
|
-
disconnect(
|
|
57
|
-
|
|
56
|
+
disconnect(destination) {
|
|
57
|
+
if (destination === undefined) {
|
|
58
|
+
this.node.disconnect();
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
this.node.disconnect(destination.node);
|
|
58
62
|
}
|
|
59
63
|
}
|
|
60
64
|
export class AnalyserNode extends AudioNode {
|
|
@@ -236,7 +240,7 @@ export class StereoPannerNode extends AudioNode {
|
|
|
236
240
|
}
|
|
237
241
|
}
|
|
238
242
|
export class AudioContext {
|
|
239
|
-
constructor() {
|
|
243
|
+
constructor(_sampleRate) {
|
|
240
244
|
this.context = new window.AudioContext();
|
|
241
245
|
this.sampleRate = this.context.sampleRate;
|
|
242
246
|
this.destination = new AudioDestinationNode(this, this.context.destination);
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AudioBuffer","constructor","buffer","length","duration","sampleRate","numberOfChannels","getChannelData","channel","Error","Array","from","copyFromChannel","destination","channelNumber","startInChannel","Float32Array","copyToChannel","source","AudioNode","context","node","numberOfInputs","numberOfOutputs","channelCount","channelCountMode","channelInterpretation","connect","disconnect","AnalyserNode","fftSize","frequencyBinCount","minDecibels","maxDecibels","smoothingTimeConstant","getByteFrequencyData","array","Uint8Array","getByteTimeDomainData","getFloatFrequencyData","getFloatTimeDomainData","AudioScheduledSourceNode","hasBeenStarted","start","when","RangeError","stop","AudioBufferSourceNode","detune","AudioParam","playbackRate","loop","value","loopStart","loopEnd","AudioDestinationNode","param","defaultValue","minValue","maxValue","setValueAtTime","startTime","linearRampToValueAtTime","endTime","exponentialRampToValueAtTime","setTargetAtTime","target","timeConstant","setValueCurveAtTime","values","cancelScheduledValues","cancelAndHoldAtTime","cancelTime","BiquadFilterNode","biquadFilter","frequency","Q","gain","type","getFrequencyResponse","frequencyArray","magResponseOutput","phaseResponseOutput","PeriodicWave","periodicWave","OscillatorNode","setPeriodicWave","wave","GainNode","StereoPannerNode","pan","AudioContext","window","currentTime","state","createOscillator","createGain","createStereoPanner","createBiquadFilter","createBufferSource","createBuffer","numOfChannels","createPeriodicWave","real","imag","constraints","createAnalyser","decodeAudioDataSource","arrayBuffer","fetch","then","response","decodeAudioData","close","ContextState","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["AudioBuffer","constructor","buffer","length","duration","sampleRate","numberOfChannels","getChannelData","channel","Error","Array","from","copyFromChannel","destination","channelNumber","startInChannel","Float32Array","copyToChannel","source","AudioNode","context","node","numberOfInputs","numberOfOutputs","channelCount","channelCountMode","channelInterpretation","connect","disconnect","undefined","AnalyserNode","fftSize","frequencyBinCount","minDecibels","maxDecibels","smoothingTimeConstant","getByteFrequencyData","array","Uint8Array","getByteTimeDomainData","getFloatFrequencyData","getFloatTimeDomainData","AudioScheduledSourceNode","hasBeenStarted","start","when","RangeError","stop","AudioBufferSourceNode","detune","AudioParam","playbackRate","loop","value","loopStart","loopEnd","AudioDestinationNode","param","defaultValue","minValue","maxValue","setValueAtTime","startTime","linearRampToValueAtTime","endTime","exponentialRampToValueAtTime","setTargetAtTime","target","timeConstant","setValueCurveAtTime","values","cancelScheduledValues","cancelAndHoldAtTime","cancelTime","BiquadFilterNode","biquadFilter","frequency","Q","gain","type","getFrequencyResponse","frequencyArray","magResponseOutput","phaseResponseOutput","PeriodicWave","periodicWave","OscillatorNode","setPeriodicWave","wave","GainNode","StereoPannerNode","pan","AudioContext","_sampleRate","window","currentTime","state","createOscillator","createGain","createStereoPanner","createBiquadFilter","createBufferSource","createBuffer","numOfChannels","createPeriodicWave","real","imag","constraints","createAnalyser","decodeAudioDataSource","arrayBuffer","fetch","then","response","decodeAudioData","close","ContextState","OscillatorType","BiquadFilterType","ChannelCountMode","ChannelInterpretation"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/core/AudioContext.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,gBAAgB
|
|
1
|
+
{"version":3,"file":"AudioContext.d.ts","sourceRoot":"","sources":["../../../src/core/AudioContext.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,gBAAgB;gBAC5C,UAAU,CAAC,EAAE,MAAM;IAI/B,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -10,7 +10,7 @@ export default class AudioNode {
|
|
|
10
10
|
readonly channelInterpretation: ChannelInterpretation;
|
|
11
11
|
protected readonly node: IAudioNode;
|
|
12
12
|
constructor(context: BaseAudioContext, node: IAudioNode);
|
|
13
|
-
connect(
|
|
14
|
-
disconnect(
|
|
13
|
+
connect(destination: AudioNode): void;
|
|
14
|
+
disconnect(destination?: AudioNode): void;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=AudioNode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAGlD,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;gBAExB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU;IAUhD,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"AudioNode.d.ts","sourceRoot":"","sources":["../../../src/core/AudioNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAGlD,MAAM,CAAC,OAAO,OAAO,SAAS;IAC5B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;gBAExB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU;IAUhD,OAAO,CAAC,WAAW,EAAE,SAAS,GAAG,IAAI;IAUrC,UAAU,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,IAAI;CAGjD"}
|
|
@@ -20,8 +20,8 @@ export declare class AudioNode {
|
|
|
20
20
|
readonly channelInterpretation: ChannelInterpretation;
|
|
21
21
|
protected readonly node: globalThis.AudioNode;
|
|
22
22
|
constructor(context: AudioContext, node: globalThis.AudioNode);
|
|
23
|
-
connect(
|
|
24
|
-
disconnect(
|
|
23
|
+
connect(destination: AudioNode): void;
|
|
24
|
+
disconnect(destination?: AudioNode): void;
|
|
25
25
|
}
|
|
26
26
|
export declare class AnalyserNode extends AudioNode {
|
|
27
27
|
fftSize: number;
|
|
@@ -106,7 +106,7 @@ export declare class AudioContext {
|
|
|
106
106
|
protected readonly context: globalThis.AudioContext;
|
|
107
107
|
readonly destination: AudioDestinationNode;
|
|
108
108
|
readonly sampleRate: number;
|
|
109
|
-
constructor();
|
|
109
|
+
constructor(_sampleRate?: number);
|
|
110
110
|
get currentTime(): number;
|
|
111
111
|
get state(): ContextState;
|
|
112
112
|
createOscillator(): OscillatorNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAErE,qBAAa,WAAW;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC,gBAAgB;IAChB,SAAgB,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC;gBAEnC,MAAM,EAAE,UAAU,CAAC,WAAW;IAQnC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAWzC,eAAe,CACpB,WAAW,EAAE,MAAM,EAAE,EACrB,aAAa,EAAE,MAAM,EACrB,cAAc,GAAE,MAAU,GACzB,IAAI;IAoBA,aAAa,CAClB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,MAAM,EACrB,cAAc,GAAE,MAAU,GACzB,IAAI;CAmBR;AAED,qBAAa,SAAS;IACpB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAEtD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC;gBAElC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,SAAS;IAUtD,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ export interface IAudioNode {
|
|
|
25
25
|
readonly channelCountMode: ChannelCountMode;
|
|
26
26
|
readonly channelInterpretation: ChannelInterpretation;
|
|
27
27
|
connect: (node: IAudioNode) => void;
|
|
28
|
-
disconnect: (node
|
|
28
|
+
disconnect: (node?: IAudioNode) => void;
|
|
29
29
|
}
|
|
30
30
|
export interface IGainNode extends IAudioNode {
|
|
31
31
|
readonly gain: IAudioParam;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,gBAAgB,IAAI,eAAe,CAAC;IACpC,UAAU,IAAI,SAAS,CAAC;IACxB,kBAAkB,IAAI,iBAAiB,CAAC;IACxC,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;IAC5C,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;IACjD,YAAY,EAAE,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,KACf,YAAY,CAAC;IAClB,kBAAkB,EAAE,CAClB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,MAAM,EAAE,EACd,oBAAoB,EAAE,OAAO,KAC1B,aAAa,CAAC;IACnB,cAAc,EAAE,MAAM,aAAa,CAAC;IACpC,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAEtD,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-audio-api",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
package/src/core/AudioContext.ts
CHANGED
|
@@ -2,8 +2,8 @@ import { IAudioContext } from '../interfaces';
|
|
|
2
2
|
import BaseAudioContext from './BaseAudioContext';
|
|
3
3
|
|
|
4
4
|
export default class AudioContext extends BaseAudioContext {
|
|
5
|
-
constructor() {
|
|
6
|
-
super(global.__AudioAPIInstaller.createAudioContext());
|
|
5
|
+
constructor(sampleRate?: number) {
|
|
6
|
+
super(global.__AudioAPIInstaller.createAudioContext(sampleRate));
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
close(): void {
|
package/src/core/AudioNode.ts
CHANGED
|
@@ -22,17 +22,17 @@ export default class AudioNode {
|
|
|
22
22
|
this.channelInterpretation = this.node.channelInterpretation;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
public connect(
|
|
26
|
-
if (this.context !==
|
|
25
|
+
public connect(destination: AudioNode): void {
|
|
26
|
+
if (this.context !== destination.context) {
|
|
27
27
|
throw new InvalidAccessError(
|
|
28
28
|
'The AudioNodes are from different BaseAudioContexts'
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
this.node.connect(
|
|
32
|
+
this.node.connect(destination.node);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
public disconnect(
|
|
36
|
-
this.node.disconnect(node
|
|
35
|
+
public disconnect(destination?: AudioNode): void {
|
|
36
|
+
this.node.disconnect(destination?.node);
|
|
37
37
|
}
|
|
38
38
|
}
|
package/src/index.ts
CHANGED
|
@@ -97,16 +97,21 @@ export class AudioNode {
|
|
|
97
97
|
this.channelInterpretation = this.node.channelInterpretation;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
public connect(
|
|
101
|
-
if (this.context !==
|
|
100
|
+
public connect(destination: AudioNode): void {
|
|
101
|
+
if (this.context !== destination.context) {
|
|
102
102
|
throw new Error('The AudioNodes are from different BaseAudioContexts');
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
this.node.connect(
|
|
105
|
+
this.node.connect(destination.node);
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
public disconnect(
|
|
109
|
-
|
|
108
|
+
public disconnect(destination?: AudioNode): void {
|
|
109
|
+
if (destination === undefined) {
|
|
110
|
+
this.node.disconnect();
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
this.node.disconnect(destination.node);
|
|
110
115
|
}
|
|
111
116
|
}
|
|
112
117
|
|
|
@@ -415,7 +420,7 @@ export class AudioContext {
|
|
|
415
420
|
readonly destination: AudioDestinationNode;
|
|
416
421
|
readonly sampleRate: number;
|
|
417
422
|
|
|
418
|
-
constructor() {
|
|
423
|
+
constructor(_sampleRate?: number) {
|
|
419
424
|
this.context = new window.AudioContext();
|
|
420
425
|
|
|
421
426
|
this.sampleRate = this.context.sampleRate;
|
package/src/interfaces.ts
CHANGED
|
@@ -44,7 +44,7 @@ export interface IAudioNode {
|
|
|
44
44
|
readonly channelInterpretation: ChannelInterpretation;
|
|
45
45
|
|
|
46
46
|
connect: (node: IAudioNode) => void;
|
|
47
|
-
disconnect: (node
|
|
47
|
+
disconnect: (node?: IAudioNode) => void;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
export interface IGainNode extends IAudioNode {
|