Running Sound Applications under Wine

March 30th, 2006 by Dave Phillips in

You still need Wine to get a buzz (and other audio applications) on.
Your rating: None Average: 4.3 (3 votes)

Open any of the popular music trade magazines such as Keyboard or Sound On Sound, and you can't miss the plethora of colorful advertisements for sound and music software, all of it for Windows and Mac. Much of this software is of truly outstanding quality; some of it has set industry standards for features and performance, and not a bit of it is available for any platform other than Windows and Mac.

The open-source audio development community has made great strides toward providing musicians with a freely available alternative to the Win/Mac hegemony, and they deserve great praise. Nevertheless, it also must be admitted that our community is still relatively small. Potential converts to Linux often ask whether they can run their familiar programs successfully under Linux, and that criterion alone can determine whether they make the change to Linux. For all of Linux's vaunted technical superiority, it's a no-show if you need an application that simply doesn't exist for it.

This article describes how to set up and use the Wine Windows emulation environment for sound and music applications. I test a few programs, and I indicate the quality of performance you can reasonably expect from running Windows music and sound software under Wine.

Some Details

System emulators come in two basic flavors, machine architecture emulators and operating system emulators. Wine is a complete package that emulates the Windows operating system. Windows itself is not required. Wine includes its own versions of the Windows system DLLs, but you can use the native Windows versions if you prefer. Depending on the intended use, the system may require other native support software expected by your applications.

Wine's sound capabilities have developed largely in response to users who want to play their favorite games without leaving their favorite operating system. As a result, Wine has become a good candidate for running Windows audio and MIDI applications. However, before installing the emulator, you should check its documentation for the most current sound system status reports. If you intend to run a particular sound or MIDI application under emulation, your success will depend on a variety of factors, including support for the original file formats, audio sampling rates and required drivers.

The tests in this article were performed on an 800MHz machine with an M-Audio Delta 66 digital audio I/O system and an SBLive Value sound card. The software base included ALSA 1.0.4, JACK 0.99 and a rock-solid 2.4.26 Linux kernel patched for low latency. As always, your mileage may vary.

Wine

Wine is an acronym for either WINdows Emulator or Wine Is Not an Emulator. Curiously, both interpretations are correct. Wine is the wine executable, a Linux program that runs Windows programs, and it is equally libwine, a library designed to assist Windows/Linux cross-platform development.

After 12 years at the alpha-release level, Wine is now officially a beta-stage project. Hopefully, this event signals a more consistently stable environment, but some programs still may behave erratically. The Wine documentation gives detailed instructions for submitting useful bug reports, so if you find that your favorite Windows program doesn't work well (or at all) under Wine, you can help yourself and the project by submitting a report.

Wine's support for basic sound and MIDI is good, and support for audio extensions such as Microsoft's DirectX is improving, but you won't be able to use Wine to run large, integrated multimedia applications, such as Cubase or SONAR. However, Wine can run a variety of sound and music programs, even some fairly big packages. Check the Wine Web site (see the on-line Resources) for links to lists that rate the compatibility of various Windows applications.

Getting It, Building It

The WineHQ Web site provides Wine in a variety of package formats, including the common RPM and DEB formats and full source tarball. Use your package manager of choice to install the latest version. If you decide to build Wine from the source package, simply open an xterm, enter your new wine-x.x.x directory and run ./tools/wineinstall (as a normal user). Answer the prompts, then relax and let the Wine installer do its stuff.

After installation, run the notepad.exe file included with the distribution:


wine $HOME/c/windows/notepad.exe

If the familiar editor appears, Wine is ready for use. Now you can try to run some Windows music and sound applications.

System requirements and build procedures may change from version to version, so if you decide to build Wine yourself, be sure to read the README and follow the recommended installation instructions included with the package. The version used in this article is Wine 0.9.6, released on January 20, 2006.

Audio and MIDI Support in Wine

