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;
 
   60   noise_f (
size_t i)
 const 
   62     return sm_idb2factor (
noise[i]);
 
   81   SPECTMORPH_CLASS_NON_COPYABLE (
Audio);
 
   94   static constexpr 
size_t N_NOISE_BANDS = 32;
 
  112   Error load (
const std::string& filename, AudioLoadOptions load_options = AUDIO_LOAD_DEBUG);
 
  114   Error save (
const std::string& filename) 
const;
 
  117   Audio *clone() 
const; 
 
  119   static bool loop_type_to_string (LoopType 
loop_type, std::string& s);
 
  120   static bool string_to_loop_type (
const std::string& s, LoopType& 
loop_type);
 
Block of audio data, encoded in SpectMorph parametric format.
Definition: smaudio.hh:28
 
std::vector< uint16_t > noise
noise envelope, representing the original signal minus sine components
Definition: smaudio.hh:30
 
std::vector< float > original_fft
original zeropadded FFT data - for debugging only
Definition: smaudio.hh:34
 
std::vector< float > debug_samples
original audio samples for this frame - for debugging only
Definition: smaudio.hh:35
 
std::vector< uint16_t > phases
phases of the sine components
Definition: smaudio.hh:33
 
std::vector< uint16_t > freqs
frequencies of the sine components of this frame
Definition: smaudio.hh:31
 
std::vector< uint16_t > mags
magnitudes of the sine components
Definition: smaudio.hh:32
 
Audio sample containing many blocks.
Definition: smaudio.hh:80
 
float mix_freq
mix freq (sampling rate) of the original audio data
Definition: smaudio.hh:97
 
std::vector< float > original_samples
original time domain signal as samples (debugging only)
Definition: smaudio.hh:108
 
int loop_start
loop point to be used during sustain phase of playback
Definition: smaudio.hh:104
 
int zero_values_at_start
number of zero values added by encoder (strip during decoding)
Definition: smaudio.hh:106
 
float frame_size_ms
length of each audio frame in milliseconds
Definition: smaudio.hh:98
 
float original_samples_norm_db
normalization factor to be applied to original samples
Definition: smaudio.hh:109
 
int loop_end
loop point to be used during sustain phase of playback
Definition: smaudio.hh:105
 
Error load(const std::string &filename, AudioLoadOptions load_options=AUDIO_LOAD_DEBUG)
Definition: smaudio.cc:31
 
float attack_end_ms
end of attack in milliseconds
Definition: smaudio.hh:101
 
float fundamental_freq
fundamental frequency (note which was encoded), or 0 if not available
Definition: smaudio.hh:96
 
std::vector< AudioBlock > contents
the actual frame data
Definition: smaudio.hh:110
 
int sample_count
number of samples encoded (including zero_values_at_start)
Definition: smaudio.hh:107
 
float attack_start_ms
start of attack in milliseconds
Definition: smaudio.hh:100
 
LoopType loop_type
type of loop to be used during sustain phase of playback
Definition: smaudio.hh:103
 
int zeropad
FFT zeropadding used during analysis.
Definition: smaudio.hh:102
 
Error save(const std::string &filename) const
Definition: smaudio.cc:249
 
float frame_step_ms
stepping of the audio frames in milliseconds
Definition: smaudio.hh:99
 
Definition: smutils.hh:102
 
Generic Input Stream.
Definition: smgenericin.hh:18
 
Generic Output Stream.
Definition: smgenericout.hh:18