Running Sound Applications under 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.
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.
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.
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 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.
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.
Similis sum folio de quo ludunt venti.
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...
- The Ubuntu Conspiracy
- A First Look at IBM's New Linux Servers
- Vigilante Malware
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- Vagrant Simplified
- Libreboot on an X60, Part I: the Setup
- System Status as SMS Text Messages
- Dealing with Boundary Issues
- Bluetooth Hacks
- Non-Linux FOSS: Code Your Way To Victory!