3 #ifndef SPECTMORPH_ENCODER_HH 4 #define SPECTMORPH_ENCODER_HH 10 #include <bse/gsldatautils.hh> 49 std::vector<std::string> param_name_d;
50 std::map<std::string, double> param_value_d;
51 std::vector<std::string> param_name_s;
52 std::map<std::string, std::string> param_value_s;
54 bool load_config (
const std::string& filename);
55 bool get_param (
const std::string& param,
double& value)
const;
56 bool get_param (
const std::string& param, std::string& value)
const;
98 Audio::LoopType loop_type;
100 bool check_harmonic (
double freq,
double& new_freq,
double mix_freq);
102 std::vector< std::vector<Tracksel> > frame_tracksels;
106 double attack_start_ms;
107 double attack_end_ms;
109 double attack_error (
const std::vector< std::vector<double> >& unscaled_signal,
const std::vector<float>& window,
const Attack& attack, std::vector<double>& out_scale);
113 Attack optimal_attack;
114 size_t zero_values_at_start;
116 std::vector<float> original_samples;
121 void compute_stft (GslDataHandle *dhandle,
int channel,
const std::vector<float>& window);
122 void search_local_maxima (
const std::vector<float>& window);
123 void link_partials();
124 void validate_partials();
125 void optimize_partials (
const std::vector<float>& window,
int optimization_level);
126 void spectral_subtract (
const std::vector<float>& window);
127 void approx_noise (
const std::vector<float>& window);
128 void compute_attack_params (
const std::vector<float>& window);
129 void compute_lpc_lsf();
131 void debug_decode (
const std::string& filename,
const std::vector<float>& window);
134 void encode (GslDataHandle *dhandle,
int channel,
const std::vector<float>& window,
int optimization_level,
135 bool attack,
bool track_sines,
bool do_lpc);
137 void set_loop (Audio::LoopType loop_type,
int loop_start,
int loop_end);
138 void set_loop_seconds (Audio::LoopType loop_type,
double loop_start,
double loop_end);
139 void save (
const std::string& filename);
std::vector< float > original_fft
original zeropadded FFT data - for debugging only
Definition: smencoder.hh:81
float frame_step_ms
Definition: smencoder.hh:28
float frame_size_ms
Definition: smencoder.hh:31
size_t frame_step
Definition: smencoder.hh:37
Definition: smencoder.hh:72
Definition: smencoder.hh:61
std::vector< EncoderBlock > audio_blocks
current state, and end result of the encoding algorithm
Definition: smencoder.hh:112
std::vector< float > phases
phases of the sine components
Definition: smencoder.hh:78
double fundamental_freq
Definition: smencoder.hh:46
Encoder parameters.
Definition: smencoder.hh:22
std::vector< float > lpc_lsf_q
LPC line spectrum frequencies, Q(z) roots.
Definition: smencoder.hh:80
Definition: smaudio.hh:15
float mix_freq
Definition: smencoder.hh:25
std::vector< float > freqs
frequencies of the sine components of this frame
Definition: smencoder.hh:76
std::vector< float > mags
magnitudes of the sine components
Definition: smencoder.hh:77
std::vector< float > debug_samples
original audio samples for this frame - for debugging only
Definition: smencoder.hh:82
Encoder producing SpectMorph parametric data from sample data.
Definition: smencoder.hh:93
int zeropad
Definition: smencoder.hh:34
std::vector< float > lpc_lsf_p
LPC line spectrum frequencies, P(z) roots.
Definition: smencoder.hh:79
size_t frame_size
Definition: smencoder.hh:40
std::vector< float > noise
noise envelope, representing the original signal minus sine components
Definition: smencoder.hh:75
size_t block_size
Definition: smencoder.hh:43