New Wine: Running Windows Music & Sound Applications Under Wine 1.2

Wine runs many Windows programs nicely these days, including more and more serious music applications. Dave profiles some of those applications running under the latest & greatest Wine 1.2

On July 16 the Wine development team announced the public release of Wine 1.2, the "WINdows Emulator", aka "Wine Is Not an Emulator". I hadn't been keeping up with the project, so I decided to revisit it to see how Wine's audio/MIDI support had evolved. Past releases enabled a variety of small and mid-sized sound applications to run, but would the latest & greatest be able to meet the demands of at least some of the more popular music programs for Windows ? Read on to learn the truth, the whole truth, and nothing but the truth about running Windows music applications in Linux under the latest Wine.

New releases of Wine are somewhat predictable in their content. The software is not actually an emulator, it's a compatibility layer that enables the operation of Windows binaries under Linux. In essence, the project is in a perpetual chase scene with Windows releases, and I have deep respect for Wine's goal of full compatibility. However, the developers' work is cut out for them. Any attempt at emulating a severely closed operating system is bound to include some instability due to the inaccessibility of source code. It is a great credit to the Wine developers that their software performs as well as it does with a wide variety of Windows applications, including music and sound applications. Over the years I've watched Wine expand its audio/MIDI support to keep up with development in both Windows and Linux, a rather tricky achievement.

The test platform for this article was restricted to Ubuntu 10.04, the Lucid Lynx release, in its 32-bit incarnation. Most Windows-based music software is still in 32-bit versions, a situation especially true for VST/VSTi plugins. That situation is changing rapidly these days, but I preferred to test under conditions typical on the original platform. The audio hardware included an M-Audio Delta 66 digital audio interface and a SoundBlaster Live! soundcard, managed by the ALSA kernel drivers (version 1.0.20) and the JACK audio server (version 0.119.0, a.k.a. Jack1).

Get/Install/Configure

Wine is available from the official Ubuntu repositories, and the listing in Synaptic even identifies a 1.2 package. In fact that package is not the same release as the version discussed here, nor do I know why Ubuntu has decided to renumber their package. Anyway, I'm a seasoned Wine builder so I opted to download the source code from the Wine HQ site. I opened it in my ~/src directory and ran this familiar invocation from the new wine-1.2 directory :

  ./tools/wineinstall

I've run this command many times when building past releases of Wine but I've never received an error message like this one :

  dlphilp@The3800:~/src/wine-1.2$ ./tools/wineinstall 
  Wine Installer v1.0

  You are running wineinstall as root, this is not advisable. Please rerun as a user.
  Aborting.

Ouch. I was definitely running as a normal user, so the error was most confusing. Worse, Google couldn't help me find out why the error occurred. After mucking around the net searching for a fix I finally realized I could simply run the provided configure script and get the desired results. This command sequence built the program without error :

  ./configure --prefix=/usr
  make
  sudo make install

The default build configuration will look for and use ALSA, JACK, OSS, ESD, and other sound components, unless directed to disable them. Run ./configure --help to see what defaults can be added or deleted for your customized version of Wine. As shown in the commands above I opted for the default configuration except for the destination directory. In truth, Wine's audio/MIDI support has been good for a while and getting better all the time. ALSA and JACK have been integrated into the emulator for a while already, so more recent changes have been incremental. The Big News for Wine 1.2 includes the long-awaited support for 64-bit builds, but improvements have been made also to the support code for ALSA and PulseAudio. For the complete story see the latest Announcement page at Wine HQ.

After installation I always take two extra steps to optimize Wine's audio/MIDI performance. First I build and install the wineasio driver to enable lower latencies through the JACK audio server. Next I configure Wine's audio/MIDI preferences with the winecfg program (Figure 1). If you're following along and setting up Wine yourself, make sure you activate the capabilities for both ALSA and JACK. Wine does not yet support Jack-MIDI, so if you want MIDI you'll need the ALSA support.

Figure 1. winecfg, the Wine configuration utility.

By the way, if you've ever configured a Windows sound application you've probably encountered the handy Show ASIO Panel or a similar button in the audio setup dialog. Previous versions of Wine simply left that button with stub code, i.e. you could click on it but nothing would happen. However, now the button calls QJackCtl by default, which I must say is a super-cool and most thoughtful design. Also by the way, programs configured for the wineasio driver will automagically invoke JACK at its default settings. Now there's no need to wonder when to launch the server, it'll all be done for you transparently when you click on a program's icon or menu item. I don't know whether this feature comes from the Wine devs or the Ubuntu gurus, but it is a sweet amenity.

