Refactor to common.h #13

Merged
rkcf merged 3 commits from config-parse into main 2023-02-27 10:51:42 +00:00
8 changed files with 54 additions and 36 deletions

View File

@ -5,7 +5,7 @@ OLEVEL = -O2
CFLAGS = -Wall -std=c++17 $(OLEVEL) -o $(PROJ)
OBJECTS = src/wtpp.cpp src/wave.cpp src/wavetable.cpp src/generators.cpp
OBJECTS = src/wtpp.cpp src/wave.cpp src/wavetable.cpp src/generators.cpp src/common.cpp
build:
$(CC) $(CFLAGS) $(OBJECTS)

8
src/common.cpp Normal file
View File

@ -0,0 +1,8 @@
#include <string>
#include <iostream>
#include "common.h"
void clog(std::string message)
{
std::cout << "wtpp: " << message << '\n';
}

27
src/common.h Normal file
View File

@ -0,0 +1,27 @@
/*! @file common.h
@brief Header for constants, types, utilities
*/
#ifndef COMMON_H_
#define COMMON_H_
#include <cstdint>
#include <string>
/*!
Constants
*/
const uint32_t DEFAULT_SAMPLE_RATE = 22050; /*!< 22.05 kHz sampling rate */
const uint8_t DEFAULT_BIT_DEPTH = 12; /*!< 12bit samples */
const uint16_t DEFAULT_N_SAMPLES = 1024; /*!< 1024 samples per wave cycle */
const uint16_t DEFAULT_N_WAVES = 64; /*!< Number of Wave cycle objects in Wavetable */
/*!
TYPES
*/
/*! Logs a message to console
@param message The string to be logged
*/
void clog(std::string message);
#endif // COMMON_H_

View File

@ -1,3 +1,4 @@
#include <cmath>
#include "generators.h"
#include "wave.h"

View File

@ -4,9 +4,6 @@
#ifndef GENERATORS_H_
#define GENERATORS_H_
#include "math.h"
#include <cstdint>
#include "wave.h"
/*! Generate sine wave data

View File

@ -4,15 +4,14 @@
#ifndef WAVE_H_
#define WAVE_H_
#include <iostream>
#include "common.h"
#include <array>
#include <cmath>
#include <cstdint>
#include <iostream>
#include <string>
#include <math.h>
const uint16_t DEFAULT_N_SAMPLES = 1024;
using sample_table_t = std::array<float_t, DEFAULT_N_SAMPLES>;
using sample_table_t = std::array<float_t, DEFAULT_N_SAMPLES>; /*!< Array of waveform sample data*/
/*! @class Wave wave.h "wave.h"
@brief Single cycle wave object with lookup table

View File

@ -10,10 +10,7 @@
#include "wave.h"
/* Number of Wave cycle objects in table */
const uint16_t DEFAULT_N_WAVES = 256;
using wave_table_t = std::array<Wave, DEFAULT_N_WAVES>;
using wave_table_t = std::array<Wave, DEFAULT_N_WAVES>; /*!< Array of Wave objects */
/*! @class Wavetable wavetable.h "wavetable.h"
@brief Object containing a table of single cycle Wave objects

View File

@ -1,30 +1,19 @@
#include <array>
#include <cmath>
#include <cstdint>
#include <iostream>
#include <string>
#include <type_traits>
#include <math.h>
#include "ini.h"
#include "common.h"
#include "wave.h"
#include "generators.h"
#include "wavetable.h"
static const uint32_t DEFAULT_SAMPLE_RATE = 44100; // 44.1 kHz sampling rate
static const uint8_t DEFAULT_BIT_DEPTH = 12;
/*! Logs a message
@param message The string to be logged
*/
static void log(std::string message)
{
std::cout << "wtpp: " << message << '\n';
}
int main()
{
log("Generating wave cycle lookup tables");
clog("Generating wave cycle lookup tables");
Wave sin_wave, squ_wave, saw_wave, tri_wave, isaw_wave;
// Calculate fundamental wave values
@ -41,21 +30,21 @@ int main()
tri_wave.setTable(tri_vals);
isaw_wave.setTable(isaw_vals);
log("Printing head of sine table");
clog("Printing head of sine table");
sin_wave.print_head();
log("Printing head of square table");
clog("Printing head of square table");
squ_wave.print_head();
log("Printing head of saw table");
clog("Printing head of saw table");
saw_wave.print_head();
log("Printing head of triangle table");
clog("Printing head of triangle table");
tri_wave.print_head();
log("Printing head of inverse saw table");
clog("Printing head of inverse saw table");
isaw_wave.print_head();
// Create wave table of all fundamental Wave objects
wave_table_t fundies = {sin_wave, squ_wave, saw_wave, tri_wave, isaw_wave};
Wavetable wt_01{"Fundamental Waves", fundies};
log(wt_01.name());
clog(wt_01.name());
// Write sine wave table to file
sin_wave.export_csv("data/sine.csv");