Run Windows VSTi's on Mac OSX EASILY with Low latency :-)

Audio Plugin Hosts and other audio software applications discussion
RELATED
PRODUCTS

Post

Hey,

I just thought I'd share a pretty easy and pretty stable way of getting Windows VSTi's to run on MAC OSX with low latency :-)

Software needed
1 - Crossover (wine for Mac) https://www.codeweavers.com/products/crossover-mac/

2 - MuLAb windows host/sequencer http://www.mutools.com/mulab-product.html

So download Crossover (I purchased it after getting this to work so successfully) and install on your mac

Initial Crossover/Mulab setup

> Download MuLab Host (windows)

> use Crossover install wizard to install MuLab

> once completed, go to Mulab Bottle and browse the C:\ drive, create a new folder and place all your Windows VSTI's in there

> create a launcher shortcut in Crossover to the Mulab.exe for ease of launching the program

> Launch Mulab from the shortcut and choose new project

> Setup Audio as Wine Sound Mapper and adjust the Audio Buffer to the required latency (low as possible without clikc/pops etc)

> Setup midi using MAC audio/Midi setup as per this VOD to be able to send midi to Mulab from your mac host (ableton or Logic etc) https://www.youtube.com/watch?v=VpIFgsCgvKY

Notes -
1 - My firewire interface( Saffire Pro 24) allows me to record directly into Ableton from Mulab cia the Saffires mixdown channel, but you may need an audio routing tool like JACK here (untested by me)

2 - Some VSTI fail to run in MuLAb, load them one by one until you know if they'll work ok, otherwise just cope the Mulab bottle, rename it and test in a separate bottle, then just copy the files and dll's across.

3 - use midi channels to rout to other VSTi's in MuLAB if required or run multiple version of mulab bottles :-)

4 - Midi mapping works in Mulab too

Works a treat, low latency, stable and easy to setup. I've not seen an easier way to do this yet anywhere else

contact me if you need further directions, I may record a video too when time permits

Scott

Post

What's the lowest actual latency you get in the Crossover bottle in milliseconds?
Are there any issues with Plugin Delay Latency in Ableton with the Mulab VSTI?

I tried this in Crossover with VAZ Modular a while ago and I hit a latency limit of 50-60 ms due to the Windows audio system emulated in the bottle. I found some instructions in the VAZ forum involving the installation of Wineasio but it didn't behave as expected.

http://www.kvraudio.com/forum/viewtopic ... &start=255
http://www.kvraudio.com/forum/viewtopic ... 0&start=45

Post

I use the free WINE in WineBottler. Works decently enough for quite a few things. Some software prefers an older build (like the game Tetroid 2012).

http://winebottler.kronenberg.org/
- dysamoria.com
my music @ SoundCloud

Post

You don't need crossover to do this. Any free wine build will work. Wine bottler, wineskin, generic wine, etc.. I rather like winebottler lately or the build of wine that the author of wine bottler also distributes.

For low latency audio, you need wineasio and you can find it here:

https://github.com/steveschow/osxwineasio/releases

You also have to install the latest version of JackOSX which interacts with wineasio to provide very low latency audio.

You can use a variety of different vst hosts inside wine to host the plugins.
MacPro 5,1 12core x 3.46ghz-96gb MacOS 12.2 (opencore), X32+AES16e-50

Post

Easily got less than 10ms with the MuLAB Wine MME driver (once the buffers and block size was tweaked) realtime performance with not lags, delays, drop outs or pops.

yes, you can use Jack and WineASIO, but I struggled to find ANY decent documentation or how to guides on how to set it all up! Hence why I posted the crossover/mulab (quick and easy method) as it' easy to manage for people that just want to make music really rather than hack away at drivers and audio routing.

This soln worked for me, was very stable with low latency and is simple to setup, literally 15mins and its ready to rock. etc

Post