Applications That Worked Well

The Wine Applications Database lists graded results from users who have tested various Windows programs under various versions of Wine. The database includes an Audio category filter that returns a list of more than three hundred tested applications. However, the list is not always current, and you may find that the latest version of Wine resolves issues with formerly problematic programs. Alas, you may also discover that what once worked has become inoperable, though it must be admitted that such cases have become more rare as Wine advances.

The programs selected for this article were chosen because they appear to be representative of popular Windows music and sound software. I confess that I'm a stranger in the world of contemporary Windows music software, so I'm sure to have overlooked other interesting and important programs. By necessity I eliminated any packages that required hardware authentication or other onerous copy protection.

Due to the limitations of time and space I restricted my tests to basic configuration and the hopefully successful performance of a demo file or two. I also tested the audio/MIDI input and output for each program. I preferred to use the wineasio driver when possible, but I did not try to achieve a low latency figure. I was more concerned with audio continuity.

The descriptions are also necessarily brief. Some of these programs have considerable depth, and in some instances I'd have to spend weeks to test every feature. Alas, life is short, and again my intention here is to show simply that the programs do or don't run out of the box. With those caveats in mind let's proceed to my mini-reports.

Ableton Live Intro

Ableton Live is an audio/MIDI loop sequencer designed as an instrument for live performance. Live is also an excellent DAW for realtime composition and arrangement, due largely to its innovative user interface and beat-matching capabilities.

I tested the Live 8.1.3 demo (Figure 2). Installation was trouble-free, configuration was simple, and the example files played flawlessly. The demo lets you choose between Live and the Live Intro program. I'm a complete newbie to Live, so I opted for the Intro. I followed some of the basic tutorials and discovered a bit of why Live has become so popular. The program is easy to learn and great fun to operate, yet it is obviously deep and musically powerful software.

Figure 2. Ableton Live Intro.

I'm seriously considering purchasing the Intro version. The demo ran well under Wine, it's really fun to play with, and there's no single program quite like it for Linux. Oh, and the full packages are too expensive for me anyway.

Addictive Drums 1.5.1

Some of my students compose excellent drum tracks for their recordings, and Addictive Drums is one of their preferred tools for the job. The program includes an audio/MIDI loop player with tools for beat transformation and adding special effects. Each instrument in a drum kit can be edited for fine control over your sounds, and new kits can be loaded into the program to expand its resources.

Figure 3. The Addictive Drums VSTi running under Festige.

The demo installed without complaint and performed nicely when run from the Festige host for VST/VSTi plugins (Figure 3). Festige is a Python script that provides a QT4 GUI for launching some VST/VSTi plugins. The program employs the Vestige headers to provide compliance with the VST plugin API and calls Wine to do the heavy lifting.

For various reasons some VST/VSTi plugins will not work with any special conditions or mechanism under Linux. Addictive Drums is not one of those bad boys. After testing its features for a while I began to think I was using a native Linux application. If the program performs so nicely under Linux it must be a pleasure to use in Windows as well. My compliments to the programmers for a their work on this well-designed powerful software.

Finale NotePad

Ah yes, Finale (Figure 4). This program must be the best-known music notation software for Windows, so when I read of the possibility of running it under Wine I had to check it out for myself. Finale is a big package, so I opted for testing the Finale NotePad 2011, a lightweight and inexpensive entry-level version scaled down from the big package. The download requires registration - I've come to despise notices that start with "You must register to download this software" - but Finale balances the aggravation with a 30-day trial period with all features active, including load/save operations.

Figure 4. Finale NotePd 2011.

The demo worked well. I entered notes with the mouse in Draw mode and with an external MIDI keyboard. I chose the program's default SmartSynth software synthesizer for score playback. It worked well for my little examples, and I always had the option of connecting to other ALSA clients such as LinuxSampler or QSynth. I also successfully tested NotePad's MIDI file conversion and its MusicXML import/export capabilities.

It's supposed to be a given that if the demo runs well then the full package should run equally well. I'd like to hear from any readers who have succeeded with the Finale/Wine combination, so drop a line if you have such a story.

SPEAR

Michael Klingbeil's SPEAR (Figure 5) is a specialized program designed for audio analysis. It is a useful helper for the Common Music/GRACE algorithmic composition environment: Its analysis files are readable by that system's spectral functions, a most useful amenity if your composing in the manner of Gerard Grisey or Clarence Barlow. I enjoy working with spectral composition methods, and I was happy to learn that I could generate my analysis files by running SPEAR under Wine. The program makes no especially heavy demands on the system - it's not a realtime application - and it works as advertised. End of report.

