3 #ifndef SPECTMORPH_AUDIO_HH 4 #define SPECTMORPH_AUDIO_HH 8 #include "smgenericin.hh" 9 #include "smgenericout.hh" 13 #define SPECTMORPH_BINARY_FILE_VERSION 14 14 #define SPECTMORPH_SUPPORT_MULTI_CHANNEL 0 32 std::vector<uint16_t>
mags;
38 double estimate_fundamental (
int n_partials = 1,
double *mag =
nullptr)
const;
41 freqs_f (
size_t i)
const 43 return sm_ifreq2freq (freqs[i]);
47 mags_f (
size_t i)
const 49 return sm_idb2factor (mags[i]);
53 phases_f (
size_t i)
const 55 const double factor = 2.0 * M_PI / 65536.0;
56 return phases[i] * factor;
60 noise_f (
size_t i)
const 62 return sm_idb2factor (noise[i]);
81 SPECTMORPH_CLASS_NON_COPYABLE (
Audio);
94 float fundamental_freq = 0;
96 float frame_size_ms = 0;
97 float frame_step_ms = 0;
98 float attack_start_ms = 0;
99 float attack_end_ms = 0;
101 LoopType loop_type = LOOP_NONE;
104 int zero_values_at_start = 0;
105 int sample_count = 0;
107 float original_samples_norm_db = 0;
110 Error load (
const std::string& filename, AudioLoadOptions load_options = AUDIO_LOAD_DEBUG);
112 Error save (
const std::string& filename)
const;
115 Audio *clone()
const;
117 static bool loop_type_to_string (LoopType loop_type, std::string& s);
118 static bool string_to_loop_type (
const std::string& s, LoopType& loop_type);
std::vector< float > original_samples
original time domain signal as samples (debugging only)
Definition: smaudio.hh:106
Generic Input Stream.
Definition: smgenericin.hh:17
Audio sample containing many blocks.
Definition: smaudio.hh:79
std::vector< float > original_fft
original zeropadded FFT data - for debugging only
Definition: smaudio.hh:34
Definition: smutils.hh:89
Block of audio data, encoded in SpectMorph parametric format.
Definition: smaudio.hh:27
std::vector< uint16_t > noise
noise envelope, representing the original signal minus sine components
Definition: smaudio.hh:30
std::vector< uint16_t > freqs
frequencies of the sine components of this frame
Definition: smaudio.hh:31
std::vector< AudioBlock > contents
the actual frame data
Definition: smaudio.hh:108
std::vector< uint16_t > phases
phases of the sine components
Definition: smaudio.hh:33
Definition: smadsrenvelope.hh:8
std::vector< uint16_t > mags
magnitudes of the sine components
Definition: smaudio.hh:32
Generic Output Stream.
Definition: smgenericout.hh:17
std::vector< float > debug_samples
original audio samples for this frame - for debugging only
Definition: smaudio.hh:35