Maybe I can help... Here is how to setup crossover with wineasio:
  1. Download wineasio from here: https://github.com/steveschow/osxwineasio/releases
  2. copy the file wineasio.dll.so to the following path, assuming you have CrossOver installed in the /Applications folder:

    Code: Select all

    /Applications/CrossOver.app/Contents/SharedSupport/CrossOver/lib/wine/
  3. in crossover, Under the Programs menu there is a menu item called "Run Command". Use that and execute the following command:

    Code: Select all

    regsvr32 wineasio.dll
  4. Wineasio is now ready
  5. On OSX install JackOSX and reboot.
  6. Run the JackPilot utility and start Jack. Then press the Routing button to call up the routing screen, leave it open
  7. Start MuLAB under wine, presuming its ASIO capable, choose the wineasio driver. Do not try to use the asio control panel. Just select that driver and outputs. Load up some kind of VST instrument in MuLAB on a track and send its output to the wineasio audio ports in MuLab.
  8. Go back to the JackPilot routing screen. You should see MuLAB appear as one of the Send Ports. connect MuLab send ports to the playback_1 and playback_2 receiver ports. You should be hearing low latency ASIO audio now through OSX system audio.
  9. if you want to route the audio directly to DP, Logic or whatever OSX host you're using, then when you start up those apps and record enable tracks, you will see them appear on the JackPilot routing window as available receive ports. You can then route the audio from MuLab to there instead of directly to your OSX system audio. Its possible to route to more then one receive port at a time, so you need to make sure to disconnect MuLab from the osx system audio directly when routing to your OSX DAW, which is probably also sending the audio eventually to the system audio.
  10. for convenience, one of the options in JackOSX preferences is to automatically connect new send ports that appear in jackPilot over to the system audio port, so that if you are just going to start up MuLab an load and instrument and start playing on it, JackPilot will do the routing for you directly to the system audio. see Jack preferences for that.
  11. midi is sent from your OSX DAW over to Mulab also, basically you have to enable an IAC or virtual midi port in your DAW, and once you have done that and start up MuLaB, then it will appear through wine to MuLab as an available midi port to receive incoming midi. In this way you can actually record the midi tracks directly in your OSX DAW and have the midi sent over IAC over to wine/MuLab, where sound will be generated by your VST of choice and then the audio sent back to your host OSX DAW to record the audio onto a track there. With ASIO, there is no noticeable latency.
MME will not touch the low latency of asio, sorry, but I don't believe you're getting 10ms with MME, and not even sure how you came up with that number or how you feel you measured it. Not only that but you still need a way to route that audio from wine over to your OSX host unless you plan to record all your music directly in MuLAB.

The instructions above apply equally to other distros of wine besides crossover, but the exact location to place the wineasio.dll.so is different in different distros. For CrossOver its in the location I said above. In wineskin, wine bottler, vanilla wine, etc..its a different place where numerous *.dll.so files are kept to operate wine and that is where to copy the wineasio.dll.so file for that step, after that the steps are all the same pretty much. I guess in other distros you have to call up an actual cmd.exe window in order to run the regsvr32 command to register the dll
MacPro 5,1 12core x 3.46ghz-96gb MacOS 12.2 (opencore), X32+AES16e-50

Post

$60 bucks for Codeweavers , or Wine for free , time messing with it to get it all up in running is probably equal to Windows7 OEM that you could get for $99 and just bootcamp your Mac.

Post

hehe bootcamp is a lot more hassle then that, I have been down that road. Honestly I've tried all the solutions over several years, wineasio under free wine is the best way to go. You can still record your projects in Logic or DP or PT or whatever OSX DAW you want and just use wine for hosting the actual VST that way. You can even use a much simpler host then MuLab, like VstHost (free), which works just fine under wine.
MacPro 5,1 12core x 3.46ghz-96gb MacOS 12.2 (opencore), X32+AES16e-50

Post

Dewdman42 wrote:Maybe I can help... Here is how to setup crossover with wineasio:
Thanks for the instructions, will have to give it another go.
Just a couple questions:
- does total latency = Core Audio + ASIO latency?
- any issues with IAC MIDI timing accuracy?

Post

Whatever is reported to you by Wine is not the total latency. Wineasio bypasses a lot of the wine stuff by basically providing a driver that shortcuts the audio directly from your windows host (MuLab) over to jackOSX, and totally bypasses the windows MME layer and whatever all it has to go through wine. I've actually never heard of anyone getting 10ms of latency through MME, even on a native windows box. Using DirectSound, maybe, which is not actually MME. But if you want to route that through jack or soundflower or some other thing to get to your OSX host, then you have still more latency. Wineasio is the most direct route.

