Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
ccfe46a
chore: change eq dots scaling factor
PROPHESSOR Dec 20, 2023
e25960e
chore: remove unneeded filter bands
PROPHESSOR Dec 20, 2023
54baf18
chore: change dots scale factor
PROPHESSOR Dec 21, 2023
0fb9183
New EQ look
PROPHESSOR Dec 21, 2023
5b952a5
EQ design upgrade
PROPHESSOR Dec 21, 2023
f7af492
Added current_filter variable
sadko4u Dec 21, 2023
ba9c6e9
Some layour rearrangements
PROPHESSOR Dec 21, 2023
ea2e567
A hack
PROPHESSOR Dec 21, 2023
891a68f
Trying to use :current_filter
PROPHESSOR Dec 21, 2023
e2a86e1
Code fixes, better UI experience
sadko4u Dec 21, 2023
fc53ced
Added mouse scroll handling
sadko4u Dec 21, 2023
df7b112
UI improvements
PROPHESSOR Dec 22, 2023
e51c2e8
Updated UI
sadko4u Dec 22, 2023
65f237a
Fix backgrounds
PROPHESSOR Dec 24, 2023
e7451ab
Make created filter current
PROPHESSOR Jan 1, 2024
d37dc1c
Back to the FFT source combo box
PROPHESSOR Jan 1, 2024
e6d4cb3
LSP EQ rebranding
PROPHESSOR Jan 1, 2024
681fadd
Merge branch 'devel' into feat/prophessor
PROPHESSOR Jan 1, 2024
ab4f66e
FFT speed combo box
PROPHESSOR Jan 1, 2024
dd9180f
Remove unneeded versions & improve port bind trace
PROPHESSOR Jan 1, 2024
1f4d898
Show listen range only in listening mode
PROPHESSOR Jan 1, 2024
61cad0a
Hover active filter dot
PROPHESSOR Jan 1, 2024
fe90f13
Future filter hint
PROPHESSOR Jan 2, 2024
91ecc96
Change Hue distribution
PROPHESSOR Jan 2, 2024
9839b6a
Dim filter control panel
PROPHESSOR Jan 2, 2024
459f3c0
Envelope change
PROPHESSOR Jan 2, 2024
1dac13a
Max levels graph
PROPHESSOR Jan 4, 2024
fe956be
Comment meshes
PROPHESSOR Mar 11, 2024
e3ca4d6
Try to implement "drag curve to create shelf filter"
PROPHESSOR Mar 11, 2024
6b06a12
Rename para_equalizer_x..._y to eq_y (fix compatibility)
PROPHESSOR Mar 11, 2024
18b3451
Merge branch 'devel' of github.com:lsp-plugins/lsp-plugins-para-equal…
PROPHESSOR Mar 11, 2024
b2049cf
Fix build on new fw version
PROPHESSOR Mar 13, 2024
ab8129b
Fix VST3 id length
PROPHESSOR Mar 13, 2024
faf45ff
Graph view improvements
PROPHESSOR Mar 13, 2024
ae8d385
Change filter params background
PROPHESSOR Mar 13, 2024
ed9996d
Replace shift fader with input gain
PROPHESSOR Apr 2, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 26 additions & 12 deletions include/private/meta/para_equalizer.h
Original file line number Diff line number Diff line change
Expand Up @@ -120,18 +120,32 @@ namespace lsp
};
};

extern const meta::plugin_t para_equalizer_x8_mono;
extern const meta::plugin_t para_equalizer_x8_stereo;
extern const meta::plugin_t para_equalizer_x8_lr;
extern const meta::plugin_t para_equalizer_x8_ms;
extern const meta::plugin_t para_equalizer_x16_mono;
extern const meta::plugin_t para_equalizer_x16_stereo;
extern const meta::plugin_t para_equalizer_x16_lr;
extern const meta::plugin_t para_equalizer_x16_ms;
extern const meta::plugin_t para_equalizer_x32_mono;
extern const meta::plugin_t para_equalizer_x32_stereo;
extern const meta::plugin_t para_equalizer_x32_lr;
extern const meta::plugin_t para_equalizer_x32_ms;
static const port_item_t filter_types[] =
{
{ "Off", "eq.flt.off" },
{ "Bell", "eq.flt.bell" },
{ "Hi-pass", "eq.flt.hipass" },
{ "Hi-shelf", "eq.flt.hishelf" },
{ "Lo-pass", "eq.flt.lopass" },
{ "Lo-shelf", "eq.flt.loshelf" },
{ "Notch", "eq.flt.notch" },
{ "Resonance", "eq.flt.resonance" },
{ "Allpass", "eq.flt.allpass" },
{ "Bandpass", "eq.flt.bandpass" },
{ "Ladder-pass", "eq.flt.ladpass" },
{ "Ladder-rej", "eq.flt.ladrej" },

// Additional stuff
#ifdef LSP_USE_EXPERIMENTAL
{ "Allpass2", "eq.flt.allpass2" },
{ "Envelope", "eq.flt.envelope" },
{ "LUFS", "eq.flt.lufs" },
#endif /* LSP_USE_EXPERIMENTAL */
{ NULL, NULL }
};