Linux-based musicians have two good reasons to take an interest in Wine's sound support. The first reason is applications. Some Windows sound programs have no equivalent in native Linux versions, and the possibility of running those programs under Wine is very attractive. The second reason involves libwine. That library is a key component in projects that provide support for running Windows VST/VSTi audio synthesis/processing plugins under Linux. In this article, I focus only on running applications under Wine, but readers interested in learning more about the Linux + VST connection should check out the Web page (see Resources) for details regarding the FST (FreeST) Project.

At the user level, the heart of Wine's audio support can be found in the ~/.wine/config file. Here's the relevant section of that file as it appears in my Wine configuration:


[WinMM]
; Uncomment the "Drivers" line matching your sound setting.

"Drivers" = "winealsa.drv"    ; for ALSA users
;"Drivers" = "wineoss.drv"     ; default for most common configurations
;"Drivers" = "winearts.drv"    ; for KDE
;"Drivers" = "winejack.drv"    ; for the JACK sound server
;"Drivers" = "winenas.drv"     ; for the NAS sound system
;"Drivers" = "wineaudioio.drv" ; for Solaris machines
;"Drivers" = ""                ; disables sound
"WaveMapper" = "msacm.drv"	 ; do not change !
"MidiMapper" = "midimap.drv"	 ; do not change !

The WaveMapper and MidiMapper are required; they emulate the native Windows MCI (Media Control Interface) drivers that provide the standard commands for controlling multimedia devices and playing and recording multimedia data files.

Wine provides audio interface drivers for OSS/Free (the default), ALSA, aRts, JACK and NAS (a network audio system). You can select a new driver at any time, but you will need to restart Wine. Your choice of sound driver may be determined by the application. In my experiences, some programs worked only with the OSS/Free driver, others worked only with ALSA, and some worked well with either one. I was especially excited to see a JACK driver listed, but as far as I could tell, the JACK driver is broken in this release—a reminder that Wine is still beta-stage software.

Running Sound Apps under Wine

Due to space considerations, it is not possible to describe the installation and configuration details fully for the programs I've reviewed here. I wanted to test Wine's audio performance without going to heroic measures, employing only its default settings as far as possible and doing little more than selecting an appropriate sound driver as described above. I provide a brief description of each tested program, and then I relate my experience with running the program under Wine. Note that these tests were made mainly with the demos and examples packaged with the programs, and my conclusions are necessarily provisional and incomplete.

AudioMulch

Ross Bencina's AudioMulch is a sound synthesis and music composition environment with a unique interface and a strong emphasis on real-time performance capabilities.

Figure 1. AudioMulch

AudioMulch divides itself into three main panels (Figure 1). The left-most panel is a graphic instrument design and connections center—a canvas upon which you place and connect AudioMulch's various synthesis and processing modules. Next to this panel, we see the controls for the parameters of your selected modules. Underneath it all are the automation controls—a stack of breakpoint displays that control module parameter changes in real time.

Everything in AudioMulch is designed for real-time updates. I verified this assertion by loading an example file and randomly altering its controls and breakpoint displays at random. AudioMulch easily kept up with my changes, and Wine's audio never broke or stuttered. Very impressive!

I tested AudioMulch version 1.0rc2. It installed easily and was ready for immediate use. I loaded and ran every example included with the package, and each one performed perfectly with Wine's OSS/Free and ALSA drivers. Potential users should note that AudioMulch is shareware, not freeware, and the registration fee is $50 US. If you want to test-drive the release candidate, be aware that it will expire on the date indicated at the AudioMulch Web site.

Band-in-a-Box

Band-in-a-Box is an automatic accompaniment generator. The program creates a virtual backing band that interprets a series of user-defined chord changes according to a selected “style”. A Band-in-a-Box style is a set of rules governing quantifiable aspects of a particular music performance style, such as country swing, rhumba, waltz time, blues shuffle and so forth. When the user clicks the Play control, the program processes the chord changes by the style rules, generates a real-time performance stream and plays it with your preferred MIDI synthesizer. Voilà, you have your dream rehearsal band.