Figure 5. SPEAR analyzes a WAV file.

Apps That Didn't Work So Well

I tried the demo for Sibelius 6, another big package for music notation. Installation was trouble-free, but when I tried to run the program it died during initialization. Worse, I had to manually dispose of the corpse by hunting down and deleting its remnants with htop. Ah well, such is life on the emulation edge. However, a quick search for 'Sibelius and Wine' revealed that some users have had varying measures of success with various versions of both programs.

I downloaded the demo of Acid Pro and registered for the free download of Sony's Acid Xpress. Acid Pro failed to install due to missing Microsoft C++ stuff. Xpress also failed because the installer doesn't install the DLLs needed to run the program. Apparently I'd have better luck if I copied the DLLs from an existing installation of Acid, which I don't have. Grrr...

Celemony's Melodyne has been reported to work under Wine. Sad to say, the demo for release 3.2.1.5 wouldn't run for me. The installation was trouble-free, but the program failed to initialize.

Figure 6. FL Studio 9.

I looked forward to testing FL Studio (Figure 6) under the latest Wine. Alas, my experience was mixed. The program installed without problems, I was able to run some demo and tutorial files, but audio performance was compromised by too many xruns (JACK-speak for buffer over/underruns), even at the high latency used for these reports. Nevertheless, I had fun with FL Studio, and I must admit that it is a very cool program. Again I ask readers for any success stories they may have regarding the juncture of FL Studio and Wine.

Apps That Won't Work At All

There is also a class of audio applications that probably never will work under the emulator. Copy protection is the culprit for Cubase and other applications that depend upon a dongle or a similar hardware key that must be attached to the host machine in order to verify the program's legitimacy. Some companies have displayed outright hostility to free software and have ensured that their products will run only on certain platforms and only under certain conditions such as the presence of a hardware key. Advocates of software libre may find such practices abhorrent but it's business as usual in other worlds.

Outro

The verdict is in, Wine 1.2 is a winner. But is it capable of running the programs so beloved by Windows-based musicians and recordists ? As this article has shown the answer is a qualified "Yes". I already knew of Reaper's compatibility with Wine, but the emulator's ability to run the Ableton Live demo was a complete surprise. Alas, many of the most popular programs remain mute under emulation, though perhaps future versions of Wine will accommodate them.

The designers at Ubuntu have integrated Wine nicely into their vision of the Compleat Linux Distribution. The user selects and starts a Windows application in the same way as he or she would select and start a normal Linux application by clicking on a desktop icon or choosing a menu item in the usual manner. If wineasio is required the system will start and stop its JACK dependency automatically. That's it, the process is completely transparent, and no particular knowledge of Wine is required.

So am I persuaded to switch ? Not really. I enjoy using VST/VSTi plugins with Festige and I'll probably spend some more time with Ableton Live and Addictive Drums. I can do what I want to do with the available native Linux audio, but I'm also always on the look-out for interesting music software, regardless of platform. However, I highly doubt I'll ever run Windows as a primary system again, so I'll continue to follow Wine's development track.

The question remains whether the working software can be used in a production environment. Again, the response is qualified. Stability can not be guaranteed during realtime operations, and timing issues may occur that result in debilitated performance. The matter involves closed-source applications running under an emulation of a closed-source operating system, so I wouldn't expect performance statistics equal to those generated by the software running in its original environment. Personally I'm amazed that any of it runs at all - which I consider a testament to the wizardry of the Wine development team - and I'm pleased that some of it runs very well indeed. However, the admonishment that YMMV - Your Mileage May Vary - is most apt when it comes to running audio applications in an emulated environment.

By the way, I purposely avoided reviewing programs I've already profiled in this column, including the excellent Reaper DAW, the Mountain Utilities software for managing the Behringer BCx and FCB controllers, and various standalone software synthesizers and VST/VSTi plugins.

I'd like to hear from other users who are using Windows music and sound software in emulated or virtualized environments. As I said, the Wine Apps DB is out of date. Google searches will turn up informative success stories of Program X running under Wine N.n.n, but it would be nice to have a Web site dedicated to evaluating the performance of Windows audio/MIDI programs under Wine, Crossover, Virtualbox, and other similar environments.

______________________

Similis sum folio de quo ludunt venti.

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState