3 #ifndef SPECTMORPH_ENCODER_HH 4 #define SPECTMORPH_ENCODER_HH 9 #include <bse/gsldatautils.hh> 87 Audio::LoopType loop_type;
89 bool check_harmonic (
double freq,
double& new_freq,
double mix_freq);
91 std::vector< std::vector<Tracksel> > frame_tracksels;
95 double attack_start_ms;
98 double attack_error (
const std::vector< std::vector<double> >& unscaled_signal,
const std::vector<float>& window,
const Attack& attack, std::vector<double>& out_scale);
102 Attack optimal_attack;
103 size_t zero_values_at_start;
105 std::vector<float> original_samples;
110 void compute_stft (GslDataHandle *dhandle,
int channel,
const std::vector<float>& window);
111 void search_local_maxima (
const std::vector<float>& window);
112 void link_partials();
113 void validate_partials();
114 void optimize_partials (
const std::vector<float>& window,
int optimization_level);
115 void spectral_subtract (
const std::vector<float>& window);
116 void approx_noise (
const std::vector<float>& window);
117 void compute_attack_params (
const std::vector<float>& window);
118 void compute_lpc_lsf();
120 void debug_decode (
const std::string& filename,
const std::vector<float>& window);
123 void encode (GslDataHandle *dhandle,
int channel,
const std::vector<float>& window,
int optimization_level,
124 bool attack,
bool track_sines,
bool do_lpc);
126 void set_loop (Audio::LoopType loop_type,
int loop_start,
int loop_end);
127 void set_loop_seconds (Audio::LoopType loop_type,
double loop_start,
double loop_end);
128 void save (
const std::string& filename);
std::vector< float > original_fft
original zeropadded FFT data - for debugging only
Definition: smencoder.hh:70
float frame_step_ms
Definition: smencoder.hh:27
float frame_size_ms
Definition: smencoder.hh:30
size_t frame_step
Definition: smencoder.hh:36
Definition: smencoder.hh:61
Definition: smencoder.hh:50
std::vector< EncoderBlock > audio_blocks
current state, and end result of the encoding algorithm
Definition: smencoder.hh:101
std::vector< float > phases
phases of the sine components
Definition: smencoder.hh:67
double fundamental_freq
Definition: smencoder.hh:45
Encoder parameters.
Definition: smencoder.hh:21
std::vector< float > lpc_lsf_q
LPC line spectrum frequencies, Q(z) roots.
Definition: smencoder.hh:69
Definition: smaudio.hh:15
float mix_freq
Definition: smencoder.hh:24
std::vector< float > freqs
frequencies of the sine components of this frame
Definition: smencoder.hh:65
std::vector< float > mags
magnitudes of the sine components
Definition: smencoder.hh:66
std::vector< float > debug_samples
original audio samples for this frame - for debugging only
Definition: smencoder.hh:71
Encoder producing SpectMorph parametric data from sample data.
Definition: smencoder.hh:82
int zeropad
Definition: smencoder.hh:33
std::vector< float > lpc_lsf_p
LPC line spectrum frequencies, P(z) roots.
Definition: smencoder.hh:68
size_t frame_size
Definition: smencoder.hh:39
std::vector< float > noise
noise envelope, representing the original signal minus sine components
Definition: smencoder.hh:64
size_t block_size
Definition: smencoder.hh:42