You are not logged in.
Hi all,
I got stuck compiling a VST plugin (using Steinbegrs latest 2.4 SDK from their website) on linux.
my build commnad is
g++ -o ./bin/jvstwrapper.so -shared -O0 -g -fPIC -I./src/src/public.sdk/vst2.x -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux src/src/jVSTwRapperMAIN.cpp
but gcc returns wih:
src/src/public.sdk/vst2.x/../../pluginterfaces/vst2.x/aeffect.h:125: error: expected `)' before ‘*’ token
src/src/public.sdk/vst2.x/../../pluginterfaces/vst2.x/aeffect.h:126: error: expected `)' before ‘*’ token
src/src/public.sdk/vst2.x/../../pluginterfaces/vst2.x/aeffect.h:127: error: expected `)' before ‘*’ token
...
The corresponding line in aeffect.h is:
typedef VstIntPtr (VSTCALLBACK *audioMasterCallback) (AEffect* effect, VstInt32 opcode, VstInt32 index, VstIntPtr value, void* ptr, float opt);
Is there a gcc option that im missing? I had a look everywhere on the net, but all examples use that syntax for defining callbacks, seems totally fine to me.
Since some of you already compiled VSTs on Linux, maybe you had that error before. How did you solve it?
daniel.
Offline
Hi daniel,
i think that vstsdk2.4 needs some tweaking to make it compile under linux: i suggest you to use 2.3 instead, that needs no code changes at all.
Anyway the problem could be the #ifdefs on top of aeffect.h:
since people at steinb0rg doesn't take care of linux at all on those defines
i think the problem could be the VSTCALLBACK token, which is not defined empty as it should (#define VSTCALLBACK), but maybe i can be wrong.
Let me do some tests and then i'll be able to tell you the truth !
Offline
great, a simple #define VSTCALLBACK in aeffect.h did the trick.
thanks a lot!
daniel
Offline
Yeah, i supposed was something like that... i'm happy you could continue compiling plugins ![]()
ah, if you publish something... feel free to post your releases here!
Jucetice will be proud to test new plugins ! eheh
Offline
kRAkEn/gORe wrote:
ah, if you publish something... feel free to post your releases here!
Jucetice will be proud to test new plugins ! eheh
sure, ill get back to you as soon as I got my stuff to run. its a port of jVSTwRapper to Linux, maybe you know the project already: http://jvstwrapper.sf.net
cheers,
daniel.
Offline
daniel309 wrote:
sure, ill get back to you as soon as I got my stuff to run. its a port of jVSTwRapper to Linux, maybe you know the project already: http://jvstwrapper.sf.net
yeah i know that project, very interesting (even i'm not that fun of Java for GUI projects, but that's my idea). are you just porting it or you are also its author ?
Offline
well, I am the author ![]()
hope that I have the linux version ready soon (compiles already, but somehow isnt loaded by neither: Jost or energyXT).
btw: The java gui stuff may be a nice solution for crossplatform plug guis. somehow in competition to your linux port of vstgui ![]()
Ill get back to you when I finally get it to work. If not, ill again desperately ask for linux vst consulting...
cheers,
daniel.
Last edited by daniel309 (2007-03-26 00:31:03)
Offline
well, I am the author
nice then... ![]()
somehow in competition to your linux port of vstgui wink
ehe i'm not that fan of vstgui itself, that was just a try to let people recompile windows or mac vst on linux. i'm happy if you'll compete with it !!!
Actually i'm not keeping vstgui port very up to date, but i will do at some point.
At the moment i'm more concetrated on making JUCE framework 101% compatible with linux VST (it is but need little refinements here and there)...
regards
Offline
daniel309 wrote:
... a simple #define VSTCALLBACK in aeffect.h did the trick.
Nice to see the vstwrapper project is moving along. Be sure to notify Steinberg that you've changed their code, they'll want to know about it.
Offline
i think steinberg don't support linux at all. newer versions of vstgui have the old motif part leaved out, and all the vstsdk headers doesn't even take care of any linux build. i don't think they are insterested too much in knowing this... but i hope i'm totally wrong !
Offline
kRAkEn/gORe wrote:
i think steinberg don't support linux at all. newer versions of vstgui have the old motif part leaved out, and all the vstsdk headers doesn't even take care of any linux build. i don't think they are insterested too much in knowing this... but i hope i'm totally wrong !
[Beware, disjointed ramblings follow!]
My comment was a bit of bad joke, I'm afraid. Csound developer Michael Gogins stated that he made several attempts at contacting someone at Steinberg re: license changes, because his CsoundVST code used (and altered) the VST SDK headers. He got no response at all. Ico Bukvic at linuxaudio.org has been trying to do something in that direction too but he also got no response from Steinberg.
I know that altering Steinberg's code is expressly forbidden by its license. Under any other circumstances I'd avoid this project like the plague *but* I believe that VST support is crucial to attracting more musicians and audio people to Linux, and there seems no other project that might convince Steinberg of the need to change their license terms. At this point I feel that presenting the company with a 'fait accompli' could make them see that it's to their benefit if the VST API is acceptably supported by Linux, and Lucio's project is the only one headed in that direction.
Btw, do not think that I'm singling out JOST. The FST project also requires alteration to come of the SDK code, and it's just as much at risk as JOST.
At some point the license issues will need to be seriously addressed. Meanwhile I hope that the JOST project continues to develop and that more VST plugins get ported. The necessary rewrites are unfortunate, and of course the current licensing forbids redistribution, but as Lucio claims, the project is in alpha-stage. When it hits beta it may attract more attention, including possibly unwelcome attention (from Steinberg and its new corporate masters).
Also btw: Don't think that because your project is a personal endeavor that you're beyond the reach of Steinberg's legal department. Some years ago a fellow released a beautiful emulation of ReBirth for Linux. He was contacted by Propellerheads and was forced to discontinue his project. So, it happens.
From our point of view we find it hard to imagine why a company would *not* want its products to be compatible with Linux. But from the POV of some of the major commercial music software companies perhaps Linux is a very unwelcome presence, and the availability of powerful libre audio software means less market share for them. Also, there's no ad revenue from Linux audio software, but there's plenty from the commercial entities, and they're the ones whose ads fill the pages of Sound On Sound, Keyboard, Electronic Musician, etc. Little wonder that there's little or no coverage of the Linux audio world in those journals.
All of which is to say that it's going to be an uphill battle in every respect. Welcome to the struggle. ![]()
Offline
My comment was a bit of bad joke, I'm afraid. Csound developer Michael Gogins stated that he made several attempts at contacting someone at Steinberg re: license changes, because his CsoundVST code used (and altered) the VST SDK headers. He got no response at all. Ico Bukvic at linuxaudio.org has been trying to do something in that direction too but he also got no response from Steinberg.
yeah you right, is like speaking to frozen walls.
Btw, do not think that I'm singling out JOST. The FST project also requires alteration to come of the SDK code, and it's just as much at risk as JOST.
at the moment JOST doesn't need any changes to the VSTSDK 2.3 . the problem is with 2.4, which i stated that a linux build haven't been done. but actually i don't need 2.4.
At some point the license issues will need to be seriously addressed.
yeah i think so... but what to do with people that don't even respond to emails ?
Also btw: Don't think that because your project is a personal endeavor that you're beyond the reach of Steinberg's legal department. Some years ago a fellow released a beautiful emulation of ReBirth for Linux. He was contacted by Propellerheads and was forced to discontinue his project. So, it happens.
i'm not emulating anything at all. i'm just writing a vst host. which is legal, cause i have accepted steinberg license. the only problem is redistributing its sources.
if someone @ steinberg will tell me to keep out my projects, i'll struggle to make Psycle, hermann's VstHost and any other open source vst hosts to retire its source code from the public.
All of which is to say that it's going to be an uphill battle in every respect. Welcome to the struggle.
![]()
Offline
kRAkEn/gORe wrote:
Hi daniel,
i think that vstsdk2.4 needs some tweaking to make it compile under linux: i suggest you to use 2.3 instead, that needs no code changes at all.
Anyway the problem could be the #ifdefs on top of aeffect.h:
daniel309 wrote:
a simple #define VSTCALLBACK in aeffect.h did the trick.
This is an old thread, but:
Yes, the problem is that aeffect.h defines VSTCALLBACK to __cdecl and we don't want that on Linux.
Instead of editing aeffect.h (and thereby violating the Steinberg License), I just do like this before including it:
#define __cdecl #include "path/to/vstsdk2.4/whatever-vst-headers.h"
It works (at least I just cleanly compiled the sample again.cpp), and I don't have to violate the license. It also makes it easier for other people who want to compile the source with their own copy of the 2.4 headers.
YMMV, please let me know if you see any problems with this approach!
Offline
How did you compile again?
Offline
Paradox Uncreated wrote:
How did you compile again?
With this Makefile (you have to adjust VST_PATH):
VST_PATH = /home/johan/projects/VST/vstsdk2.4
all: objects
g++ -o again_vst.so -shared -fPIC -O0 -I$(VST_PATH) *.o
objects:
g++ -c -O0 -I$(VST_PATH) -o aeff.o aeff.cpp
g++ -c -O0 -I$(VST_PATH) -D__cdecl="" -o again.o again.cppand this aeff.cpp:
#define __cdecl #include "../../../../source/vst2.x/audioeffect.cpp" #include "../../../../source/vst2.x/audioeffectx.cpp" #include "../../../../source/vst2.x/vstplugmain.cpp"
Offline
I am sorry, I am new to linux. What do you mean?
Offline
Paradox Uncreated wrote:
I am sorry, I am new to linux. What do you mean?
Please be more specific. You do know what a Makefile is? Please explain what you're doing and what the trouble is.
Offline
I know there is a make command, and a makefile, and I have installed a couple of things from source. But I do not know (yet) how they work. Could you just give the description, from, after extracting vsdksdk 2.4 (or 3), consolewise.
I will put the information up at my projectpage on sourceforge too, as installation instructions.
Last edited by Paradox Uncreated (2010-02-14 11:10:26)
Offline
To succeed with your project, you need to read up on the standard GNU/Linux build system. Basic knowledge about make and gcc is essential. Use Google as a starting point. Maybe look here: http://www.linuxquestions.org/linux/ans … _on_Linux.
If you look carefully at my previous post, I think you'll understand. I posted the Makefile. In it, you have to adjust the VST_PATH to where you unpacked the sdk 2.4. Looking in the Makefile, you also notice that aeff.cpp is needed. I posted that as well. So all you have to do is put the Makefile togeather with again.cpp/h and aeff.cpp and type "make". If that fails, the output from make will give you hints as to what you might have missed (if VST_PATH is wrong etc).
Try it. If you really get stuck, post the error messages back here and you'll get help.
Offline
It's done, ported to LADSPA. Please check out the project page, if you are interested. https://sourceforge.net/projects/pxu/
Last edited by Paradox Uncreated (2010-02-14 21:45:37)
Offline