extern const meta::plugin_t eq_mono;
extern const meta::plugin_t eq_stereo;

} /* namespace meta */
} /* namespace lsp */
Expand Down
26 changes: 24 additions & 2 deletions include/private/plugins/para_equalizer.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,19 @@ namespace lsp
{
FFTP_NONE,
FFTP_POST,
FFTP_PRE
FFTP_PRE,
FFTP_BOTH,
};

enum fft_speed_t
{
FFTS_SLOWEST,
FFTS_SLOWER,
FFTS_SLOW,
FFTS_NORMAL,
FFTS_FAST,
FFTS_FASTER,
FFTS_FASTEST
};

typedef struct eq_filter_t
Expand Down Expand Up @@ -112,7 +124,9 @@ namespace lsp
plug::IPort *pOut; // Output port
plug::IPort *pInGain; // Input gain
plug::IPort *pTrAmp; // Amplitude chart
plug::IPort *pTrMax; // Accumulated chart
plug::IPort *pPitch; // Frequency shift
plug::IPort *pFft; // FFT input/output switch
plug::IPort *pFftInSwitch; // FFT input switch
plug::IPort *pFftOutSwitch; // FFT output switch
plug::IPort *pFftInMesh; // FFT input mesh
Expand All @@ -128,17 +142,25 @@ namespace lsp
uint32_t nMode; // Operating mode
eq_channel_t *vChannels; // List of channels
float *vFreqs; // Frequency list
float *vMaxValues; // Maximum values (for accumulation)
float *vTmpValues; // Temporary values (for accumulation)
uint32_t *vIndexes; // FFT indexes
float fGainIn; // Input gain
float fZoom; // Zoom gain
bool bListen; // Listen mode (only for MS para_equalizer)
bool bSmoothMode; // Smooth mode for the equalizer
bool bAccumEnabled; // Accumulation enabled
core::IDBuffer *pIDisplay; // Inline display buffer
fft_position_t nFftPosition; // FFT input/output switch

plug::IPort *pBypass; // Bypass port
plug::IPort *pGainIn; // Input gain port
plug::IPort *pGainOut; // Output gain port
plug::IPort *pReactivity; // FFT reactivity
plug::IPort *pFftMode; // FFT mode
plug::IPort *pFftSpeed; // FFT mode
plug::IPort *pFftEnv; // FFT envelope (tilt)
plug::IPort *pAccum; // FFT accumulation (max values)
plug::IPort *pResetAccum; // Reset FFT accumulation (max values)
plug::IPort *pListen; // Listen mode (only for MS equalizer)
plug::IPort *pShiftGain; // Shift gain
plug::IPort *pZoom; // Graph zoom
Expand Down
24 changes: 23 additions & 1 deletion include/private/ui/para_equalizer.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,20 @@ namespace lsp
ui::IPort *pInspect; // Inspected filter index
ui::IPort *pAutoInspect; // Automatically inspect the filter
ui::IPort *pSelector; // Filter selector
ui::IPort *pCurrentFilter; // Current filter
ui::IPort *pIsInspecting; // Is inspecting mode activated (on a filter or automatically)
ui::IPort *pFutureFilterType; // Type of the filter to be created in this position
tk::FileDialog *pRewImport;
tk::Graph *wGraph;
tk::GraphMesh *wCurve; // EQ curve graph mesh
tk::Button *wInspectReset; // Inspect reset button
tk::Timer sEditTimer; // Edit timer
const char **fmtStrings;
ssize_t nXAxisIndex;
ssize_t nYAxisIndex;
ssize_t nSplitChannels;
size_t nFilters;
size_t nCurrentFilter;

filter_t *pCurrDot; // Current filter associated with dot
filter_t *pCurrNote; // Current filter note
Expand All @@ -100,9 +105,15 @@ namespace lsp
static status_t slot_fetch_rew_path(tk::Widget *sender, void *ptr, void *data);
static status_t slot_commit_rew_path(tk::Widget *sender, void *ptr, void *data);
static status_t slot_graph_dbl_click(tk::Widget *sender, void *ptr, void *data);
static status_t slot_graph_mouse_move(tk::Widget *sender, void *ptr, void *data);
static status_t slot_graph_mouse_out(tk::Widget *sender, void *ptr, void *data);
static status_t slot_curve_mouse_down(tk::Widget *sender, void *ptr, void *data);

static status_t slot_filter_menu_submit(tk::Widget *sender, void *ptr, void *data);
static status_t slot_filter_dot_click(tk::Widget *sender, void *ptr, void *data);
static status_t slot_filter_dot_mouse_down(tk::Widget *sender, void *ptr, void *data);
static status_t slot_filter_dot_mouse_scroll(tk::Widget *sender, void *ptr, void *data);
static status_t slot_filter_dot_mouse_dbl_click(tk::Widget *sender, void *ptr, void *data);
static status_t slot_filter_inspect_submit(tk::Widget *sender, void *ptr, void *data);
static status_t slot_filter_begin_edit(tk::Widget *sender, void *ptr, void *data);
static status_t slot_filter_change(tk::Widget *sender, void *ptr, void *data);
Expand All @@ -123,6 +134,8 @@ namespace lsp
lltl::parray<tk::MenuItem> *items, const meta::port_t *port);
void set_menu_items_checked(lltl::parray<tk::MenuItem> *list, ui::IPort *port);

