New LV2 EQ Plugin avalible now!

Great work! However, I found I can’t change Q parameter with mouse in graphical presentation. Maybe dragging a point and scrolling mouse wheel could change Q parameter?

tomas: It works fine here so I guess it’s something that differs in our setup.

tomas vtipil: About the 50 Hz, Yes its true you can’t choose exactly 50. But what happens if you want 50,000001 Hz? Infinite resolution is not possible. The frequency resolution (300 points) is determined by the maximum Q value. I’m sure you can’t hear the diference between tune one filter to 50 or 50.4 Hz. Ear and filters aren’t as exact.
But if you really need more presition, you can change a #define int constants.h files and recompile it. The value is: NUM_POINTS 300 (change 300 to something greater, as 500) if you do this hack, the graph will has diferents values when startup and the saved presets will be incorrect, but resolution is increased. With this hack, the process to draw graph will be slowly and your drag experience in the graph will be less smooth.

Some points about GUI:

  • Double click on a parameter converts it in an enterbox to enter values with the keyboard. This function rounds the enter value to the nearest available value (tomas vtipil, maybe usefull for you )
  • To drag a circle in the graph you must select a filter type and enable it with the “ON” button.
  • If “ON” button is disabled, the band DSP is disabled and no CPU time is dedicated to this band. Save your CPU time, don’t enable bands that you don’t need.

Now I’m writing a manual to describe all functions for EQ10Q.

it still does not work here.
when starting ardour from a console, the error is still:

Unable to open UI library /usr/local/lib/lv2/paramEQ-Rafols.lv2/parameq_gui.so (/usr/local/lib/lv2/paramEQ-Rafols.lv2/parameq_gui.so: undefined symbol: _ZThn8_N6PlotMM4PlotD1Ev)

and the behavior still as i described before.
but i found out another thing:

typing ‘lv2_list’ the plugin is found as ‘http://sapistaplugin.com/eq/param/peaking’ but scaning for lv2’s with lv2rack, the plugin is not found.

thankfull for any idea or sugestion!

cheers,
doc

nowhiskey: run ’ ldd /usr/local/lib/lv2/paramEQ-Rafols.lv2/parameq_gui.so | grep plotmm ’ and see if it’s “not found”.

If that’s the case; run ’ pkg-config --libs-only-L plotmm ’ to see where the lib is installed, add the path (everything after -L) to /etc/ld.so.conf.d/local.conf and run ’ ldconfig ’

As for scanning with lv2rack, I find it but the scanning hangs on it. I don’t think lv2rack can handle it, possibly because it uses LV2 GUI extension

ghert: Its not possible to change the Q in the graph. To change the Q, just click and drag horizontaly on the Q button, or double click for enter value.

hallo peder, thanks for the assistance!

here it is:

nowhiskey@murija2:~$ ldd /usr/local/lib/lv2/paramEQ-Rafols.lv2/parameq_gui.so | grep plotmm
libplotmm.so.0 => /usr/lib/libplotmm.so.0 (0xb7a4f000)

nowhiskey@murija2:~$ pkg-config --libs-only-L plotmm
-L/usr//lib

the system here is properly set and i am compiling every audio app (and more) by myself…so no need to change anything in ld.so.conf.d.

perhaps i have some wrong version of some library or such…?

cheers,
doc

Ok, run ’ nm /usr/lib/libplotmm.so.0 | grep _ZTv0_n16_N6PlotMM4PlotD1Ev ’ to see if your lib actually has that symbol. If it doesn’t (and it’ shouldn’t or else you wouldn’t get the error) it’ll show nothing, otherwise it’ll say something like
“0002b340 T _ZThn8_N6PlotMM4PlotD1Ev”

Did you compile plotmm yourself and which version is it? Mine is 0.1.2.
I’d suggest you recompile/reinstall it.

works fine here. Needed to add libpstreams-dev and compile plotmm.
Thanks for the plugin. I think I could get the hang of it.

works well here, I had the same problem that tomas vtipil posted, but in my case I had a window title popping up on my task bar for it when double clicking on the plugin, the I remembered that I forgot to run ldconfig after I compiled the additional packages so I did and recompiled your plugin and now it works.

Thanks!

OK still having problems and I don’t know why. For the plugin dev, or anyone who can help debug, here is the bash log going up to the crash, and an ardour backtrace of the crash:

http://pastebin.com/m756ee1e7

Thanks, and I hope this is useful to someone…

HI,

wow, what a list of posts!

I didn’t know that I have to run ldconfig after compiling dependencies (maybe add that to the readme). That’s it, compiled & installed it again, now it works!

I agree that the gui is behaving a bit strange, especially when you want to move the dots. I also have to click them several times to be able to drag them.

Besides that, looks and sounds great so far! I only tried it with a lonely vocal track, but will try more soon. A surgical tool that my collection was lacking :slight_smile: Now give me a stereo version :slight_smile: :slight_smile:

