Old 02-11-2017, 11:47 PM   #761
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by osxmidi View Post
From what I can make out, the WDL libswell can translate Reaper windows based calls to Osx and Linux Gtk/Gdk calls.
From what I understand, the WDL graphics API is not "Windows based" but just "Windows alike" and hence supposed to provide a common "language" for Reaper's and it's plugin's GUI constructors for whatever underlying OS.

I understand that this in Linux does not use Wine elements but is hand-crafted for Windows, OSX and Linux.

OTHO, I understand that VSTs are not (yet ? ) started in a way that they make use of this API, but more directly call OS features, which in Linux does not work "out of the box", but needs Wine and Carla.

-Michael
mschnell is offline  
Old 02-12-2017, 07:50 AM   #762
osxmidi
Human being with feelings
 
Join Date: Feb 2014
Posts: 620
Default

I finally got the Kontakt demo installed with winehq-devel 2.1

I had to get 64bit dlls from dll files

msvcp140.dll
concrt140.dll
api-ms-win-crt-time-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
ucrtbase.dll

and copy the dll's to the system32 directory and configure them to be native in winecfg to get the Kontakt standalone and the Kontakt 64bit vst working.

(I'm using Ubuntu Studio 16.04 btw)

The Kontakt wine howtos that are around on the net didn't work.


I could then load the Kontakt 64 bit vst on a Linux NATIVE Reaper track.





Last edited by osxmidi; 02-12-2017 at 09:00 AM.
osxmidi is offline  
Old 02-12-2017, 01:41 PM   #763
Finnish
Human being with feelings
 
Finnish's Avatar
 
Join Date: Jun 2006
Location: Finland, Kuopio
Posts: 911
Default

Whoa! Amazing stuff.. Keep up the good work
__________________
REGISTERED USER
My music, studio and bands
Finnish is offline  
Old 02-13-2017, 08:30 AM   #764
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 140
Default

Quote:
Originally Posted by osxmidi View Post
Vst wrappers w1.so to w10.so

w1.so will load a vst named 1.so

w2.so will load a vst named 2.so

etc etc up to 10.

So 10 varying vst's can be loaded into Reaper Linux with UI's depending on what vst's the user wants to use with a UI inside Reaper Linux.

The 1.so and 2.so etc files must be in /usr/lib/vst for the vst wrappers (wr1.so etc) to load them.

Just say I want to load drumsynth.so and Dexed.so into Linux Reaper with a UI, then I copy drumsynth.so to 1.so and I copy Dexed.so to 2.so and I load them by loading the w1.so and w2.so wrappers into Reaper tracks via the FX button.

Dexed http://distrho.sourceforge.net/ports

One problem I've come across is that the Linux lsp vst plugins clash with Reaper Linux's gtk3/gdk3 interface and so can't be used.

-------

u-he TripleCheese and TyrellN6

TripleCheese from https://www.kvraudio.com/forum/viewtopic.php?t=424953

TyrellN6 https://www.amazona.de/freeware-synth-tyrell-n6-v3-03/ http://linuxsynths.com/TyrellN6Patch.../tyrelln6.html https://www.u-he.com/cms/tyrelln6
Hi osxmidi, I was able to try your UI-wrapper plugins and they work like a charm!

I have a small question though:

If I'm not mistaken, there are 2 ways to use them.

1. Extract all wrapper plugins of wrvst.zip into /usr/lib/vst and rename original plugins which are currently in use to 1.so, 2.so ...

2. Use your provided wrapper plugins (TripleCheese, TyrellN6, Podolsky, DrumGizmo, Carla) which have a hardcoded path to the original plugins.

I hope I'm not mistaken but the former has the disadvantage that I need to rename plugins depending on which project I have opened and I have to recall which plugin was renamed to "w1", "w2" ...
Additionally there's a limit of 10 plugins (instances) only.

The latter has the advantage that I can duplicate as much wrapper-plugins as I want (I need 1 wrapper-plugin for every plugin instance in the current project) and I can name them how I want them to show up in the FX-browser, i.e. "UhePodolsky_7".

My Questions are now, how would I proceed if I would like to stick to method 2 but also use other plugins than those you provided? F.e. U-he's Zebralette.
I tried to change the path of the wrappers with a hex editor but failed miserably.
Would you consider to make the source open, along with some tiny help of how to build the *.so files for noobs?
Is there a simpler approach I missed?

Thanks again.

(Even if I don't use it personally, to see you get Kontakt running is really impressive)
Veto is offline  
Old 02-13-2017, 11:41 AM   #765
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 140
Default

Quote:
Originally Posted by TonE View Post
osxmidi, could you write a step by step installation guide, for beginner, if possible, thanks in advance. I can do the testing of this guide. I would follow stupidly this guide and see if I will reach the end point without any errors. ubuntu 16.04 lts here, no studio, no rt kernel, no wineasio.
You mean installing the wrapper plugins?

Maybe this will help:


Quote:
Originally Posted by osxmidi View Post
For reaper_529_developer_linux_x86_64.tar.xz and libSwell-x86_64-debian-stretch-gtk3.tar.xz http://landoleet.org/dev/

A u-he test using Podolski.

No guarantee on how it performs, there could be crashes or whatever but hopefully it might be ok.

I'll get around to some other plugins sometime later and do some generic loading versions that can just load whatever plugin anyone wants.


Install Podolski from https://www.kvraudio.com/forum/viewtopic.php?t=424953

unzip the pod.so.zip and copy the pod.so to a vst directory that Reaper can see


In Reaper Linux

Check "Default VST to generic UI
in
options preferences plug-ins vst

Uncheck get vst names/types when scanning, and then do a clear cache/re-scan

Open up a track and load the pod vst plugin

-------

The UI button controls the plugin window opening and closing and the Reapers default plugin window (with just parameter sliders and no UI) closes the plugin window when it's closed and then the tracks FX button opens it again.

.
.
.
for the pod.so file and more see here:
http://forum.cockos.com/showpost.php...&postcount=696
and here:
http://forum.cockos.com/showpost.php...&postcount=698

If you need help to install Reaper on linux (osxmidi is merely the author of the wrapper plugins), there is some great information hidden in this thread.

HTH
Veto is offline  
Old 02-13-2017, 09:10 PM   #766
osxmidi
Human being with feelings
 
Join Date: Feb 2014
Posts: 620
Default

Quote:
Originally Posted by Veto View Post
Hi osxmidi, I was able to try your UI-wrapper plugins and they work like a charm!

I have a small question though:

If I'm not mistaken, there are 2 ways to use them.

1. Extract all wrapper plugins of wrvst.zip into /usr/lib/vst and rename original plugins which are currently in use to 1.so, 2.so ...

2. Use your provided wrapper plugins (TripleCheese, TyrellN6, Podolsky, DrumGizmo, Carla) which have a hardcoded path to the original plugins.

I hope I'm not mistaken but the former has the disadvantage that I need to rename plugins depending on which project I have opened and I have to recall which plugin was renamed to "w1", "w2" ...
Additionally there's a limit of 10 plugins (instances) only.

The latter has the advantage that I can duplicate as much wrapper-plugins as I want (I need 1 wrapper-plugin for every plugin instance in the current project) and I can name them how I want them to show up in the FX-browser, i.e. "UhePodolsky_7".

My Questions are now, how would I proceed if I would like to stick to method 2 but also use other plugins than those you provided? F.e. U-he's Zebralette.
I tried to change the path of the wrappers with a hex editor but failed miserably.
Would you consider to make the source open, along with some tiny help of how to build the *.so files for noobs?
Is there a simpler approach I missed?

Thanks again.

(Even if I don't use it personally, to see you get Kontakt running is really impressive)
Thanks for the feedback.

Once you copy a vst so file to 1.so then you can rename it's wrapper loader (wr1.so) to anything you want so that it reflects whatever was copied to 1.so.

So if I copy 3BandEQ.so (original file) to 1.so then I can rename wr1.so to 3BandEQwr1.so and use 3BandEQwr1.so inside of Reaper which will then load the (original) 3BandEQ.so vst with a UI.

The u-he wrappers have their paths fixed to where u-he install them, which is in the (home) .u-he directory.

I'll release the source but I want to add a few more things to it (like a file loading dialog).

If someone wants more that 10 wrappers then I can upload them.

Last edited by osxmidi; 02-13-2017 at 10:19 PM.
osxmidi is offline  
Old 02-13-2017, 09:17 PM   #767
osxmidi
Human being with feelings
 
Join Date: Feb 2014
Posts: 620
Default

Quote:
Originally Posted by TonE View Post
osxmidi, could you write a step by step installation guide, for beginner, if possible, thanks in advance. I can do the testing of this guide. I would follow stupidly this guide and see if I will reach the end point without any errors. ubuntu 16.04 lts here, no studio, no rt kernel, no wineasio.
At the moment I've just released some test versions.

------

If the u-he plugins are installed, then they install to a fixed path and the wrappers just load the u-he vst's from that fixed path and enable the UI.

So the u-he wrappers get used inside of Reaper Linux and not the original u-he vst's.

If the original u-he vst's are used in Reaper, then they will have no UI.

The wrappers enable the UI and that's basically all that they do.

The u-he wrappers load the original u-he vst's and enable a UI, so the wrappers are the ones to use inside Reaper.

So, if I want Podolski with it's UI in Reaper then I load the Podolski wrapper (pod.so) in Reaper.

-------------

The wr1.so to wr10.so wrappers are wrappers that can load any (Linux) vst that someone copies to 1.so to 10.so.

So if I want to use say the 3BandEQ vst with it's UI in Reaper, then I copy the 3BandEQ.so to 1.so and then load wr1.so inside of Reaper.

If someone wants, then they can rename the wrapper to whatever best reflects what vst they copied to 1.so.

So if I copied 3BandEQ.so to 1.so then I can rename wr1.so to 3BandEQwr1.so (or whatever) and then use that in Reaper and then when I load 3BandEQwr1.so in Reaper, the original 3BandEQ.so vst (that was copied to 1.so) will appear with a UI.

-----------

I've made the /usr/lib/vst directory as being where the wr1.so to wr10.so wrappers have to be and where the associated 1.so to 10.so vst files have to be.

The wrappers are only for reaper_529_developer_linux_x86_64.tar.xz and libSwell-x86_64-debian-stretch-gtk3.tar.xz http://landoleet.org/dev/

and not for earlier Reaper Linux versions.

Reaper's UI button either opens or closes the plugin's UI.

To get the vst UI's coordinated with Reapers UI button then,

In Reaper Linux

Check "Default VST to generic UI

----------------

Also turn off get vst names when scanning.

In options preferences plug-ins vst

Uncheck get vst names/types when scanning, and then do a clear cache/re-scan

Open up a track and load the wrapper vst plugin

Last edited by osxmidi; 02-13-2017 at 09:59 PM.
osxmidi is offline  
Old 02-14-2017, 10:06 AM   #768
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 140
Default

Quote:
Originally Posted by osxmidi View Post
Thanks for the feedback.

Once you copy a vst so file to 1.so then you can rename it's wrapper loader (wr1.so) to anything you want so that it reflects whatever was copied to 1.so.

So if I copy 3BandEQ.so (original file) to 1.so then I can rename wr1.so to 3BandEQwr1.so and use 3BandEQwr1.so inside of Reaper which will then load the (original) 3BandEQ.so vst with a UI.

The u-he wrappers have their paths fixed to where u-he install them, which is in the (home) .u-he directory.

I'll release the source but I want to add a few more things to it (like a file loading dialog).

If someone wants more that 10 wrappers then I can upload them.
Ah I see, thank you.
I think at some point I would need more wrappers then, as I would prefer to use all my installed linux plugins (and up to 5 instances per project and plugin) without ever have to change the allocation of the wrappers.

I don't know if this is possible, probably not, but in an ideal world some kind of process would monitor all installed plugins, detect if they are accessed by reaper and if so, automatically provide a wrapper for them.
I'm sure you probably already considered some kind of automation, I'm just dreaming
Keep up the great work!

Last edited by Veto; 02-14-2017 at 10:13 AM.
Veto is offline  
Old 02-14-2017, 11:06 AM   #769
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by Veto View Post
automatically provide a wrapper for them.
Something like this should be called a bridge, like we already have in the Windows version of Reaper to run 32 Bit VSTs in a 64 bit system: the "Wrapper" is integrated in the host software and automatically installed/instanciated with any appropriate VST when loaded.

Supposedly this would not even need full Wine to be installed, but could be done using the (open source) Winelib to create the functionality.

-Michael

Last edited by mschnell; 02-14-2017 at 11:12 AM.
mschnell is offline  
Old 02-14-2017, 05:00 PM   #770
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 140
Default

Quote:
Originally Posted by mschnell View Post
Something like this should be called a bridge, like we already have in the Windows version of Reaper to run 32 Bit VSTs in a 64 bit system: the "Wrapper" is integrated in the host software and automatically installed/instanciated with any appropriate VST when loaded.

Supposedly this would not even need full Wine to be installed, but could be done using the (open source) Winelib to create the functionality.

-Michael
Sure built-in would be great, but I was discussing third-party (pure linux vst) workarounds above.
Veto is offline  
Old 02-14-2017, 11:13 PM   #771
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Obviously. But I doubt that "automating a workaround" is a decent way to go, if there is any other.

-Michael
mschnell is offline  
Old 02-15-2017, 04:45 AM   #772
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 140
Default

Quote:
Originally Posted by mschnell View Post
Obviously. But I doubt that "automating a workaround" is a decent way to go, if there is any other.

-Michael
Idk enabling UI capability of linux native plugins by the use of a wrapper (not a bridge) without worrying about much would be pretty damn high on my decency scale.

Should something not be attempted (vs. literally doing nothing since it can't be done by third-party) because maybe it could not be "decent" enough? That's insane.
I doubt there would be any live-configs/SWS if Jeffos/Tim would have thought the same way.

Last edited by Veto; 02-15-2017 at 04:50 AM.
Veto is offline  
Old 02-15-2017, 08:10 AM   #773
osxmidi
Human being with feelings
 
Join Date: Feb 2014
Posts: 620
Default

Wrappers 11 to 30.

A scanning program could scan for Linux vst's in a directory and then output wrappers for those vst's.
Attached Files
File Type: zip wr2.zip (138.3 KB, 202 views)

Last edited by osxmidi; 02-15-2017 at 08:58 AM.
osxmidi is offline  
Old 02-15-2017, 10:30 AM   #774
Drumfix
Human being with feelings
 
Join Date: Oct 2007
Posts: 43
Default

The other option is to let the wrapper search directories at library init time and expose itself as a shell plugin that provides all the detected plugins.
Drumfix is offline  
Old 02-16-2017, 09:01 AM   #775
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 140
Default

Quote:
Originally Posted by osxmidi View Post
Wrappers 11 to 30.
Thank you very much, they are working great!
I've tested them with U-he plugins, Dexed and TAL-plugins.

I'm having issues only with some of the TAL plugins though.

Here's is how to reproduce:

( 1. Move all wrapper plugins "wrX.so" to /usr/lib/vst/ )
2. Copy "TAL-Dub-3.so" to /usr/lib/vst/1.so
3. Copy "TAL-Vocoder-2.so" to /usr/lib/vst/2.so
4. In Reaper "Scan for new plugins"
5. Add Vst's "wr1" and "wr2" to Fx-chain
6. Open UI's of both plugins
7. Now repeatedly toggle between both opened FX's

I'm getting either tiny plugin UI's (some pixels wide) or complete black UI's on Ubuntu 14.04 (64bit).
I hope it's reproducible.

---------

Another thing I noticed, I'm not able (glitches and crashes) to instantiate more than 1 plugin of the same type in Reaper without creating a dedicated wrapper plugin.
Just wanted to make sure, is that a bug or feature ?

Last edited by Veto; 02-16-2017 at 09:16 AM.
Veto is offline  
Old 02-17-2017, 06:58 AM   #776
osxmidi
Human being with feelings
 
Join Date: Feb 2014
Posts: 620
Default

Quote:
Originally Posted by Veto View Post
Thank you very much, they are working great!
I've tested them with U-he plugins, Dexed and TAL-plugins.

I'm having issues only with some of the TAL plugins though.

Here's is how to reproduce:

( 1. Move all wrapper plugins "wrX.so" to /usr/lib/vst/ )
2. Copy "TAL-Dub-3.so" to /usr/lib/vst/1.so
3. Copy "TAL-Vocoder-2.so" to /usr/lib/vst/2.so
4. In Reaper "Scan for new plugins"
5. Add Vst's "wr1" and "wr2" to Fx-chain
6. Open UI's of both plugins
7. Now repeatedly toggle between both opened FX's

I'm getting either tiny plugin UI's (some pixels wide) or complete black UI's on Ubuntu 14.04 (64bit).
I hope it's reproducible.

---------

Another thing I noticed, I'm not able (glitches and crashes) to instantiate more than 1 plugin of the same type in Reaper without creating a dedicated wrapper plugin.
Just wanted to make sure, is that a bug or feature ?
I tested the TAL plugins on Ubuntu Studio 16.04 and they were ok.

Maybe it's a some sort of library problem with some of the TAL plugins, I don't know.

The more than 1 plugin instance is something I'll work on.
osxmidi is offline  
Old 02-17-2017, 11:00 AM   #777
nosucherror
Human being with feelings
 
nosucherror's Avatar
 
Join Date: Oct 2013
Location: Exeter, Perfidious Albion
Posts: 70
Default

Returning to the subject of VST developers and Linux it seems that OvertoneDSP (formerly LinuxDSP) are discontinuing Linux support. There's no mention of Linux on their site any more.
From a KVR forum:
"Unfortunately, the diverse (and sometime volatile) nature of distributions and / or some open source host applications, increasingly means that we are unable to guarantee the standard we wish to provide and that our linux users have come to expect. Increasingly we are finding valuable developer time and resources diverted to investigating / addressing issues which are the result of custom modifications / self-builds of host applications or other plug-ins etc.
This is a disappointment to us, and is to a large extent out of our control. As such, we are evaluating whether it will be the right course of action to develop future products compatible with desktop linux distributions."
https://www.kvraudio.com/forum/viewt...f=212&t=463856

I also fear that Bitwig may be in trouble looking at their latest pricing scheme for v2.
nosucherror is offline  
Old 02-18-2017, 05:48 AM   #778
osxmidi
Human being with feelings
 
Join Date: Feb 2014
Posts: 620
Default

Quote:
Originally Posted by Veto View Post
Thank you very much, they are working great!
I've tested them with U-he plugins, Dexed and TAL-plugins.

I'm having issues only with some of the TAL plugins though.

Here's is how to reproduce:

( 1. Move all wrapper plugins "wrX.so" to /usr/lib/vst/ )
2. Copy "TAL-Dub-3.so" to /usr/lib/vst/1.so
3. Copy "TAL-Vocoder-2.so" to /usr/lib/vst/2.so
4. In Reaper "Scan for new plugins"
5. Add Vst's "wr1" and "wr2" to Fx-chain
6. Open UI's of both plugins
7. Now repeatedly toggle between both opened FX's

I'm getting either tiny plugin UI's (some pixels wide) or complete black UI's on Ubuntu 14.04 (64bit).
I hope it's reproducible.

---------

Another thing I noticed, I'm not able (glitches and crashes) to instantiate more than 1 plugin of the same type in Reaper without creating a dedicated wrapper plugin.
Just wanted to make sure, is that a bug or feature ?

Seems like these sort of problems (wrapper instance crashes and window problems) might be caused by Gtk/Gdk 3 clashes with Gtk/Gdk 2.

Gtk/Gdk 3 doesn't get along with Gtk/Gdk 2.

Most vst plugins that use Gtk/Gdk seem to be using Gtk/Gdk 2 as far as I can work out.

I had 2 wrapper instances happening of the TAL Vocoder but then it did strange things with the UI coordination and then it crashed.

When it crashed some of the libraries it was using were Gtk/Gdk 2 libraries and Linux Reaper likes Gtk/Gdk 3 by default.

It seems like it's a Gtk/Gdk 3 Gtk/Gdk 2 mismatch that's creating instability with some plugins and there is not much that can be done except to try Linux Reaper with a Gtk/Gdk 2 compiled libswell.so.

Reaper Linux is using Gtk/Gdk 3 by default but it's libswell.so can be compiled for Gtk/Gdk 2 and maybe that's more compatible (see Drumfix's post above).

http://www.cockos.com/wdl/

https://github.com/justinfrankel/WDL

Last edited by osxmidi; 02-18-2017 at 06:03 AM.
osxmidi is offline  
Old 02-18-2017, 09:06 AM   #779
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 140
Default

Quote:
Originally Posted by osxmidi View Post
Seems like these sort of problems (wrapper instance crashes and window problems) might be caused by Gtk/Gdk 3 clashes with Gtk/Gdk 2.

Gtk/Gdk 3 doesn't get along with Gtk/Gdk 2.

Most vst plugins that use Gtk/Gdk seem to be using Gtk/Gdk 2 as far as I can work out.

I had 2 wrapper instances happening of the TAL Vocoder but then it did strange things with the UI coordination and then it crashed.

When it crashed some of the libraries it was using were Gtk/Gdk 2 libraries and Linux Reaper likes Gtk/Gdk 3 by default.

It seems like it's a Gtk/Gdk 3 Gtk/Gdk 2 mismatch that's creating instability with some plugins and there is not much that can be done except to try Linux Reaper with a Gtk/Gdk 2 compiled libswell.so.

Reaper Linux is using Gtk/Gdk 3 by default but it's libswell.so can be compiled for Gtk/Gdk 2 and maybe that's more compatible (see Drumfix's post above).

http://www.cockos.com/wdl/

https://github.com/justinfrankel/WDL
Thanks, I should have thought about Gtk version issues by myself after Drumfix mentioned it..

With Gtk 2 and plugins tested above I'm not getting any tiny plugin GUI's anymore and very sparse black GUI's, which is fixable if I reload the GUI again.

Quote:
Originally Posted by osxmidi View Post
The more than 1 plugin instance is something I'll work on.
Thank you for looking into it!
Veto is offline  
Old 02-18-2017, 12:34 PM   #780
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by nosucherror View Post
Returning to the subject of VST developers and Linux it seems that OvertoneDSP (formerly LinuxDSP) are discontinuing Linux support.
Same issue as with Linux native Reaper, just the other way round:

Too few Linux DAW users results in minimal support for Linux VSTs, minimal support for Linux VSTs results in limited usability of Linux DAWs and this obviously results in small Linux DAW user count.

This only way to break the vicious circle is Linux DAWs featuring an easy to use (i.e. built-in) bridge for Windows VSTs (plus means to support the Licensing schemes of commercial VST vendors such as NI).

-Michael
mschnell is offline  
Old 02-18-2017, 02:01 PM   #781
axel_ef
Human being with feelings
 
axel_ef's Avatar
 
Join Date: Jan 2007
Location: Erfurt
Posts: 787
Default

I love Linux.
Most of my computers run with Linux.
But Linux is not an OS for musicians.

I think we all know this for many years...
axel_ef is online now  
Old 02-18-2017, 02:42 PM   #782
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by axel_ef View Post
But Linux is not an OS for musicians.
I think we all know this for many years...
Nonetheless it's not necessary that it stays that way.

I vividly remembered a years-long discussion about Linux taking hold in the smartphone market. Very small percentage numbers were published by the main market research institutes. Everybody was frustrated. And now by far the most smartphones are Linux based.

It just needs a proper impulse...

-Michael
mschnell is offline  
Old 02-18-2017, 10:34 PM   #783
osxmidi
Human being with feelings
 
Join Date: Feb 2014
Posts: 620
Default

Making some progress on the Linux vst plugin that loads windows vst's.

Kontakt on a Reaper Linux track playing a midi file.

I'm using the BigMono drumkit in Kontakt and it's all using around 0.5% cpu.



Last edited by osxmidi; 02-19-2017 at 08:14 AM.
osxmidi is offline  
Old 02-18-2017, 11:10 PM   #784
Finnish
Human being with feelings
 
Finnish's Avatar
 
Join Date: Jun 2006
Location: Finland, Kuopio
Posts: 911
Default

How? When? This is getting really interesting..
__________________
REGISTERED USER
My music, studio and bands
Finnish is offline  
Old 02-19-2017, 12:24 AM   #785
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by osxmidi View Post
Kontakt on a Reaper Linux track playing a midi file.
Very heartily congrats !
Showing what is possible the "work around" way you are doing it, on the long run might trigger the development of a decent implementation of a windows VST bridge in Reaper Linux Native and hence bring it up to ubiquitous success.

How did you do the licensing for Kontakt and/or the library you use ?

Thanks a lot for your work,
-Michael

Last edited by mschnell; 02-19-2017 at 01:59 AM.
mschnell is offline  
Old 02-19-2017, 03:45 AM   #786
osxmidi
Human being with feelings
 
Join Date: Feb 2014
Posts: 620
Default

Quote:
Originally Posted by mschnell View Post
Very heartily congrats !
Showing what is possible the "work around" way you are doing it, on the long run might trigger the development of a decent implementation of a windows VST bridge in Reaper Linux Native and hence bring it up to ubiquitous success.

How did you do the licensing for Kontakt and/or the library you use ?

Thanks a lot for your work,
-Michael
It's just the Kontakt player from their website.

The advantage of a Linux vst that then loads a windows vst is that the windows vst is interfacing straight into the Linux Native Reaper track audio system via the Linux vst, so latencies should not be much of an issue.

LMMS has a similar windows vst loading capability.

------

Bridging between a Linux process and a Wine process is not that straight forward and easy.

The Windows vst needs to run in a Wine process.

So if a Linux process (such as Linux Native Reaper) wants to communicate with a windows vst then a Wine process needs to be started.

The Linux process needs to communicate with the Wine process and vice verser but one is running under Wine (the windows vst) and the other one isn't (Linux Native Reaper) so it basically comes down to communication between 2 different processes or IPC (Inter Process Communication) Client/Server.

It's different for a Windows process running under Wine such as Windows Reaper running on Linux using Wine, because it's all being run under a Wine process so Windows Reaper can then load Windows vst's under the same Wine process.

There was a FruityLoops wine package for OSX a few years ago (before their OSX port) and that was the Windows FruityLoops running under a Wine process on OSX and it's possible to run Windows Reaper on Linux (or even on OSX, some have tried it out) under a Wine process.

But, bridging between native Linux or native OSX processes and Wine processes running vst's is a different thing and it can be done but there are sometimes limitations involved.

I suppose something could be written mixing Linux calls with Wine calls which I think Winelib allows, but that's not much of a native app, it's basically a wine based app.

It would also mean writing new code and maintaining updates instead of just porting Reaper to Linux and using the WDL libswell and I wouldn't expect the Reaper devs to be that enthusiastic about it when Linux has such a small audio user base, but it might work but who is going to do it and then maintain it for very small payback.

The Reaper DAW has features that are useful on Linux and a Linux Native version should be able to get very low latencies which is very useful for straight out recording etc and those are some of the advantages of a Linux native version, to use a Linux app on Linux and not a wine based anything.

If someone wants to run Reaper like they do on Windows with all of the vst's, then they can run the Windows version under Wine on Linux.

Last edited by osxmidi; 02-19-2017 at 04:23 AM.
osxmidi is offline  
Old 02-19-2017, 04:41 AM   #787
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by osxmidi View Post
Bridging between a Linux process and a Wine process is not that straight forward and easy.

The Windows vst needs to run in a Wine process.
This is obvious.

I don't know what parts of Wine a dll with a GUI needs. Supposedly not everything, as the Muse Receptor is known to use homebrew software based on WineLib but does not run the full Wine product. In Receptor you can (or could) used the full featured Kontakt (and other NI-) products with appropriately licensed Instrument Libraries. This even had been advertised on the NI Website for some time.

Running a "Linux VST that loads a Windows VST" to me does not seem that much different from implementing a "Bridge" in the VST host. Similar as with a 32 Bit Bridge in a 64 Bit host (here we have JBridge as an external bridging tool, as well), a new "environment" needs to be constructed and all command and data streams need to be run through that path and be converted appropriately. I.e. the same is true for "Running a Linux VST that loads a Windows VST".

Regarding Wine on OSX: as OSX is based on BSD Unix and Linux is a sibling of Unix as well, I suppose the structural difference should be not that huge.

-Michael
mschnell is offline  
Old 02-19-2017, 05:48 AM   #788
nosucherror
Human being with feelings
 
nosucherror's Avatar
 
Join Date: Oct 2013
Location: Exeter, Perfidious Albion
Posts: 70
Default

I thought it was interesting that Waves SoundGrid runs on Linux. SoundGrid allows a DAW to process audio over ethernet on a separate server. From their site:
"Taking advantage of today’s extraordinary CPU power and the memory capabilities of Native processing, SoundGrid runs on standard CPUs under custom-optimized Linux OS, resulting in predictability, stability and low latency that were previously exclusive to dedicated DSP-based systems. Consequently, SoundGrid can run hundreds of compatible Waves and third-party plugins in real time, as well as extremely CPU-intensive plugins that are beyond the capabilities of DSP-based systems."
http://www.waves.com/soundgrid-systems

Personally I avoid Waves stuff but maybe a glimpse into the future of DSP?
nosucherror is offline  
Old 02-19-2017, 06:32 AM   #789
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Remoting part of a Reaper project would be extremely helpful in certain cases. Here recently a discussion had been started in the Feature Request forum.

Regarding Reaper, IMHO the best way to allow the users to easily manage this, would be an appropriate enhancement to the subproject feature of Reaper's (as proposed there).

Of course such remoting should be done in a cross OS way.

Thanks for pointing us to "SoundGrid on Linux".

-Michael
mschnell is offline  
Old 02-19-2017, 07:55 AM   #790
osxmidi
Human being with feelings
 
Join Date: Feb 2014
Posts: 620
Default

Quote:
Originally Posted by mschnell View Post
This is obvious.

I don't know what parts of Wine a dll with a GUI needs. Supposedly not everything, as the Muse Receptor is known to use homebrew software based on WineLib but does not run the full Wine product. In Receptor you can (or could) used the full featured Kontakt (and other NI-) products with appropriately licensed Instrument Libraries. This even had been advertised on the NI Website for some time.

Running a "Linux VST that loads a Windows VST" to me does not seem that much different from implementing a "Bridge" in the VST host. Similar as with a 32 Bit Bridge in a 64 Bit host (here we have JBridge as an external bridging tool, as well), a new "environment" needs to be constructed and all command and data streams need to be run through that path and be converted appropriately. I.e. the same is true for "Running a Linux VST that loads a Windows VST".

Regarding Wine on OSX: as OSX is based on BSD Unix and Linux is a sibling of Unix as well, I suppose the structural difference should be not that huge.

-Michael
The Muse Receptor seems to be a special case of wine (and some wine mods) and dedicated hardware https://linuxmusicians.com/viewtopic.php?t=9927

They are probably using one of the options I mentioned "I suppose something could be written mixing Linux calls with Wine calls which I think Winelib allows, but that's not much of a native app, it's basically a wine based app."

I can't see Reaper using the same sort of thing for a tiny Linux market, but who knows.

Personally I'd just use Windows (or OSX) if I wanted max vst choice and performance and it was important, like for studio recording or whatever.

Last edited by osxmidi; 02-19-2017 at 08:01 AM.
osxmidi is offline  
Old 02-19-2017, 08:07 AM   #791
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 140
Default

Quote:
Originally Posted by osxmidi View Post
Making some progress on the Linux vst plugin that loads windows vst's.

Kontakt on a Reaper Linux track playing a midi file.

I'm using the BigMono drumkit in Kontakt and it's all using around 2.5% cpu.



Wow, just wow.
Hats off to you my dear sir.
Veto is offline  
Old 02-19-2017, 08:22 AM   #792
osxmidi
Human being with feelings
 
Join Date: Feb 2014
Posts: 620
Default

Quote:
Originally Posted by Veto View Post
Wow, just wow.
Hats off to you my dear sir.
Thanks.

I might put up a test version if anyone is interested.

I'm still testing it out and trying to optimise it for as much speed and minimum latency and stability as possible.

At the moment I think it's responding pretty much just like a native Linux vst would.

Mixing something like Kontakt with Linux native vst's might be pretty useful.

It's not limited to Linux Reaper btw, it could also be used in Linux Tracktion or whatever.
osxmidi is offline  
Old 02-19-2017, 08:50 AM   #793
Drumfix
Human being with feelings
 
Join Date: Oct 2007
Posts: 43
Default

>>Of course such remoting should be done in a cross OS way.<<

Such remoting is possible using jack (OSX, Win, Linux) for years using netjack et al.
The simplest "remoting" for Win VST plugins though is the use of reaper under wine and connecting to native reaper through wineasio and jack.
Drumfix is offline  
Old 02-19-2017, 11:40 AM   #794
Nystagmus
Human being with feelings
 
Nystagmus's Avatar
 
Join Date: Oct 2013
Posts: 509
Default Linux VST wrapper

Quote:
Originally Posted by osxmidi View Post
I might put up a test version if anyone is interested.

I'm still testing it out and trying to optimise it for as much speed and minimum latency and stability as possible.

At the moment I think it's responding pretty much just like a native Linux vst would.
Mixing something like Kontakt with Linux native vst's might be pretty useful.
It's not limited to Linux Reaper btw, it could also be used in Linux Tracktion or whatever.
I am definately interested.
What you have accomplished is beautifully useful.
Please post up a test version and keep us updated.
Nystagmus is offline  
Old 02-19-2017, 01:41 PM   #795
Veto
Human being with feelings
 
Join Date: Aug 2010
Posts: 140
Default

Quote:
Originally Posted by osxmidi View Post
Thanks.

I might put up a test version if anyone is interested.

I'm still testing it out and trying to optimise it for as much speed and minimum latency and stability as possible.

At the moment I think it's responding pretty much just like a native Linux vst would.

Mixing something like Kontakt with Linux native vst's might be pretty useful.

It's not limited to Linux Reaper btw, it could also be used in Linux Tracktion or whatever.
I think there is definitely a strong interest in this community.
(Personally I'm not a Kontakt user, just admiring/wondering how you've been able to achieve what you did without wine/winelib)
Veto is offline  
Old 02-20-2017, 12:13 AM   #796
Finnish
Human being with feelings
 
Finnish's Avatar
 
Join Date: Jun 2006
Location: Finland, Kuopio
Posts: 911
Default

I need some freebies for Linux Reaper, less than 10 individual plugins. But I need those as many instances, is that hard to accomplish? Basically a few amp simps and some EQ/compressors..
__________________
REGISTERED USER
My music, studio and bands
Finnish is offline  
Old 02-20-2017, 08:20 AM   #797
Jack Winter
Human being with feelings
 
Jack Winter's Avatar
 
Join Date: Aug 2007
Location: Luxembourg/Spain
Posts: 1,922
Default

All this work to get a bridge going motivated me to start looking at swell again. According to Justin implementing SWELL_CreateXBridgeWindow(), ought to make native vst guis work, so I started implementing it, and then bothered Justin to fill in some of my blanks. The result is a somewhat limping implementation. Not pretty, but a first step. Anyone who wants to have a look at it, it's just been pushed to the swell repo. So just update your swell, run make and try it. Here it seems to display all native vsts I've tested, albeit with bugs

You are all cordially invited to hack on said function to make it work better..!
__________________
Reaper for Linux Documentation (WIP). Software: Archlinux/KDE, Fabfilter FX, Komplete 8, Nebula, Schwa/Stillwell, T-racks Max/Amplitube/SVX, etc. Gear: i7-2600k/4700HQ/16GB, RME Multiface/Babyface, Behringer X32, Genelec 8040, etc. :)
Jack Winter is offline  
Old 02-20-2017, 08:41 AM   #798
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,690
Default

Quote:
Originally Posted by Jack Winter View Post
According to Justin implementing SWELL_CreateXBridgeWindow(), ought to make native vst guis work, .... The result is a somewhat limping implementation. Not pretty, but a first step.
This is great news !
Thanks a lot for your work !

-Michael
mschnell is offline  
Old 02-20-2017, 09:47 AM   #799
cern.th.skei
Human being with feelings
 
cern.th.skei's Avatar
 
Join Date: Sep 2007
Location: trondheim, norway
Posts: 363
Default

Quote:
Originally Posted by Jack Winter View Post
All this work to get a bridge going motivated me to start looking at swell again.
awesome!
__________________
torhelgeskei.com
cern.th.skei is offline  
Old 02-21-2017, 12:03 AM   #800
osxmidi
Human being with feelings
 
Join Date: Feb 2014
Posts: 620
Default

Quote:
Originally Posted by Jack Winter View Post
All this work to get a bridge going motivated me to start looking at swell again. According to Justin implementing SWELL_CreateXBridgeWindow(), ought to make native vst guis work, so I started implementing it, and then bothered Justin to fill in some of my blanks. The result is a somewhat limping implementation. Not pretty, but a first step. Anyone who wants to have a look at it, it's just been pushed to the swell repo. So just update your swell, run make and try it. Here it seems to display all native vsts I've tested, albeit with bugs

You are all cordially invited to hack on said function to make it work better..!
I tried it out and it looks pretty good except for some window positioning problems.

GDK2 needs a patch in swell-wnd-generic.cpp

#if SWELL_TARGET_GDK == 2
*wref = (void *) GDK_WINDOW_XID(bs->w);
#else
*wref = (void *) gdk_x11_window_get_xid(bs->w);
#endif

I got undefined symbol gtk_init_check and changing the following lines in the makefile fixed it.


libSwell.so: $(OBJS)
$(CXX) -shared -o $@ $(CFLAGS) $(LFLAGS) $^ $(LINKEXTRA)
osxmidi is offline  
Closed Thread

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 03:37 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.