Plug-ins: Extending Your Reach

Just as the capabilities of programs like Adobe Photoshop or Netscape Navigator can be extended through the addition of third-party extensions called “plug-ins,” so can many MP3 players. The beauty of the plug-in model is that the developers of the MP3 application get to have their product’s capabilities extended indefinitely by the contributions of the larger developer community, and a cottage industry can be established for plug-in programmers. As a user, you’ll find that your MP3 player may actually be far more capable than it originally appeared, thanks to these additions. While skins let you customize the look and feel of your MP3 player, plug-ins let you extend its actual functionality. Unlike skins, however, which are generic enough to work across multiple operating systems and players, plug-ins must be written specifically to work with each MP3 player. While you must have programming experience to write plug-ins, anyone can use them. Some are free, some are shareware, and some are available only by paying a fee up front.

Warning

Some MP3 players, like WinAmp, are built modularly, around the very concept of plug-ins. Because much of these programs’ functionality is derived from the presence of certain crucial plug-ins, you should not delete the plug-ins that come with the WinAmp distribution. You may very well end up disabling your player’s ability to export any sound at all.

There are a seemingly infinite variety of third-party plug-ins available, but they all fall into a few overarching categories:

Input plug-ins

Allow your player to play audio file formats that are not built into the player itself, or to accept signals from external devices such as keyboards or stereo components.

Output plug-ins

Allow your MP3 player to export signals to other audio file formats.

DSP/Effects plug-ins

Let you apply any number of audio special effects, such as distortion, echo, reverb, and more.

Visualization plug-ins

Perhaps the most popular of the lot, let you “see” your music in displays far more sophisticated and psychedelic than the simple visualizers built into most MP3 players.

Other plug-ins

Let you do things that aren’t easily categorized, such as handling incoming signals from universal remote control units.

The best place to find plug-ins for your MP3 player is usually at that MP3 player’s web site. You’ll also find a good cross-platform plug-in collection in the Software section at http://www.mp3.com and other popular MP3-related web sites. While the specifics of plug-in installation and configuration differ greatly from one player to another, you’ll almost always need to install plug-ins in a subdirectory of the MP3 player’s installation directory called “plug-ins” or “plugins.” In most cases, you should not create a new subdirectory for each downloaded plug-in under the plugins directory (yes, this is inconsistent with the skins installation model). WinAmp plug-ins are stored in dynamically linked libraries , or .DLLs. To access or activate a given plug-in, try right-clicking your MP3 player’s interface or looking for a Plug-ins menu. In WinAmp, just tap Ctrl+P to bring up the Preferences panel and expand the Plug-ins section of the hierarchy. To configure any individual plug-in, double-click its entry in this panel, as shown in Figure 4.9. Because most plug-ins are actual programs that run in conjunction with the MP3 player itself, most of them sport their own configuration interface.

Note

Before starting to download and install third-party plug-ins, you should spend some time experimenting with the collection of pre-installed plug-ins, just to familiarize yourself with the huge number of options already at your disposal.

Double-click any entry in WinAmp’s Plug-ins preferences panel to launch a configuration panel specific to that plug-in

Figure 4-9. Double-click any entry in WinAmp’s Plug-ins preferences panel to launch a configuration panel specific to that plug-in

Without question, the greatest number of plug-ins are available for WinAmp; at this writing, there were more than 140 WinAmp plug-ins available at http://www.winamp.com/plugins/, with more being added on a regular basis. That site, by the way, also includes a category called “Best Plug-ins,” containing those deemed by WinAmp’s staff to be of the highest quality or usefulness. You may as well start there. Let’s look at a few of the most popular WinAmp plug-ins available, keeping in mind that plug-ins for other players and other operating systems perform similar functions but aren’t available in such large number or variety.

Input Plug-ins

This category includes plug-ins designed to let your MP3 player handle arbitrary file formats and signal types as input. You’ll find input plug-ins that let WinAmp handle MIDI, MPEG, Waveform, and CD/Line input, for example. Double-click any of these for further options relating to the way these input streams are handled. Most important for MP3 players is, obviously, the MPEG input plug-in. Owners of older machines and crappy sound cards will find a number of options here that let you adjust the performance of the MPEG decoder to use fewer resources. All users will appreciate being able to customize the way song titles and artist names are displayed as they’re read out of each file’s ID3 tags. If you have a very slow or eternally busy hard drive, you may get better MP3 performance by setting the Full File Buffering size to a number higher than the default of 128 K (a buffer here is simply a space in program memory dedicated to holding audio data before it’s processed; by using a larger buffer, you guard against the possibility of skipping audio due to the hard disk’s read head not being able to gather data from disk fast enough to satisfy the player). Streaming Data Buffers will be covered in Chapter 8.

If you start looking around for third-party input plug-ins, you’ll find enablers that let you play obscure formats like sound tracks ripped from video games, plug-ins that let you watch AVI movies, plug-ins that work in conjunction with radio tuner cards, listen to high-quality AAC or VQF files, Amiga SoundTracker files, or the ever-popular RealAudio file format. Each of these will come with its own documentation and unique preferences/settings panels.