Figure 2. Band-in-a-Box

Band-in-a-Box is the reigning king of the auto-accompaniment software domain. Need to play those changes more slowly? No problem, Band-in-a-Box is a MIDI-based program, so you can adjust the tempo to whatever speed is most comfortable. Want those chords played in a different meter or rhythm? Still no problem, Band-in-a-Box supplies hundreds of styles to choose from, and if you don't like what's included with the base package, you can design your own or access literally thousands of styles and arrangements created and freely distributed by the program's vast base of users and style developers. Don't like the instrumentation for a particular style? Change it on the fly, add or subtract players from the band, or mute parts at will.

I downloaded the most recent Band-in-a-Box demo from the program's Web site and installed it with wine bbw2004demo.exe at an xterm prompt. I entered my new ~/c/bbdemo directory and ran wine bbwdemo to start Band-in-a-Box. I loaded an example style from the File/BB Song dialog, pressed the Play control and watched as the program apparently played the loaded style. Alas, there was no sound. I reconfigured the default MIDI output to go to the Emu10k1 synthesizer on my SBLive Value sound card, pressed Play, and behold, I had sound. I tested other built-in styles, all perfectly happy to perform as though they were playing under Windows itself.

I discovered only one potentially serious difficulty with the demo version. I configured the MIDI input device to the hardware port on the SBLive, but Band-in-a-Box would not record what I played on my MIDI keyboard. The program's virtual keyboard display worked perfectly, but I prefer to record directly from the hardware interface, so perhaps it's time to fire up the Wine debugging tools.

Band-in-a-Box is strictly commercial software, with a list price of $88 US for the Pro Edition. The demo is, of course, free.

Band-in-a-Box has the honor of a place in the Wine AppDB Gold 10, a selection of Windows applications that has demonstrated consistently excellent performance under Wine. By the measure of my simple tests, I must concur with that rating. Band-in-a-Box is an excellent music application that runs beautifully under emulation. Consider it double-plus recommended.

Buzz

Buzz combines tracker-style pattern and sequence editors with a powerful audio synthesis/processing environment to form an all-in-one package for sound design and music composition. No other music software is quite like Buzz.

I had tried installing Buzz unsuccessfully by following the normal instructions for Windows users, but reading over the comments on the Wine AppDB, I discovered that I needed an installation package different from the one available on the official Buzz Web site. Here's what I did to install and run Buzz successfully under Wine:

  • Downloaded the package found at buzzdistro.cjb.net.

  • Ran wine buzz_base.exe to install the program.

  • Changed directory to ~/c/Program Files/Buzz.

  • Ran wine buzz. (Honest!)

And indeed, as shown in Figure 3, Buzz runs under Linux.

Figure 3. The Wine Buzz

Buzz synthesis and processing modules are known as machines in Buzz-speak. The default package includes dozens of immediately useful machines, and hundreds more are available from the Buzz community. Like many other synthesis applications, Buzz uses a “patching” metaphor to roll your own audio processing network—that is, you link machines together with virtual patching cables to create a data-flow diagram representing your network.

Figure 3 displays some opened machines. Whenever you want to manipulate a machine's parameters, simply double-click on the machine box, and its control panel appears. You can control all parameters in real time with the mouse or with MIDI controllers.

Buzz's composition interface closely resembles a typical tracker interface (Figure 4). A scrolling display represents beats within a selected pattern length. Audio events (typically sampled sounds) are entered on the desired beat lines anywhere within the pattern. Completed patterns are then linked together to form a song sequence.

Figure 4. Buzz Tracker Interface

By the way, the package available from the link above is not the only Buzz-for-Linux package available. If that one doesn't work for you, try the bundle available from Flavor8 (see Resources). Peruse the hints and tips while you're there, and be sure to check out the demos made with Buzz on Linux.

