Simple linux VST with source code
-
- KVRAF
- 3948 posts since 8 Sep, 2003 from germany
Nope, don't have Linux installed here right now. I wanted to put it onto my workstation but couldn't risk any ongoing projects up to now (would want to change mainboard as well if I do so etc.). I'll just install Linux now on my media computer just to prove the concept, and it can remain there for a whilejorgen wrote:plastique, did you manage to compile on linux?
cheers
jorgen
I see no reason why it shouldn't compile though, if it works for you
- KVRAF
- 5913 posts since 17 Aug, 2004 from Berlin, Germany
May be the VSTGUI3 is some usable thing. It is free available and has support for Motif. So its not far away from xlib
But I have not idea if modifications are allowed? The VSTGUI is available free from sourceforge at http://sourceforge.net/projects/vstgui/
-
- KVRian
- 852 posts since 28 Oct, 2004
Alright, could compile the synth with Bloodshed Dev C++ 4.9.9.1 on my Win2k machine
Had to change:
into:
for ext to recognise it as a dll
Works though
Had to change:
Code: Select all
#ifdef __GNUC__
AEffect* main_plugin (audioMasterCallback audioMaster) asm ("main");
#define main main_plugin
#else
AEffect *main (audioMasterCallback audioMaster);
#endif
Code: Select all
#if __GNUC__ && (WIN32 || BEOS)
#define main main_plugin
extern "C" __declspec(dllexport) AEffect *main_plugin (audioMasterCallback audioMaster) asm("main");
#elif MACX
#define main main_macho
extern "C" AEffect *main_macho (audioMasterCallback audioMaster);
#else
AEffect *main (audioMasterCallback audioMaster);
#endif
Works though
-
- KVRAF
- 3948 posts since 8 Sep, 2003 from germany
Why exclude linux though and not go the whole way 
Does this seem right ?
Just from top of my head, gonna test once I got Linux installed
Code: Select all
#if __GNUC__ && (WIN32 || BEOS) // Windows or Beos
#define main main_plugin
extern "C" __declspec(dllexport) AEffect *main_plugin (audioMasterCallback audioMaster) asm("main");
#elif __GNUC__ && !(WIN32 || BEOS || MACX) // Linux ...
AEffect* main_plugin (audioMasterCallback audioMaster) asm ("main");
#define main main_plugin
#elif MACX // Mac OSX
#define main main_macho
extern "C" AEffect *main_macho (audioMasterCallback audioMaster);
#else // others
AEffect *main (audioMasterCallback audioMaster);
#endif
Just from top of my head, gonna test once I got Linux installed
-
- KVRian
- 1262 posts since 15 Feb, 2003 from Up the Pennine way
Jorgen, be careful in using the vst name.
VST is copy written and trademarked by Steinberg, they own the name "Virtual Studio Technology" so there can be no such thing as "Linux-vst's".
If you don't use the Steinberg sdk then the can be called something similar, the reason why there is now LV2 and a new logo for it.
The sooner you have a new name and logo for your api the better!
A name and logo comp......?
fake
VST is copy written and trademarked by Steinberg, they own the name "Virtual Studio Technology" so there can be no such thing as "Linux-vst's".
If you don't use the Steinberg sdk then the can be called something similar, the reason why there is now LV2 and a new logo for it.
The sooner you have a new name and logo for your api the better!
A name and logo comp......?
fake
You cant beat people up then have them say "I love you"
- KVRAF
- 8510 posts since 18 Apr, 2004
-
- KVRian
- 1262 posts since 15 Feb, 2003 from Up the Pennine way
Yes but I dont think jorgen is planning on any api that depends on the steinberg headers. If any synth created does not rely on steinberg then it can't be called a vst or linux-vst.farlukar wrote:fake wrote:VST is copy written and trademarked by Steinberg, they own the name "Virtual Studio Technology" so there can be no such thing as "Linux-vst's".
If you use the steinberg vst sdk, it's a vst instument/effect, right?
If it relies on steinberg then it will be closed source as far as linux is concerned and could not be freely distributed.
Its the old problem of using mixed code in binaries and the gpl.
fake
You cant beat people up then have them say "I love you"
- KVRAF
- 8510 posts since 18 Apr, 2004
-
- KVRAF
- 3948 posts since 8 Sep, 2003 from germany
In any case, what is missing is the obligatory "VST technology by Steinberg" message or something along those lines.
Name change of the website ? You must be kidding ...
And then, I don't know where you get the idea that there will be a new api
Name change of the website ? You must be kidding ...
And then, I don't know where you get the idea that there will be a new api
-
- KVRian
- 1262 posts since 15 Feb, 2003 from Up the Pennine way
Jorgen announced a while ago that he was developing a new api for linux and was developing "native linux synths", from what I understood it would not rely on any steinberg stuff. That way there would be no license problems and anything can then be redistributed easily within the linux rules.
I may have that bit wrong but the sample code posted does not rely on the steinberg sdk but is called a "simple linux vst"
What I'm saying is if it don't use the sdk it's not a vst and therefore cant have the name vst included.
Personally I cant wait to get away from the sdk restrictions and I hoped any dev would keep away from it as it causes major problems with licensing on linux. One of the reasons why ladspa was born and why a new version slv2 is planned, and as lump said the reason why ardour and lmms with vst support cannot be distributed.
The waters are dark and plentiful.
So, what say you jorgen?
edit:
Just read the bit about including the sdk to compile
...............
fake
I may have that bit wrong but the sample code posted does not rely on the steinberg sdk but is called a "simple linux vst"
What I'm saying is if it don't use the sdk it's not a vst and therefore cant have the name vst included.
Personally I cant wait to get away from the sdk restrictions and I hoped any dev would keep away from it as it causes major problems with licensing on linux. One of the reasons why ladspa was born and why a new version slv2 is planned, and as lump said the reason why ardour and lmms with vst support cannot be distributed.
The waters are dark and plentiful.
So, what say you jorgen?
edit:
Just read the bit about including the sdk to compile
fake
You cant beat people up then have them say "I love you"
-
- KVRAF
- 1974 posts since 21 Jun, 2002 from Earth
The sample code provided requires the vst sdk. Jorgen is just not allowed to redistribute the vst SDK itsef.. so you have to download it on your own from Steignberg. The point has been that the vst sdk will tend to compile fine on the linux platform, it's just that you have to rethink the GUI part (or that's been my understanding).fake wrote:I may have that bit wrong but the sample code posted does not rely on the steinberg sdk but is called a "simple linux vst"
edit: just read your edit..
ModuLR / Radio
-
- KVRAF
- Topic Starter
- 3475 posts since 6 Oct, 2001 from europe-norway-oslo
the source code comes in separate files
1) generic synth code, that can be made into a vst, ladspa, dssi or dxi plugin
2) an example on using the synth inside a VST pluing, this require that you get the sdk yourself.
It would be cool to add code for using the synth code inside other formats like ladspa or lv2 in the future (maybe when I get out of jail
)
cheers
jorgen
1) generic synth code, that can be made into a vst, ladspa, dssi or dxi plugin
2) an example on using the synth inside a VST pluing, this require that you get the sdk yourself.
It would be cool to add code for using the synth code inside other formats like ladspa or lv2 in the future (maybe when I get out of jail
cheers
jorgen
-
- KVRAF
- 3948 posts since 8 Sep, 2003 from germany
BTW, just compiled the two examples fine here (currently Fedora Core 6)
The first synth strangely shows some empty controllers when loaded into xt2 , the second synth shows the two existing ones correctly.
I had Knoppix installed before for a while (Debian), and I noticed the same freezing probs which was reported from others when dragging plugs into xt (KDE prob most likely ?) Also the plugin folder was not saved (not recognized ?) in the settings. Gnome seems to work fine though.
Not tried much else apart from installing a few linux variants and see which does what

