LMMS
Loading...
Searching...
No Matches
modules_pitch.h
Go to the documentation of this file.
1#ifndef CALF_MODULES_PITCH_H
2#define CALF_MODULES_PITCH_H
3
4#include <assert.h>
5#include <limits.h>
6#include "biquad.h"
7#include "inertia.h"
8#include "audio_fx.h"
9#include "analyzer.h"
10#include "giface.h"
11#include "metadata.h"
12#include "fft.h"
13#include <math.h>
14#include "bypass.h"
15
16#if ENABLE_EXPERIMENTAL
17
18namespace calf_plugins {
19
20class pitch_audio_module: public audio_module<pitch_metadata>, public line_graph_iface
21{
22protected:
23 typedef dsp::fft<float, 12> pfft;
24 enum { BufferSize = 4096 };
25 uint32_t srate;
26 pfft transform;
27 float inputbuf[BufferSize];
28 pfft::complex waveform[2 * BufferSize], spectrum[2 * BufferSize], autocorr[2 * BufferSize];
29 float magarr[BufferSize / 2];
30 float sumsquares[BufferSize + 1], sumsquares_last;
31 uint32_t write_ptr;
32
33 void recompute();
34public:
35 typedef pitch_audio_module AM;
36
37 pitch_audio_module();
38 ~pitch_audio_module();
39 void params_changed();
40 void activate();
41 void set_sample_rate(uint32_t sr);
42 void deactivate();
43 uint32_t process(uint32_t offset, uint32_t numsamples, uint32_t inputs_mask, uint32_t outputs_mask);
44
45 bool get_graph(int index, int subindex, int phase, float *data, int points, cairo_iface *context, int *mode) const;
46 bool get_layers(int index, int generation, unsigned int &layers) const { layers = LG_REALTIME_GRAPH; return true; }
47};
48
49};
50#endif
51
52#endif
static long waveform[8]
Definition adlibemu.c:197
void process(Alg_seq_ptr seq, bool tempo_flag, double tempo, bool flatten_flag)
Definition allegroconvert.cpp:42
static void deactivate(LV2_Handle instance)
Definition bindings_test_plugin.c:128
Empty implementations for plugin functions.
Definition giface.h:519
JSAMPIMAGE data
Definition jpeglib.h:945
unsigned int uint32_t
Definition mid.cpp:100
Definition benchmark.cpp:53
@ LG_REALTIME_GRAPH
Definition giface.h:181
png_structrp int mode
Definition png.h:1139
'provides live line graph values' interface
Definition giface.h:198