4#ifndef __GUI_WIDGETS_SPECTRUM_ANALYZER_H__
5#define __GUI_WIDGETS_SPECTRUM_ANALYZER_H__
7#include "common/utils/types.h"
8#include "gui/backend/gtk_widgets/gtk_wrapper.h"
10#include "juce_wrapper.h"
22#define SPECTRUM_ANALYZER_WIDGET_TYPE (spectrum_analyzer_widget_get_type ())
24 SpectrumAnalyzerWidget,
25 spectrum_analyzer_widget,
27 SPECTRUM_ANALYZER_WIDGET,
30#define SPECTRUM_ANALYZER_MAX_BLOCK_SIZE 32768
31#define SPECTRUM_ANALYZER_MIN_FREQ 20.f
36using SpectrumAnalyzerWidget =
struct _SpectrumAnalyzerWidget
38 GtkWidget parent_instance;
43 std::unique_ptr<juce::AudioSampleBuffer> buffer;
45 kiss_fft_cpx * fft_in;
46 kiss_fft_cpx * fft_out;
48 kiss_fft_cfg fft_config;
51 std::vector<PeakFallSmooth> bins;
60SpectrumAnalyzerWidget *
61spectrum_analyzer_widget_new_for_port (Port * port);