Output Plug-ins

Output plug-ins function as a sort of bridge that sits between the MP3 player and its output, controlling exactly how that output manifests. For general playback, the basic WaveOut plug-in (for WinAmp) is the only one you’ll need, and you probably won’t need to mess with its default settings unless you’ve got an older sound card (such as SoundBlaster 16), or need to perform some fancy footwork, like reversing the left and right stereo channels.

Converting MP3 to WAV files

One of the most useful alternative outputs offered by the Output Plug-ins collection is the NullSoft DiskWriter, which lets you transform your outgoing MP3 signal into WAV files on your hard drive, rather than to audible signal. All you have to do to enable this function is double-click its entry, select an output directory on your system, and click Close in the WinAmp preferences panel. Playing MP3 files will now result in them being written to hard disk as WAV files. You will not hear output from WinAmp while this is happening, since only one output plug-in can be active at a time, and selecting the Disk Writer plug-in disables the WaveOut plug-in by definition. Of course, the resulting WAV files will be 10-12 times larger than the MP3 files they originate from. Remember to change back to WaveOut when you’re done exporting to disk! You’ll probably use this option a lot if you decide to burn audio CDs from your MP3 collection.

Use Microsoft Audio optimizations

If you want your system to be able to play sounds from multiple sources at once, or if you want to launch multiple instances of WinAmp simultaneously, you’ll need to take advantage of capabilities offered only in later versions of Windows, or installed with upgrades to the Windows MediaPlayer. The technology that allows this is called DirectSound, and WinAmp must be told specifically to take advantage of it. Select the DirectSound output plug-in rather than WaveOut if you want to mix multiple audio streams down into a single output, or if you just want to see what it’s like to play a bunch of MP3s simultaneously. Keep in mind that Windows may still balk if you tax its audio system too hard, since the operating system is not inherently optimized for this kind of maximum audio throughput.

Cross-fading your files

There aren’t a ton of third-party output plug-ins floating around. The most popular is Justin Frankel’s Crossfading output plug-in, which lets you start one MP3 file playing while the previous one is on its way out, with the first one’s volume going down while the next one comes up. In other words, a cross-fade plug-in can make your MP3 audio stream sound as if it were coming off a DJ’s mixing bench. Cross-fade timing is controlled by adjusting the size of the buffer, measured in milliseconds (i.e., a 5,000 ms buffer will give you a 5-second cross-fade). Note that using a larger buffer will help prevent skips on slower machines, but consume more memory.

Note

BeOS users: You can attach cross-fade settings to attributes of individual MP3 files, or to entire playlists at once, without needing a plug-in. Just click and hold on any currently playing track and select “Crossfade settings” from the context menu to adjust the settings for that file. If a playlist is currently being played, just select all tracks in the list and make your fade-out/fade-in changes, then click “Apply to Selection.”

Linux users: If you use Xmms and have a multiple-CPU machine, try downloading the XAudio output plug-in from http://www.xaudio.com and using that instead of Xmms’s default output—you’ll feel the difference in performance!

DSP/Effects Plug-ins

This sophisticated (and often complex) breed of plug-in lets you apply digital signal processing and other effects to the audio signal. While you may enjoy simply tinkering with some of the amazing effects you can produce with these, many of them are geared specifically toward the more high-end user: radio stations, DJs, and sticklers for absolute quality and customization.

Virtual DJ

One of the most amazing DSP plug-ins available is Leif Claesson’s PitchFork, which will literally let you treat your MP3 collection as if it were a pile of vinyl records, to be cued up, nudged, and synchronized. Pitchfork’s controls are rather complex, and you’ll definitely want to step through the included tutorial if you want to get the most out of the program. Of course, you’ll need to be running at least two instances of WinAmp simultaneously, which means you’ll need to be using the DirectSound output plug-in. If you really want to do it right, you’ll want to have two sound cards installed in your computer, both of them running their line outs into an external mixing board. Needless to say, PitchFork’s hardware requirements are a little beefier than your usual plug-in (but not overwhelming)—you’ll need at least a Pentium 200 and 64 MB of RAM.

Note

If you’re serious about DJing with MP3 files and want something more than a plug-in, check out virtual dj at http://www.virtualdj.com, a complete playlist organization/automation system that handles MP3 files (along with other formats). Linux users may want to check out DigitalDJ, at http://www.nostatic.org/ddj/. BeOS disk jockeys use FinalScratch (http://www.n2it.net/finalscratch/), which uses physical turntables and special records containing nothing but microsecond timing marks—the system depends on Be’s extremely low audio hardware latencies to let DJs “scratch” MP3 files in SoundPlay from the helm of actual turntables.

Normalizing playback