size_t get_future_filter_type(size_t freq);

template <class T>
T *find_filter_widget(const char *fmt, const char *base, size_t id);

Expand All @@ -132,8 +145,13 @@ namespace lsp
ssize_t find_axis(const char *id);

void on_graph_dbl_click(ssize_t x, ssize_t y);
void on_graph_mouse_move(ssize_t x, ssize_t y);
void on_graph_mouse_out(ssize_t x, ssize_t y);
void on_curve_mouse_down(ssize_t x, ssize_t y);

void on_filter_dot_right_click(tk::Widget *dot, ssize_t x, ssize_t y);
void on_filter_dot_right_click(tk::Widget *sender, ssize_t x, ssize_t y);
void on_filter_dot_mouse_down(tk::Widget *sender, ssize_t x, ssize_t y);
void on_filter_dot_mouse_scroll(tk::Widget *sender, const ws::event_t *ev);
void on_filter_menu_item_submit(tk::MenuItem *mi);
void on_filter_menu_item_selected(lltl::parray<tk::MenuItem> *list, ui::IPort *port, tk::MenuItem *mi);
void on_filter_inspect_submit(tk::Widget *button);
Expand All @@ -143,12 +161,14 @@ namespace lsp
void on_end_filter_edit(tk::Widget *w);
void on_filter_mouse_in(filter_t *f);
void on_filter_mouse_out();
void on_filter_mouse_dbl_click(tk::Widget *sender);

void on_main_grid_realized(tk::Widget *w);
void on_main_grid_mouse_in(tk::Widget *w, ssize_t x, ssize_t y);
void on_main_grid_mouse_out(tk::Widget *w, ssize_t x, ssize_t y);
void on_main_grid_mouse_move(tk::Widget *w, ssize_t x, ssize_t y);

void set_current_filter(size_t id);
void set_filter_mode(size_t id, size_t mask, size_t value);
void set_filter_type(size_t id, size_t mask, size_t value);
void set_filter_frequency(size_t id, size_t mask, float value);
Expand Down Expand Up @@ -182,6 +202,8 @@ namespace lsp
explicit para_equalizer_ui(const meta::plugin_t *meta);
virtual ~para_equalizer_ui() override;

virtual status_t init(ui::IWrapper *wrapper, tk::Display *dpy) override;

virtual status_t post_init() override;
virtual status_t pre_destroy() override;

Expand Down
3 changes: 3 additions & 0 deletions res/main/i18n/default/graph.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"future_filter_type_msg": "Double click to create {@value} filter here"
}
40 changes: 14 additions & 26 deletions res/main/i18n/default/lists.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,20 @@
"display": {
"full": "{@filter}\n{@filter_type}\n{@frequency%.2f} Hz\n{@note}{@octave}{@cents}\n{@gain%.2f} dB",
"unknown": "{@filter}\n{@filter_type}\n{@frequency%.2f} Hz\n{@gain%.2f} dB"
},

"flt_0:7": "Filters 0-7",
"flt_16:23": "Filters 16-23",
"flt_24:31": "Filters 24-31",
"flt_8:15": "Filters 8-15",

"flt_l_0:7": "Filters Left 0-7",
"flt_l_16:23": "Filters Left 16-23",
"flt_l_24:31": "Filters Left 24-31",
"flt_l_8:15": "Filters Left 8-15",

"flt_m_0:7": "Filters Mid 0-7",
"flt_m_16:23": "Filters Mid 16-23",
"flt_m_24:31": "Filters Mid 24-31",
"flt_m_8:15": "Filters Mid 8-15",

"flt_r_0:7": "Filters Right 0-7",
"flt_r_16:23": "Filters Right 16-23",
"flt_r_24:31": "Filters Right 24-31",
"flt_r_8:15": "Filters Right 8-15",

"flt_s_0:7": "Filters Side 0-7",
"flt_s_16:23": "Filters Side 16-23",
"flt_s_24:31": "Filters Side 24-31",
"flt_s_8:15": "Filters Side 8-15"
}
},
"metering": {
"fft": {
"speed": {
"slowest": "Slowest",
"slower": "Slower",
"slow": "Slow",
"normal": "Normal",
"fast": "Fast",
"faster": "Faster",
"fastest": "Fastest"
}
}
}
}

3 changes: 3 additions & 0 deletions res/main/i18n/ru/graph.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"future_filter_type_msg": "Дважды кликните для создания {@value} фильтра"
}
75 changes: 0 additions & 75 deletions res/main/presets/equalizer/parametric/lr/Drums - Kick.preset

This file was deleted.

This file was deleted.

Loading