aboutsummaryrefslogtreecommitdiffstats
path: root/host/examples/wavetable.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'host/examples/wavetable.hpp')
-rw-r--r--host/examples/wavetable.hpp54
1 files changed, 25 insertions, 29 deletions
diff --git a/host/examples/wavetable.hpp b/host/examples/wavetable.hpp
index 8fdc8db30..2a1d13f48 100644
--- a/host/examples/wavetable.hpp
+++ b/host/examples/wavetable.hpp
@@ -5,55 +5,51 @@
// SPDX-License-Identifier: GPL-3.0-or-later
//
-#include <string>
#include <cmath>
#include <complex>
-#include <vector>
#include <stdexcept>
+#include <string>
+#include <vector>
static const size_t wave_table_len = 8192;
-class wave_table_class{
+class wave_table_class
+{
public:
- wave_table_class(const std::string &wave_type, const float ampl):
- _wave_table(wave_table_len)
+ wave_table_class(const std::string& wave_type, const float ampl)
+ : _wave_table(wave_table_len)
{
- //compute real wave table with 1.0 amplitude
+ // compute real wave table with 1.0 amplitude
std::vector<float> real_wave_table(wave_table_len);
- if (wave_type == "CONST"){
+ if (wave_type == "CONST") {
for (size_t i = 0; i < wave_table_len; i++)
real_wave_table[i] = 1.0;
- }
- else if (wave_type == "SQUARE"){
+ } else if (wave_type == "SQUARE") {
for (size_t i = 0; i < wave_table_len; i++)
- real_wave_table[i] = (i < wave_table_len/2)? 0.0 : 1.0;
- }
- else if (wave_type == "RAMP"){
+ real_wave_table[i] = (i < wave_table_len / 2) ? 0.0 : 1.0;
+ } else if (wave_type == "RAMP") {
for (size_t i = 0; i < wave_table_len; i++)
- real_wave_table[i] = 2.0*i/(wave_table_len-1) - 1.0;
- }
- else if (wave_type == "SINE"){
- static const double tau = 2*std::acos(-1.0);
+ real_wave_table[i] = 2.0 * i / (wave_table_len - 1) - 1.0;
+ } else if (wave_type == "SINE") {
+ static const double tau = 2 * std::acos(-1.0);
for (size_t i = 0; i < wave_table_len; i++)
- real_wave_table[i] = std::sin((tau*i)/wave_table_len);
- }
- else throw std::runtime_error("unknown waveform type: " + wave_type);
+ real_wave_table[i] = std::sin((tau * i) / wave_table_len);
+ } else
+ throw std::runtime_error("unknown waveform type: " + wave_type);
- //compute i and q pairs with 90% offset and scale to amplitude
- for (size_t i = 0; i < wave_table_len; i++){
- const size_t q = (i+(3*wave_table_len)/4)%wave_table_len;
- _wave_table[i] = std::complex<float>(
- ampl*real_wave_table[i],
- ampl*real_wave_table[q]
- );
+ // compute i and q pairs with 90% offset and scale to amplitude
+ for (size_t i = 0; i < wave_table_len; i++) {
+ const size_t q = (i + (3 * wave_table_len) / 4) % wave_table_len;
+ _wave_table[i] =
+ std::complex<float>(ampl * real_wave_table[i], ampl * real_wave_table[q]);
}
}
- inline std::complex<float> operator()(const size_t index) const{
+ inline std::complex<float> operator()(const size_t index) const
+ {
return _wave_table[index % wave_table_len];
}
private:
- std::vector<std::complex<float> > _wave_table;
+ std::vector<std::complex<float>> _wave_table;
};
-