Win-to-OSX VST wrapper/adapter

DSP, Plug-in and Host development discussion.
dnbhallifax
KVRist
37 posts since 14 Jan, 2013 from Boston MA

Post Mon Jan 14, 2013 4:12 pm

Thanks for getting back Dewdman42.

I know how to run the installer in the environment. But I don't know how to copy the files into the resources folder inside wacvst.

Should I use the installer to install directly into the resources folder?
Or should I install into C/Program files ....?
If so, then how would I collect the dll and necessary files to copy to the resources folder?

I really hate to be such a newb, so thanks again.

Dewdman42
KVRian
1499 posts since 14 Mar, 2006

Post Mon Jan 14, 2013 4:39 pm

I would recommend that you run the installer normally. That will copy stuff into wherever the the plugin needs things to be normally, data dirs, etc.. Then copy just the VST into your wacvst resources folder. When the vst is running, it should check C:\... paths for those other various things where it expects to find them.

That being said, if that doesn't work, then perhaps the installer is copying things into the same dir as where the VST itself is. If that turns out to be the case, then try copying those things also into the wacvst resources folder and try it again.

I'm just guessing here..

dnbhallifax
KVRist
37 posts since 14 Jan, 2013 from Boston MA

Post Mon Jan 14, 2013 11:03 pm

Thanks for the insight.

I've never been great at programming (of the coded variety that is lol...) so it's a little hard for me to get my head around this...

Anyway, I'll report back, hopefully with some progress...

Cheers

dnbhallifax
KVRist
37 posts since 14 Jan, 2013 from Boston MA

Post Wed Jan 16, 2013 11:36 pm

Holy Shizz !

Success! (Somewhat...)

Got all my TC Native Plugins working in Live 8. They work great in real time, multiple instances not a problem... I was even able to rename them with the PList so they show up with the correct name in the VST browser.

The only bummer is that the projects won't re-open AGGGHH !!
A few of them will open back up, but almost all of them give me a beach ball when re-opening :/

I suppose I can destructively add them in my wave editor, but ideally it'd be nice to have them as inserts... Still pretty cool...

Thanks again, and thanks to everyone who took the time to post all the help and tips...

kennylavish
KVRer
1 posts since 7 Feb, 2013 from northwestern

Post Thu Feb 07, 2013 12:09 pm

AUTO-ADMIN: Non-MP3, WAV, OGG, SoundCloud, YouTube, Vimeo, Twitter and Facebook links in this post have been protected automatically. Once the member reaches 5 posts the links will function as normal.
I'm new to the whole idea of trying to use VST plugins in OS X. I haven't had a reason to want to until I recently learned about the SQ8L plugin model of Ensoniq's classic SQ80 synthesizer.

SQ8L is a great plugin for a classic synth, but it's only for windows vst! Ahhhhggg!

Well I just figured out a way to play and record the SQ8L plugin in Mac OS X through Ableton Live 8 using VFX and a little app called XVX Digidesign Hardware Emulator.

It's of course not as easy as having a native os x plugin to insert but this way at least the midi and audio can be routed to record SQ8L tracks very easily in Ableton Live with great quality.

If you'd like detailed instructions and the files needed to do it, download them here:

https://www.dropbox.com/s/l4ds8z7melb9s ... in_OSX.zip (https://www.dropbox.com/s/l4ds8z7melb9sqk/SQ8L_in_OSX.zip)


LONG LIVE ENSONIQ


-kenny

Calum
KVRist
154 posts since 3 May, 2003

Post Sat Feb 23, 2013 3:51 pm

dnbhallifax wrote:I DID manage to get wacvst working (and tested) in Live 8 aok. I'm running SL 10.6.8 on a macbook pro…
I also recently got this working on SL 10.6.8 using the instructions on page 6 of this thread but I am finding that any wacvst wrapped plugin I have loaded, works for anything up to a couple of minutes in the hosts I have tried and then crashes the host.

Would you be willing to share how you got this working?

User avatar
Lady J
KVRAF
1818 posts since 5 Apr, 2002 from Seattle, WA, USA

Post Wed Mar 27, 2013 10:40 am

