SpectMorph
smnoisedecoder.hh
1 // Licensed GNU LGPL v3 or later: http://www.gnu.org/licenses/lgpl.html
2 
3 #ifndef SPECTMORPH_NOISE_DECODER_HH
4 #define SPECTMORPH_NOISE_DECODER_HH
5 
6 #include "smrandom.hh"
7 #include "smnoisebandpartition.hh"
8 #include "smaudio.hh"
9 
10 namespace SpectMorph
11 {
12 
17 {
18  double orig_mix_freq;
19  double mix_freq;
20  size_t block_size;
21 
22  float *cos_window;
23 
24  Random random_gen;
25  NoiseBandPartition *noise_band_partition;
26 
27  void apply_window (float *spectrum, float *fft_buffer);
28 
29 public:
30  NoiseDecoder (double orig_mix_freq,
31  double mix_freq,
32  size_t block_size);
33  ~NoiseDecoder();
34 
35  enum OutputMode { REPLACE, ADD, FFT_SPECTRUM, DEBUG_UNWINDOWED, DEBUG_NO_OUTPUT };
36 
37  void set_seed (int seed);
38  void process (const AudioBlock& audio_block,
39  float *samples,
40  OutputMode output_mode = REPLACE);
41 
42  static size_t preferred_block_size (double mix_freq);
43 };
44 
45 }
46 
47 #endif
Block of audio data, encoded in SpectMorph parametric format.
Definition: smaudio.hh:26
Definition: smnoisebandpartition.hh:15
Definition: smrandom.hh:13
Definition: smaudio.hh:15
NoiseDecoder(double orig_mix_freq, double mix_freq, size_t block_size)
Definition: smnoisedecoder.cc:36
void process(const AudioBlock &audio_block, float *samples, OutputMode output_mode=REPLACE)
Definition: smnoisedecoder.cc:78
Decoder for the noise component (stochastic component) of the signal.
Definition: smnoisedecoder.hh:16