IAC midi timing is what it is. Its not as accurate as without, but its not terrible either. I can't feel any problems when I play stuff on the keyboard, the events are buzzing across fast enough. I did a lot of stuff with jamstix this way before they finally released the OSX version, and the drum parts all sounded tight. If you are really concerned about getting absolute midi tightness, then have MuLab take its midi input directly from your midi keyboard port, record the track into MuLab and export the midi over to your OSX host. It is also possible with some hosts to actually syncronize the one under wine with your OSX host using midi sync. I used to do that with jamstix in reaper inside wine. So DP would be controlling the playback and Reaper would slave to it. Jamstix would generate midi inside the wine environment and I would record them there and export the midi back over to DP when I had the track the way I wanted it, but honestly I could not tell any difference in timing, the midi was handled pretty darn well, I was just being anal about it.

I was sometimes even having Jamstix hosted inside wine, but Steven Slate Drums hosted in DP, and all in sync so that DP would control the transport, Jamstix would generate midi events which I would have piped over IAC back to DP in order to play back Steven Slate drum sounds. So in that case I wasn't even really using JackOSX much at all, but when I did have Jamstix sounds send over JackOSX along with midi being send over IAC to steven slate drums...it would all go through the DP mixer and I could not hear any timing problems, the SSD notes were hitting at the same time as the Jamstix audio piped over JackOSX. Close enough anyway to work that way, not sample accurate. Ultimately I would have jamstix save a midi track under wine and then I'd export that final midi track over to DP to play through SSD directly or continue tweaking on the track.
MacPro 5,1 12core x 3.46ghz-96gb MacOS 12.2 (opencore), X32+AES16e-50

Post

Dewdman42 wrote:Maybe I can help... Here is how to setup crossover with wineasio:
  1. Download wineasio from here: https://github.com/steveschow/osxwineasio/releases
  2. copy the file wineasio.dll.so to the following path, assuming you have CrossOver installed in the /Applications folder:

    Code: Select all

    /Applications/CrossOver.app/Contents/SharedSupport/CrossOver/lib/wine/
  3. in crossover, Under the Programs menu there is a menu item called "Run Command". Use that and execute the following command:

    Code: Select all

    regsvr32 wineasio.dll
  4. Wineasio is now ready
Any thoughts on how to get this working in wine bottler? I tried executing regsvr32 wineasio.dll using the Runtime Arguments menu in the advanced tab of the wine bottler installer but wineasio still does not show up.

I have used adaptations of your jamstixwine installer for various PC host/vsti setups on my Mac for a while now and they have all worked great and are much less clunky than the alternative VFX or plugwire solutions so a belated thank you for creating jamstixwine! I agree with your comments on the wine distribution that comes with wine bottler, though, and it would be nice to get this working so I can compare wineskin/winebottler solutions.

Post

where did you copy the wineasio.dll.so file? I am not 100% sure where that path is for winebottler, I use his distro of wine generally, but not winebottler. Anyway, if that doesn't work, try to open cmd.exe and type the command in there, watch the results.

Glad to hear you were enjoying the jamstix thing I did. That was using wineskin, also a great product I actually like it better then winebottler for creating self contained packages like that. In any case, this new version of wineasio from github is better then what I had used in the jamstix thing, its the very latest version of wineasio, compiled for OSX. In any case, this new version of wineasio.dll.so supports multi inputs and outputs, the old one I had in the jamstix thing was compiled a long time ago and a bit crippled, the new one is using much better code and follows all the configuration options that linux users have been enjoying, you can configure various ENV variables to configure some values for it, number of ports and other things.
MacPro 5,1 12core x 3.46ghz-96gb MacOS 12.2 (opencore), X32+AES16e-50

Post

fedexnman wrote:$60 bucks for Codeweavers , or Wine for free , time messing with it to get it all up in running is probably equal to Windows7 OEM that you could get for $99 and just bootcamp your Mac.
but I want all my MAC AU's and VST's as well, Live on Windows used to crash on me all the time, it was a PITA what with USB having to unplug my interface. Windows has a lot of great VSTI's but running a Host on windows isn't stable enough unfortunately.

Post

Winstontaneous wrote:
Dewdman42 wrote:Maybe I can help... Here is how to setup crossover with wineasio:
Thanks for the helping, I'll give it a try.

Post

So, downloaded Wineasio from the link

Do I need to makefile anything to get the "wineasio.dll" created, what I see is a file called "wineasio.dll.spec"?

see, not too easy for a newb!!!

Post Reply

Return to “Hosts & Applications (Sequencers, DAWs, Audio Editors, etc.)”