diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/simpl/base.cpp | 70 | ||||
-rw-r--r-- | src/simpl/base.h | 51 |
2 files changed, 120 insertions, 1 deletions
diff --git a/src/simpl/base.cpp b/src/simpl/base.cpp index e126433..028aeaf 100644 --- a/src/simpl/base.cpp +++ b/src/simpl/base.cpp @@ -23,6 +23,9 @@ using namespace std; namespace Simpl { +// --------------------------------------------------------------------------- +// Peak +// --------------------------------------------------------------------------- Peak::Peak() { amplitude = 0.0; @@ -69,4 +72,71 @@ bool Peak::is_free(string direction) return true; } +// --------------------------------------------------------------------------- +// Frame +// --------------------------------------------------------------------------- +Frame::Frame() +{ + size = 512; + init(); +} + +Frame::Frame(int frame_size) +{ + size = frame_size; + init(); +} + +Frame::~Frame() +{ +} + +void Frame::init() +{ + audio.resize(size); + synth.resize(size); + residual.resize(size); + synth_residual.resize(size); + max_peaks = 100; + peaks.resize(max_peaks); + max_partials = 100; + partials.resize(max_partials); +} + +int Frame::get_size() +{ + return size; +} + +int Frame::get_max_peaks() +{ + return max_peaks; +} + +int Frame::get_max_partials() +{ + return max_partials; +} + +void Frame::set_size(int new_size) +{ + size = new_size; + audio.resize(size); + synth.resize(size); + residual.resize(size); + synth_residual.resize(size); +} + +void Frame::set_max_peaks(int new_max_peaks) +{ + max_peaks = new_max_peaks; + peaks.resize(max_peaks); +} + +void Frame::set_max_partials(int new_max_partials) +{ + max_partials = new_max_partials; + partials.resize(max_partials); +} + } // end of namespace Simpl diff --git a/src/simpl/base.h b/src/simpl/base.h index 59a969e..5415548 100644 --- a/src/simpl/base.h +++ b/src/simpl/base.h @@ -31,7 +31,11 @@ namespace Simpl typedef double number; -// A Spectral Peak +// --------------------------------------------------------------------------- +// Peak +// +// A spectral Peak +// --------------------------------------------------------------------------- class Peak { public: @@ -56,6 +60,51 @@ public: typedef std::vector<Peak> Peaks; +// --------------------------------------------------------------------------- +// Partial +// --------------------------------------------------------------------------- +class Partial {}; + +typedef std::vector<Partial> Partials; + +// --------------------------------------------------------------------------- +// Frame +// +// Represents a frame of audio information. +// This can be: - raw audio samples +// - an unordered list of sinusoidal peaks +// - an ordered list of partials +// - synthesised audio samples +// - residual samples +// - synthesised residual samples +// --------------------------------------------------------------------------- +class Frame +{ +protected: + int size; + int max_peaks; + int max_partials; + void init(); + +public: + Peaks peaks; + Partials partials; + std::vector<number> audio; + std::vector<number> synth; + std::vector<number> residual; + std::vector<number> synth_residual; + + Frame(); + Frame(int frame_size); + ~Frame(); + int get_size(); + int get_max_peaks(); + int get_max_partials(); + void set_size(int new_size); + void set_max_peaks(int new_max_peaks); + void set_max_partials(int new_max_partials); +}; + } // end of namespace Simpl #endif |