To those of you who have wacvst working on 10.6.8: What did you do to get it working? (Assuming it didn't working right away). Perhaps a step by step guide similar to the one one page 6 of this thread would be useful?

macunix
KVRer
6 posts since 6 Aug, 2013

Post Tue Aug 06, 2013 12:58 am

An easier way of enabling Windows VST's using a prebuilt Wine version on Snow Leopard (probably Lion and ML as well), without having to build Wine from source code

Tested on Snow Leopard 10.6.8 using XQuartz 2.7.4 and Reaper.

Windows VST plugins need Wine on Unix systems and Wine needs X11 or XQuartz.

Windows VST Plugins can be loaded on Unix systems such as Linux by using Wine and dssi-vst or other ones like fst.

Basically wacvst uses dssi-vst and loads the Windows VST Plugin using Wine and then makes the Windows VST Plugin look like a Mac VST Plugin to Apps such as Reaper.

1: Download XQuartz 2.7.4 http://xquartz.macosforge.org/landing/

2: Download SM Pro Audio's VFX for Mac. VFX has a prebuilt version of wine contained in it. http://www.smproaudio.com/index.php/en/ ... ds#mac-osx

3: Install XQuartz and install VFX into the Applications folder.

4: Wine can be built from scratch or a prebuilt Wine can be used and the VFX inbuilt version of Wine can be used but the library path has to be reset and this can be done in a script.

Open up a text editor and paste this

#!/bin/sh
export WINEPREFIX="$HOME/Music/VFX Wine VM.vfxwinevm"
export FONTCONFIG_FILE="/Applications/VFX.app/Contents/etc/fonts/fonts.conf"
export DYLD_FALLBACK_LIBRARY_PATH="/Applications/VFX.app/Contents/lib:/lib:/usr/lib"
export PATH="/Applications/VFX.app/Contents/bin:$PATH"
exec /Applications/VFX.app/Contents/bin/wine $@


btw the above fo nts.conf should have no space between the o and the n but this forum puts a space in there (formatting?) so that's how it comes out in the post.


5: Save file as wine2

6: Move wine2 to /Applications/VFX/Contents/bin

7: Open up a terminal and set the wine2 file to be executable by entering

sudo chmod +x /Applications/VFX/Contents/bin/wine2

8: move wacvst.vst to the /Library/Audio/Plug-Ins/VST folder.

9: Edit wacvst.vst/Contents/Resources/config.plist and change the wine-path entry to

<key>wine-path</key>
<string>/Applications/VFX.app/Contents/bin/wine2</string>

10: Copy your vst.dll to wacvst.vst/Contents/Resources

11: Edit wacvst.vst/Contents/Resources/config.plist and change the plugin-name entry to reflect the name of the Windows VST dll file without the .dll extension (ie Plugin.dll would be entered as Plugin)

12: Start XQuartz and then start Reaper and hopefully Reaper will list the plugin as a VST that can be chosen (might need a plugin rescan).

Notes:

A lot of VST's do work but some don't.

So far I've successfully had Windows Guitar Sim and Effect vst's and Synth and Drum vsti's working on OSX with wacvst.

Reaper and Mulab may need higher latency settings like 1024 or 2048 especially with wacvst Windows VSTi instruments like drums and synths otherwise there maybe lock ups, but it depends on the hardware that is used.

Reaper latency can be set in audio device preferences request block size.

Mulab can use JackOSX and it can set the latency.

Mulab needs to see wacvst.vst as a package and needs a PkgInfo file containing BNDL???? inserted into the wacvst.vst Contents folder.
The easiest thing to do is to just take a PkgInfo file from an existing MacVST package file like the bs-0 mac vst plugin file by selecting show package contents.

Some VST's need additional Windows dll's installed into the /Users/(username)/Music/VFX Wine VM.vfxwinevm/drive_c/windows/system32 directory for VFX Wine or the /Users/(username)/.wine/drive_c/windows/system32 directory for regular Wine.

VFX can be used to test if the VST plugin is probably going to work in other Apps. (File menu "Import VST Plugin").

Installing multiple VST's can be done by duplicating the wacvst.vst folder and renaming it (ie rename to wacvst2.vst and make sure to keep the .vst extension).

Then add the VST Plugin dll file and edit the wine-path and plugin-name as above but the uniqueID entry also has to be changed to another number that is not the same as the ones contained in other pre existing wacvst folders in the /Library/Audio/Plug-Ins/VST folder.

Also, closing a VST window by clicking on the red control close window button might cause problems when the VST window is reopened, so just avoid doing it.

There are also other prebuilt Wine packages that work such as wine-devel-1.3.26.dmg from http://forums.anarchy-online.com/showth ... p?t=593699

In this case, the wine-path would be altered to where Wine gets installed ie

<key>wine-path</key>
<string>/opt/local/bin/wine</string>

and there is no need for the wine2 script file as that's only used with VFX's inbuilt Wine to set the library Path for VFX's inbuilt version of Wine.

Also, this is pretty interesting

http://www.youtube.com/watch?v=0iKWPxYk6SM
Last edited by macunix on Mon Aug 19, 2013 12:23 am, edited 7 times in total.

griels
jaaathmaster
2690 posts since 1 Jun, 2001 from Marlow, S. Bucks, UK

Post Sun Aug 18, 2013 3:46 am

macunix wrote:An easier way of enabling Windows VST's using a prebuilt Wine version on Snow Leopard (probably Lion and ML as well), without having to build Wine from source code

Tested on Snow Leopard 10.6.8 using XQuartz 2.7.4 and Reaper.

Windows VST plugins need Wine on Unix systems and Wine needs X11 or XQuartz.

Windows VST Plugins can be loaded on Unix systems such as Linux by using Wine and dssi-vst or other ones like fst.

Basically wacvst uses dssi-vst and loads the Windows VST Plugin using Wine and then makes the Windows VST Plugin look like a Mac VST Plugin to Apps such as Reaper.

1: Download XQuartz 2.7.4 http://xquartz.macosforge.org/landing/

2: Download SM Pro Audio's VFX for Mac. VFX has a prebuilt version of wine contained in it. http://www.smproaudio.com/index.php/en/ ... ds#mac-osx

3: Install XQuartz and install VFX into the Applications folder.

4: Wine can be built from scratch or a prebuilt Wine can be used and the VFX inbuilt version of Wine can be used but the library path has to be reset and this can be done in a script.

Open up a text editor and paste this

#!/bin/sh
export DYLD_FALLBACK_LIBRARY_PATH="/Applications/VFX.app/Contents/lib:/lib:/usr/lib"
exec /Applications/VFX.app/Contents/bin/wine $@

5: Save file as wine2

6: Move wine2 to /Applications/VFX/Contents/bin

7: Open up a terminal and set the wine2 file to be executable by entering

sudo chmod +x /Applications/VFX/Contents/bin/wine2

8: move wacvst.vst to the /Library/Audio/Plug-Ins/VST folder.

9: Edit wacvst.vst/Contents/Resources/config.plist and change the wine-path entry to

<key>wine-path</key>
<string>/Applications/VFX.app/Contents/bin/wine2</string>

10: Copy your vst.dll to wacvst.vst/Contents/Resources

11: Edit wacvst.vst/Contents/Resources/config.plist and change the plugin-name entry to reflect the name of the Windows VST dll file without the .dll extension (ie Plugin.dll would be entered as Plugin)

12: Start XQuartz and then start Reaper and hopefully Reaper will list the plugin as a VST that can be chosen (might need a plugin rescan).

Notes:

A lot of VST's do work but some don't.

So far I've successfully had Windows Guitar Sim and Effect vst's and Synth and Drum vsti's working on OSX with wacvst.

Reaper and Mulab may need higher latency settings like 1024 or 2048 especially with wacvst Windows VSTi instruments like drums and synths otherwise there maybe lock ups, but it depends on the hardware that is used.

Reaper latency can be set in audio device preferences request block size.

Mulab can use JackOSX and it can set the latency.

Mulab needs to see wacvst.vst as a package and needs a PkgInfo file containing BNDL???? inserted into the wacvst.vst Contents folder.
The easiest thing to do is to just take a PkgInfo file from an existing MacVST package file like the bs-0 mac vst plugin file by selecting show package contents.

Some VST's need additional Windows dll's installed into the /Users/(username)/Music/VFX Wine VM.vfxwinevm/drive_c/windows/system32 directory for VFX Wine or the /Users/(username)/.wine/drive_c/windows/system32 directory for regular Wine.

VFX can be used to test if the VST plugin is probably going to work in other Apps. (File menu "Import VST Plugin").

Installing multiple VST's can be done by duplicating the wacvst.vst folder and renaming it (ie rename to wacvst2.vst and make sure to keep the .vst extension).

Then add the VST Plugin dll file and edit the wine-path and plugin-name as above but the uniqueID entry also has to be changed to another number that is not the same as the ones contained in other pre existing wacvst folders in the /Library/Audio/Plug-Ins/VST folder.

Also, closing a VST window by clicking on the red control close window button might cause problems when the VST window is reopened, so just avoid doing it.

There are also other prebuilt Wine packages that work such as wine-devel-1.3.26.dmg from http://forums.anarchy-online.com/showth ... p?t=593699

In this case, the wine-path would be altered to where Wine gets installed ie

<key>wine-path</key>
<string>/opt/local/bin/wine</string>

and there is no need for the wine2 script file as that's only used with VFX's inbuilt Wine to set the library Path for VFX's inbuilt version of Wine.

Also, this is pretty interesting

http://www.youtube.com/watch?v=0iKWPxYk6SM
Thanks for the huge amount of info macunix! Much appreciated!
Music with dinner is an insult both to the cook and the violinist.

Dewdman42
KVRian
1499 posts since 14 Mar, 2006

Post Sun Aug 18, 2013 10:37 am

how is the latency with VFX? I have found better performance by using wineskin and then using reaper as a vsthost and wineasio for low latency audio through jackOSX. You can get quite low latency that way. Wineasio is the key.

But neither of those options are really in line with this thread, which is a way to directly host the win32 plugins inside OSX DAW host.

macunix
KVRer
6 posts since 6 Aug, 2013

Post Thu Aug 22, 2013 4:24 am

Latency would depend on the hardware as well as what Wine does.

Wine uses CoreAudio and the CoreAudio drivers but this only applies for a Windows version of Reaper or Windows DAW running on OSX.

Wacvst only uses Wine for the vst visual interface as the DSP vst code is getting processed through Reaper's or the DAW's audio path for the OSX version of Reaper or OSX DAW.

I've only tested VFX and wacvst with an old 2006 Macbook with inbuilt sound and I seem to get lower latency with VST effects like Guitar Sims than with Drum VSTI's, but it would depend on the hardware and the associated CoreAudio drivers.
Last edited by macunix on Thu Aug 22, 2013 8:02 am, edited 2 times in total.

User avatar
whyterabbyt
Beware the Quoth
26280 posts since 4 Sep, 2001 from R'lyeh Oceanic Amusement Park and Funfair

Post Thu Aug 22, 2013 4:26 am

kennylavish wrote:Well I just figured out a way to play and record the SQ8L plugin in Mac OS X through Ableton Live 8 using VFX and a little app called XVX Digidesign Hardware Emulator.
O RLY?
XVX Digidesign Hardware Emulator page wrote:"THIS RELEASE IS ONLY FOR THOSE WHO USE THE CRACKED PRO TOOLS HD COPY BY US."
"The bearer of this signature is a genuine and authorised pope."

Dewdman42
KVRian
1499 posts since 14 Mar, 2006

Post Thu Aug 22, 2013 9:48 am

macunix wrote:Latency would depend on the hardware as well as what Wine does.

Wine uses CoreAudio and the CoreAudio drivers but this only applies for a Windows version of Reaper or Windows DAW running on OSX.

Wacvst only uses Wine for the vst visual interface as the DSP vst code is getting processed through Reaper's or the DAW's audio path for the OSX version of Reaper or OSX DAW.

I've only tested VFX and wacvst with an old 2006 Macbook with inbuilt sound and I seem to get lower latency with VST effects like Guitar Sims than with Drum VSTI's, but it would depend on the hardware and the associated CoreAudio drivers.
The built in audio of wine has horrible latency. that is the point. Its not a question of the apple side of things, its a question of what the windows side will use. Wine comes with some kind of directsound driver basically, that is just like the typical big latency you get on windows when you're not using ASIO. As you run your windows software inside wine or VFX or whatever..it has to go through that slow layer before hitting CoreAudio on the appleside....

If you get wineasio and build your own wineskin (which is not hard) you can get great low latency because on the windows side its using ASIO instead of the dog slow Microsoft crap.

There is also something that Imageline made in conjunction with Codeweavers, called CoreASIO. This is even better then wineasio because it does not require JackOSX, but I have not been able to find it available anywhere. Its included in the OSX FruityStudio beta that went out a few years ago but does not appear to be available anymore. That was using wine also and they developed an ASIO driver for the windows side that communicates directly to CoreAudio on the mac side. But good luck finding that.

Wineasio and wineskin is your best best today if you want low latency windows audio software to run on a mac.

macunix
KVRer
6 posts since 6 Aug, 2013

Post Thu Aug 22, 2013 11:03 pm

Dewdman42 wrote:
macunix wrote:Latency would depend on the hardware as well as what Wine does.

Wine uses CoreAudio and the CoreAudio drivers but this only applies for a Windows version of Reaper or Windows DAW running on OSX.

Wacvst only uses Wine for the vst visual interface as the DSP vst code is getting processed through Reaper's or the DAW's audio path for the OSX version of Reaper or OSX DAW.

I've only tested VFX and wacvst with an old 2006 Macbook with inbuilt sound and I seem to get lower latency with VST effects like Guitar Sims than with Drum VSTI's, but it would depend on the hardware and the associated CoreAudio drivers.
The built in audio of wine has horrible latency. that is the point. Its not a question of the apple side of things, its a question of what the windows side will use. Wine comes with some kind of directsound driver basically, that is just like the typical big latency you get on windows when you're not using ASIO. As you run your windows software inside wine or VFX or whatever..it has to go through that slow layer before hitting CoreAudio on the appleside....

If you get wineasio and build your own wineskin (which is not hard) you can get great low latency because on the windows side its using ASIO instead of the dog slow Microsoft crap.

There is also something that Imageline made in conjunction with Codeweavers, called CoreASIO. This is even better then wineasio because it does not require JackOSX, but I have not been able to find it available anywhere. Its included in the OSX FruityStudio beta that went out a few years ago but does not appear to be available anymore. That was using wine also and they developed an ASIO driver for the windows side that communicates directly to CoreAudio on the mac side. But good luck finding that.

Wineasio and wineskin is your best best today if you want low latency windows audio software to run on a mac.
A OSX host (Reaper OSX version) running Windows VST code using Wine, seems to be very different from a Windows host (Reaper Windows version) running under Wine on OSX and also running the Windows VST code.

http://lac.linuxaudio.org/2004/zkm/slid ... upport.pdf

The Windows VST code on OSX seems to be running in a Wine thread which then communicates with the OSX host.

Maybe something like this

CoreAudio In -> Reaper OSX -> wacvst VST dll Intel code running in a Wine thread or Pipe based process -> Reaper OSX -> CoreAudio out

and running Reaper Windows using Wine on OSX would be something like this

CoreAudio In -> WineCoreAudioIn -> Reaper Win -> VST dll Intel code -> Reaper Win -> WineCoreAudioOut -> CoreAudio out.

How wacvst (dssi-vst) works is

Architecturally dssi-vst is like vstserver in that it
runs the VST plugin in a separate process and communicates with it via
some IPC mechanism (here shared memory and POSIX FIFOs (Pipes), in vstserver
shared memory and Unix domain sockets).

With Reaper Windows, Wine is handling the Reaper audio and directing it to the OSX CoreAudio drivers and a VST plugin just looks like a Windows VST to Reaper Windows and the whole lot are running under Wine with audio communication going from Wine to CoreAudio.

With Reaper OSX, Wine is not really handling the Reaper audio directly and the Reaper audio is coupled directly to the OSX CoreAudio driver and wacvst just sits in the middle in it's own Wine thread or process and looks like a Mac VST plugin to Reaper OSX.

So the Wine CoreAudio latency doesn't really apply to wacvst in the same way as when Reaper Windows is run using Wine on OSX.

The FL beta seems to be the windows version of FL running under Wine (inbuilt Wine) but maybe with a tweaked Wine CoreAudio interface.

The tweaked Wine Coreaudio interface wouldn't really help wacvst but it might help Reaper Windows running under Wine on OSX.

The latency of wacvst would probably depend on how fast and efficiently data can be transferred from the Wine VST dll thread to Reaper OSX and also on the CoreAudio drivers and sound hardware as it is for any native OSX app like Logic etc.

There is an updated version of dssi-vst (which wacvst is based on) that has faster realtime data communication management between the VST plugin and the host but that is for the Linux kernel, but porting it to OSX and the mach kernel is probably possible for wacvst but maybe OSX doesn't need the updated dssi-vst and it's ok as it is.

As I've said, I havn't tested the wacvst latency with anything except a basic inbuilt old Mac soundcard and so I can't give much of an opinion on how wacvst would perform with other hardware.

Dewdman42
KVRian
1499 posts since 14 Mar, 2006

Post Fri Aug 23, 2013 11:58 am

Sorry for the confusion, we're getting into outer space. I was only suggesting wineskin and wineasio is a better alternative then the previously suggested solution to use VFX. Both of those two solutions are not the same as the win-to-osx VST wrapper adapter that this thread is really discussing, which yes is completely different.

I personally was never able to get the VST wrapper working after hours of messing around with it, but if I could have, it would have been best solution for sure!

On the other hand I have gotten numerous things to work very well and cleanly with low latency using wineskin and wineasio.

Return to “DSP and Plug-in Development”