1

There are two applications that I have used and familiar with on Windows 7 and 10, and would like to use also on my new Desktop running Ubuntu (with lowlatency kernel), i.e. Guitar Rig 5, and FL-Studio Producer Edition 12.4 ! Apart from this, I have already started using Linux for some part of the production workflow, but not willing to give up on GR5 and FLS, just yet.

Since music production applications are quite latency/delay sensitive, I was wondering if I'd get better performance (lower latency) if I go the Wine route, or Windows 10 guest VM on Virtualbox on the Ubuntu host ?

Would very much appreciate if the response either cites personal experience having run both (Wine based application, and Windows-VM) and observed one performing better than the other, or can provide theoretical reasoning which I could try to wrap my head around or cross-verify.

2

Based on personal experience, provided you don't need single digit millisecond latency and the applications are not doing complicated things through DirectX for audio, you should have no issues using Wine. I've not done actual audio production with stuff in it, but I have gamed in it, and even a slight desync of the audio and video in a game can cause issues while playing, so I went to the trouble of actually measuring latency. In my tests, on my system, I got about 30ms latency relative to the same audio playback (same files, same software) running natively on Linux, though do note that that system was optimized to minimize latency, which is not the case for most distributions out there.

That said, even if it weren't for that, VirtualBox would almost certainly provide worse latency anyway.

With a native application, audio takes the following path (in most cases):

Application -> [Audio Library] -> [Sound Server] -> Sound Driver -> Hardware

With the audio library and sound server being functionally optional. So, natively, you have between 3 and 5 layers that your audio is going through before it gets to hardware.

With a Windows application running under Wine, you have the following:

Application -> [Audio Library -> [Audio Library]] -> Wine -> Sound Server -> Sound driver -> Hardware

With only the audio libraries between the app and Wine being optional. This means you have between 4 and 6 layers that your audio goes through before it gets to hardware.

With a Windows application running in Windows in Virtual Box (or another VM platform), you instead have the following monstrosity:

Application -> [Audio Library -> [Audio Library]] -> Windows Sound Driver -> VirtualBox Emulated Hardware -> Audio Library -> Sound Server -> Linux Sound Driver -> hardware

With only the audio libraries inside the virtual machine being functionally optional. So, for VirtualBox, you have between 6 and 8 layers your audio has to go through.

Note that this all assumes you primarily care about average latency, if you want to minimize variance in latency too, then things get way more complicated, but you still end up better off running natively (or failing that running under Wine) than with VirtualBox.

1

Applications that use the WIN32 or WIN64 API functions that Wine provides instead of the ones Windows provides, should in principle run at the same speed. Wine Is Not an Emulator. However, some function implementations in Wine are slower than the ones in Windows, and some are faster.

World of Warcraft were known to run better under Wine than on Windows.

Virtualization adds a layer that may hamper performance.

Provided that Wine can actually run the applications in question, it should yield the best results.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.