Buzz is much too rich an application to treat in any depth here, so I simply recommend playing and studying some of the demo files included with the distribution. The package includes extensive documentation, and a very active community of users can be reached through the main Buzz site. Buzz is freeware, and though it's a shame that no native Linux version of Buzz exists (or ever will—the source code has been lost), in lieu of a native version, you can still enjoy a pleasant Buzz with Wine. Sorry, I just had to say it.

Some Conclusions

In the course of writing this article, I also tried to run many sound and music programs that failed in various ways. Native Instruments' very cool FM7 loaded and appeared to work (it received MIDI input from my keyboard), but no sound came from it. NI's Tracktion installed and ran, but its audio output was terribly distorted. The latest Finale demo wouldn't install at all, and the Reaktor 5 demo installed but crashed when started. Of course, all these programs run perfectly well in their native Windows environment, which is simply to say that Wine is still in development.

I also solicited the Linux Audio Users mail list regarding opinions of and experiences with the use of Wine with Windows audio applications. As might be expected, input varied. Reports included whole or partial success with applications such as Native Instruments' Battery and Kontakt, the Renoise tracker and the demo for Guitar Pro 3. I plan to put up a Web page that will list Windows audio/MIDI applications that have been tested with Wine, so if you have any notable successes or failures to report, please contact me at dlphilp@linux-sound.org.

Hopefully, Wine's JACK driver will work again in a stable version of Wine by the time this article is printed. JACK is the present and future of Linux audio, and it would be a definite Good Thing for the Wine Project. A virtual ASIO driver might be a helpful addition too.

Ideally, native Linux applications would replace their Windows counterparts, but until that happy time, Wine may prove to be a viable alternative to dual-booting or setting up secondary machines. It may lend a new lease on life to your software investment, and hopefully, it will work well enough to let you run those needed music and sound applications that still have no Linux equivalents.

Resources for this article: /article/8886.

Dave Phillips is a musician, teacher and writer living in Findlay, Ohio. He has been an active member of the Linux audio community since his first contact with Linux in 1995. He is the author of The Book of Linux Music & Sound, as well as numerous articles in Linux Journal. He can be reached at dlphilp@linux-sound.org.

__________________________


Special Magazine Offer -- Free Gift with Subscription
Receive a free digital copy of Linux Journal's System Administration Special Edition as well as instant online access to current and past issues. CLICK HERE for offer

Linux Journal: delivering readers the advice and inspiration they need to get the most out of their Linux systems since 1994.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
JK Fertighaus's picture

Great article for Apple users

On November 13th, 2006 JK Fertighaus (not verified) says:

I am a long-year apple-fan. I dont use it for professional use in music-business, but the band-in-a-box program is a great piece of work, done by apple. So especially this part of the article was interesting for me. :-)

Anonymous's picture

I have huge problems with

On September 2nd, 2007 Anonymous (not verified) says:

I have huge problems with wine first you can't run two sound programs at once. I can't say output an MP3 with one wine program and try to record it at same time from Linux by listening to the sound card output. Also the worse problem is I have a program that outputs MP3s and I can't play them in LINUX because it says the file is EXECUTABLE type wine. If I setup this same program on Windows box, it would output MP3s. I can take those MP3s to my Linux box and do whatever I wanted. Now with wine it doesn't work. Wine must put some binary output in the file itself saying it is an executable file hence unusable MP3 in Linux.

oldman's picture

Good article - bad premise

On June 24th, 2006 oldman (not verified) says:

It wonderful to see that this kind of work is being done, but without official support from the vendors of the packages in question, one os SOL if there are any problems that the community cant solve.

Its simply easier t run these natively.

Anonymous's picture

*easier* hmm.. lot's of

On February 13th, 2007 Anonymous (not verified) says:

*easier*

hmm.. lot's of great cliches come to mind, great things, patience, nothing good comes, something or other.