More down-to-earth is another of Claesson’s creations, called AudioStocker. This gem provides a solution to the annoyance of having to reach for the volume control between tracks to compensate for the fact that MP3 files often demonstrate substantially different volume levels. Since most MP3 files are encoded digitally, without signal tweaking by the person doing the encoding, this artifact is due to the fact that different audio engineers and different recording labels tend to record albums at different levels to begin with, for whatever reason. You’ve probably noticed this effect before on your home stereo, but with MP3, where you’re often jumping quickly between tracks extracted from different albums, the effect becomes much more noticeable.

The general term applied to the process of making multiple volume levels peak at similar thresholds is called normalization, and this is exactly what AudioStocker does. AudioStocker’s controls consist of a set of push buttons that let you control the thresholds of the plug-in’s intervention in the output signal. Tell the plug-in how much it’s allowed to amplify a tune, how much frequency balance (equalization) can be applied, and a degree of audio compression (not to be confused with file compression) that can be applied. With a little tweaking, you should be able to get all of your tunes coming out of WinAmp at virtually the same perceived volume.

However, it’s worth pointing out that this normalizing process is bound to result in some degradation of quality. Normalizing usually relies on the fact that the whole track can be examined in advance in order to establish peak levels. Normalizing on-the-fly, though, doesn’t enjoy the luxury of a complete pass—it has to work by trimming the peak volumes and boosting the volume of quiet sections. The final output will therefore differ somewhat from the original by definition. While this is unavoidable in some situations, keep in mind that you’ll always be better off doing your normalizing during the encoding process (from a quality standpoint).

Note

In the future, it may become possible to store relative volume levels in a file’s ID3v2 tags. Players would then be able to examine that data and adjust volume dynamically for each track. No known players were capable of working with ID3v2 tags in this way at this writing.

Other DSP/Effects

Take a look around and you’ll find a number of simpler DSP/Effects plug-ins available for many MP3 players, including modules that let you bend the pitch of the current signal up or down (without speeding up or slowing down the track), modules that let you apply standard effects like chorus, reverb, flange, or echo, and even modules that let you “stack” multiple plug-ins on top of one another, so that you can create cumulative effects.

Note

While not technically a plug-in, WinAmp does offer a cool little output feature that will let you generate pure tones for testing purposes. Turn down your system’s volume control so you don’t accidentally hurt your ears or speakers, then tap Ctrl+L (for Open Location) in WinAmp and enter tone://1000. WinAmp will play a 1kHz tone until you press the Stop button. Of course, you can substitute any frequency you need. If you’d like to save the tone to disk as a WAV file, enable the DiskWriter plug-in in WinAmp’s Output Plug-ins section.

Visualization Plug-ins

This variety of plug-in is probably the most popular because they’re the most fun. If you thought WinAmp’s built-in visualization module was cool, you ain’t seen nothin’ yet. B-b-b-b-baby, you ain’t seen nothin’ yet! These modules analyze the signal flowing out of the player and into the system and run spectrum analyses, mapping changes in frequency and volume to rules that control a visual display. Because there are infinite numbers of ways to construct these rules, the appearance of these visualizers is virtually unlimited. Some of them are soothing, offering effects as subtle as drops of waters landing in a pool, while others can only be described as seizure-inducing, with wild psychedelic light shows emanating from every delta point. While some visualization plug-ins run in small or resizeable windows, others will optionally run full screen, which is perfect for use at parties, or late-night, low-light zombie sessions.

The screenshots shown in Figure 4.10 are of visualization plug-ins for WinAmp, but there are visualizers available for many different MP3 players, and for virtually all operating systems. These screenshots don’t do justice to the experience of seeing these for yourself—you’ve just got to download a few and play with them. While all visualizers come with good default settings, most of them also include settings or preferences panels that let you customize the colors, responsiveness thresholds, and visualization forms. Dig around, turn the knobs, push the buttons, check and uncheck the checkboxes, and drag the sliders around. If you’re a customize-a-holic, be prepared to set aside several hours of twiddle time.

Note

Some visualization plug-ins are very CPU-intensive, and can have a noticeable effect on system performance. You probably won’t want to run visualizers as a matter of course, reserving them for times when you’re not trying to do other tasks in the background while listing to MP3 files. Not to mention the fact that many of these are wild enough to completely distract you from getting any real work done while they’re running!

A few of the many visulization plug-ins available for WinAmp

Figure 4-10. A few of the many visulization plug-ins available for WinAmp

General Plug-ins

The category “general” is really just a nice way of saying “miscellaneous,” referring to plug-ins that do odd-jobs around the house. Did you know, for instance, that you can control WinAmp with a standard, $25 universal remote control? You’ll need to purchase a separate infrared receiver to connect to your computer, and then install a corresponding IR plug-in to process the invisible signals it generates. This is the kind of connectivity that people are talking about when they refer to " convergence”—the computer becoming the center of the home infotainment system. See Ampapod (http://www.v.nu/core/ampapod/) or Irman (http://www.evation.com/irman/) for more information.

Other general plug-ins let you output your current playlist to an HTML file for use with SHOUTcast or icecast, some let you operate WinAmp controls from the Windows TaskBar tray, or even control WinAmp over a local area network (LAN).

Get MP3: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.