aboutsummaryrefslogtreecommitdiff
path: root/externals/oboe/samples/SoundBoard/src/main/cpp/Synth.h
diff options
context:
space:
mode:
Diffstat (limited to 'externals/oboe/samples/SoundBoard/src/main/cpp/Synth.h')
-rw-r--r--externals/oboe/samples/SoundBoard/src/main/cpp/Synth.h94
1 files changed, 0 insertions, 94 deletions
diff --git a/externals/oboe/samples/SoundBoard/src/main/cpp/Synth.h b/externals/oboe/samples/SoundBoard/src/main/cpp/Synth.h
deleted file mode 100644
index ef28a3a68f..0000000000
--- a/externals/oboe/samples/SoundBoard/src/main/cpp/Synth.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SOUNDBOARD_SYNTH_H
-#define SOUNDBOARD_SYNTH_H
-
-#include <array>
-#include <TappableAudioSource.h>
-
-#include <SynthSound.h>
-#include <Mixer.h>
-#include <MonoToStereo.h>
-
-constexpr float kOscBaseFrequency = 196.00; // Start at G3
-constexpr float kOscFrequencyMultiplier = 1.05946309436;
-constexpr float kOscBaseAmplitude = 0.20;
-constexpr float kOscAmplitudeMultiplier = 0.96;
-
-class Synth : public IRenderableAudio, public ITappable {
-public:
- static ::std::shared_ptr<Synth> create(const int32_t sampleRate, const int32_t channelCount, const int32_t numSignals) {
- return ::std::make_shared<Synth>(sampleRate, channelCount, numSignals);
- }
-
- Synth(const int32_t sampleRate, const int32_t channelCount, const int32_t numSignals) {
- mNumSignals = numSignals;
- mOscs = std::make_unique<SynthSound[]>(numSignals);
- float curFrequency = kOscBaseFrequency;
- float curAmplitude = kOscBaseAmplitude;
- for (int i = 0; i < numSignals; ++i) {
- mOscs[i].setSampleRate(sampleRate);
- mOscs[i].setFrequency(curFrequency);
- curFrequency *= kOscFrequencyMultiplier;
- mOscs[i].setAmplitude(curAmplitude);
- curAmplitude *= kOscAmplitudeMultiplier;
- mMixer.addTrack(&mOscs[i]);
- }
-
- if (channelCount == oboe::ChannelCount::Stereo) {
- mOutputStage = &mConverter;
- } else {
- mOutputStage = &mMixer;
- }
- }
-
- void noteOff(int32_t noteIndex) {
- mOscs[noteIndex].noteOff();
- }
-
- void noteOn(int32_t noteIndex) {
- mOscs[noteIndex].noteOn();
- }
-
- void tap(bool isOn) override {
- for (int i = 0; i < mNumSignals; i++) {
- if (isOn) {
- mOscs[i].noteOn();
- } else {
- mOscs[i].noteOff();
- }
- }
- };
-
- // From IRenderableAudio
- void renderAudio(float *audioData, int32_t numFrames) override {
- mOutputStage->renderAudio(audioData, numFrames);
- };
-
- virtual ~Synth() {
- }
-private:
- // Rendering objects
- int32_t mNumSignals;
- std::unique_ptr<SynthSound[]> mOscs;
- Mixer mMixer;
- MonoToStereo mConverter = MonoToStereo(&mMixer);
- IRenderableAudio *mOutputStage; // This will point to either the mixer or converter, so it needs to be raw
-};
-
-
-#endif //SOUNDBOARD_SYNTH_H