you are right, though. i just want to run things out of pride for my OS. i don't actually want any of these proprietary beasts; i just want to be all like, "say I can't run Reaktor in Ubuntu, go ahead." Muuuhaaahaaa

"make my day." it's really going to be great when people are lagging along on Vista with insane resources and I speed by in some light-weight little linux rig with a P4.

Sorry to be a 'fanboi' as I have only recently learned the word. I always said that I was a partisan.

a friend of the troll in the basement's picture

worth doing sometimes - not always

On September 13th, 2006 a friend of the troll in the basement (not verified) says:

Oldman has a valid point, although there are still times when running windows sound apps under Linux is worth it.

For everyday computing, such as web browsing, mail, viewing movies etc. I use Linux. This is because Windows committed suicide on me several times, forcing me to reinstall it, and all my applications, each time. If I want to take a break and dabble in some music making I don't want to reboot into Windows. Audiomulch works under wine without any hastle and I have never known it to crash. One should also remember that Microsoft is making it increasingly hard to update unlicensed copies of its current operating systems. If you want an MS OS and you don't want to pay for it, then sooner or later you will probably have to restrict yourself to software that will run on Windows 2000.

One thing Dave Phillips didn't mention is that a great many VST plugins work under Linux, but outside the wine environment proper, using various wrappers such as dssi-vst. Most of the ones I have tried have also worked within audiomulch.

If you are setting up a dedicated studio and your tool of choice is cubase, ableton or whatever, and you don't want a lot of hastle, then of course you should choose an OS that won't give you any nonsense. As Dave said, at the moment those kind of tools don't work at all within Wine, and even when they begin to, there will probably be some pain involved. Then again, even though it will be harder work to get these to run flawlessly on Linux--Audiomulch's developer has a much friendlier attitude to Linux than the companies that make the other stuff--I suspect that this will indeed happen sooner or later.

That said, if you want to use ableton or whatever then you should do it on a mac rather than windows both because the audio latency is usually lower and because of all the other problems you get with windows that most windows users already know too well.

If, on the other hand, you are willing to do the nerd work, you may find it very useful to use windows audio apps alongside traditionally unix ones (of which there is a very long tradition) in a Linux environment. One reason is that it is possible to achieve very low, glitch-free, audio latency, even under very heavy system load. There is also a huge potential for working over a network in ways that tend not to happen under windows or mac os. Some of these, such as clustering, don't apply directly to windows apps and plugins running in wine or a VST wrapper, but others, such as syncing low latency audio backwards and forwards across a network, certainly do.

Anonymous's picture

Amongst all of the flaming

On February 13th, 2007 Anonymous (not verified) says:

Amongst all of the flaming going around on the subject of linux audio, you have just so happened to put my thoughts into words, when I'm giving other people advice.

Personally, linux and I are recently married and enjoying a long honeymoon after having a high school fling years ago. Cheating on my operating system is not negotiable. Whatever the limitations, I plan to go without a few impressive high-level audio manipulation GUIs and stick with my linux box through thick and thin.

Post new comment

Please note that comments may not appear immediately, so there is no need to repost your comment.
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd> <i> <b>
  • Lines and paragraphs break automatically.

More information about formatting options

Newsletter

Each week Linux Journal editors will tell you what's hot in the world of Linux. You will receive late breaking news, technical tips and tricks, and links to in-depth stories featured on www.linuxjournal.com.
Sign up for our Email Newsletter

Tech Tip Videos

From the Magazine

December 2009, #188

If last month's Infrastrucuture issue was too "big" for you then try on this month's Embedded issue. Find out how to use Player for programming mobile robots, build a humidity controller for your root cellar, find out how to reduce the boot time of your embedded system, and if you're new to embedded systems find out the basics that go into one. You can also read about the Beagle Board, the Mesh Potato and a spate of other interestingly named items. And along with our regular columns don't miss our new monthly column: Economy Size Geek.


Read this issue