@Ricardus:
Well, I fear that I can savely call a nearly 5 years old application “old and outdated”. The last new version appeared in April 2005. I like jamin, but you cannot honestly compare it to anything professional. It has only a 3-band compressor and the EQ is far less flexibel than sapista’s new one. I have no programming skills and am thankful for what the jamin devs have created, but I’m looking for something better.

Best
Benjamin

No luck on openSuse, no PlotMM in the repositories :frowning:

on openSuse you can still build the lib from source. Search google for the sourceforge page…

tbonedude: Be sure that you have all the dependencies at requiered versions? I sugest you to recompile PlotMM. I know that PlotMM is not a good option for EQ10Q. Lot of problems come from PlotMM. I will rewrite EQ10Q without PlotMM, with a new graph widget, this will be more easy.

@sapista

I was a bit surprised by the choice (plotmm). does not look like this lib is maintained or actively developed. Is there a way for you to use another lib ?

I have a couple of other things:

  • is possible to make the points dragable at all times ? (whether the band curve is ON or OFF)

  • why are some of the parameters disabled in some shaping presets ?

  • is it possible to implement Q changes by scroll-wheel action ? (I have a VSTi instrument with EQ curve manipulation as well, and it is very nice to have)

  • could we have an overall flat level adjustment ? I know it can be done by ardour’s fader but it would nice to provide here as well. You e.g. could lower the whole level by say -5dB and push up only one point from that flat bottom (quick way of working).
    (- as a corrolary, could we lock the whole curve shape and drag it up or down ?)

  • is it possible to display the current data on the frequency domain ? I mean, most LV2 plugins are showing overall levels (at least peak levels) coming in and going out of the plugin. But for an EQ plugin, it would be nice to show the levels over the freq. domain and see how adjusting the curve affect the data over that domain. A passthrough button that one could turn on and off would be cool in this context, so one could quickly see how things get modified when the freq. curve is applied.

Of course, one must hear the effect before anything, but sometimes, it is also nice to combine visuals. However, I don’t know what compromise you would have to make in terms of performance, CPU, etc.

On another discussion thread, someone was mentioning how obsolete jamin was. But the freq. visualization in realtime is really cool. You see how the data is affected right in front of your eyes when you play with the EQ curve (pencil tool). It would be nice if an LV2 EQ provided the same sort of visuals.

thorgal:

  • I spend some time searching a library for draw the curve. I tried diferent libraries and the easiest for include a graph widget in EQ10Q with gtkmm and C++ programming is PlotMM. I know, it isn’t a good choise. It is only a provisional solution. I plan write a new drawing widget to display the curve without PlotMM and increase efficiency.

  • Points draggable at all times: Yes its possible, but I don’t understand why you need drag a point if this is not activated. Please, explain me your idea.

  • Some parameters are disabled in some shaping presets because this presets don’t have this parameter. For exemple, a 2nd order HPF filter don’t have gain parameter. Or a 1st order HPF don’t have Q (consequence of transfer function).

  • Q changes by scroll-wheel action: Nice idea! I will implement this in the future.

  • Overall flat level adjustment: You can do it with in/out gain controls. I’m considering to include a graphic representation of this gain changes in the curve.

  • Display the current data on the frequency domain: Yes its possible and I have planed implement this feature in future versions using FFT libraries.

I hope I have answered all your questions. Otherwise, please tell me.

sounds great sapista, looking forward to seeing these features. Were it not for the lack of spare time, I would definitely help you on the coding. This kind of plugin was among one my pet projects but I can see you’re already way ahead of me :slight_smile:

About the ability to drag points at all times, it is not necessary. I just got a bit confused because sometimes I could do it, sometimes not. It may originate from the fact that switching shaping presets on the fly turns the band curve OFF even though it was originally ON (not sure about it though, I have to try it again).

I would also suggest to grey out the point marker when the band is OFF (or inactive) so that a quick glance at the curve shows what is active. But I have to use the plugin a bit longer to judge whether this is useful or not.

Man, this EQ is amazing. It is just the thing that was missing from ardour. Amazing.

@sapista: great plugin - took me a while to find all the necessary bits and pieces to get it to build etc, could I make a suggestion about FFT, I think its a great idea to put an FFT on the EQ display, but if you do, would you consider writing your own FFT algorithm as opposed to just linking to a library? E.g. I did this kind of display on an audio analyser (to test some of my plugins) - and rather than linking to a complex library like FFTW and all the extra dependency stuff that can cause, I just used a fairly standard FFT algorithm (only about a page of code) and just compiled it in. I just think its good to keep the number of external dependencies to a minimum - just a suggestion… btw, am I correct in thinking this plugin GUI will only work in ardour or more specifically only in GTK hosts?