Hi Anchakor -- good to see you around, and is nice you are trying to
port some FX to LV2.
All I can see is your post of the make output, but no lv2port
directory -- or maybe the make file output is what you wanted us to
It is obvious what things are missing.
The Compressor will be an easy one to start with because it doesn't
depend on any other objects IIRC (except for Fpreset), so the only
things you are missing are some constants that we define in
cSAMPLE_RATE (This is a (float) 1/SAMPLE_RATE)
'pdata' is found in global.h, line 245:
extern int pdata;
You can get rid of this stuff related to Fpreset, and 'pdata'
because it's there for loading and saving custom FX's internal
presets. All the pre-defined presets don't depend on this. That is
very specific to the Rakarrack GUI, so you probably should implement
it differently in LV2.
So start small, just Compressor first. In your LV2 wrapper, you
should define the missing global variables or eliminate them and
replace them however it best suits your LV2 implementation.
Rakarrack is actually very modular. A pattern you will find
consistent to each effect is:
EffectName.h defines all of the parameters that are user-adjustable,
and EffectName.C constructs the effect and handles all the
configuration, then all you do is call EffectName::out(float
*efxoutl, float *efxoutr) every PERIOD and it does its thing. There
are some global variables and some other classes that are used by
the FX, but if you include those classes and either redefine, or
otherwise include the globals, it should be easy. I would not
recommend using global.h directly, but probably better to identify
needed global variables and definitions from compiler error messages
and add them to your own global.h until you stop getting errors.
The places you have problems will be with these:
Anything with an LFO uses the class EffectLFO.h and .C, so that
class needs to be included in your LV2 plugin.
Likewise, there is the AnalogFilter class, and the SVFilter, the
RBFilter, and delayline classes, which need to be included where
used (like Chorus, Flanger, Echo, and the different Delay things).
There is also the Waveshaper class for anything using distortion
(except Valve, but that is a copy of a LADSPA plugin, so you may not
be very interested in porting that to LV2, meaning it might be
easier to port that from LADSPA to LV2 than from Rakarrack to LV2).
In general, the API to each effect is consistent enough that on
wrapper should be able to handle all of them with minor
modifications, and including the proper headers and sources.
For example, Compband needs to have Compressor and AnalogFilter in
order to work.
I hope that is a start. I can help with the specifics of most all
the FX, so just keep the email thread going as you run into issues.
I'm not very familiar with LV2, so I can't help much on that end,
but I can help you understand what each parameter does and how each
effect should be treated by its host.
And, as would be obvious from the programmer's perspective, look at
the header for each effect you want to port and look at the #include
statements. If you see #include "EffectLFO.h" it will be pretty
plain that EffectLFO.h and EffectLFO.C should be in your compiler's
Again, if you can port Compressor.C, that is a good first step.
Then if from that experience you can get Compband to port
successfully, then you certainly understand the pattern and you can
probably port anything after that.
On 09/12/2011 05:51 AM, Jiří Procházka wrote:
I am trying to port some effects as lv2 plugins,
unfortunatly I have quite some trouble, because rakarrack code is not
Can anyone help me how should I approach it?
I have a wrapper code in src/lv2port directory where I got my makefile,
well see for your self: http://codepad.org/OX8cDEsJ
Also it seems rakarrack is gplv2 licensed and I want to use some gplv3
stuff... would it be possible to double license it either in gplv2+ or
glpv3 or any other gplv3 compatible license?
Jiri (Anchakor on irc, do you have a channel?)
Doing More with Less: The Next Generation Virtual Desktop
What are the key obstacles that have prevented many mid-market businesses
from deploying virtual desktops? How do next-generation virtual desktops
provide companies an easier-to-deploy, easier-to-manage and more affordable
virtual desktop model.http://www.accelacomm.com/jaw/sfnl/114/51426474/
Rakarrack-users mailing list