last updated by matt@maddogsw.com, 3/14/2000
Jump to: [ maddog software home ] [ setsound home ]
A: This is the brain-dead Windows installer, which is built into Windows. I use it because it's built into Windows, so it keeps the download size small. Unfortunately, it's braindead, and more often than not, it decides it can't find files that are in the directory it's already in, and asks you where to find them! Worse, it brings up a confusing dialog mentioning a "disk provided by your computer manufacturer." ???
You can almost get around this by just typing . (a single period) into the box where it asks for the directory, and then clicking OK.
If that doesn't work, type the path to the directory that you're installing from (where you unzipped SetSound.zip) and click OK.
If you still can't install SetSound, you can always use it by dragging and dropping .wav files onto it.
A: If you've installed WinAmp, or possibly other programs that can play .wav files, the location of sound-playing applications in your registry can be different than what SetSound expects.
A lot more information on WinAmp, including possible workarounds, is in winamp.zip which is included in SetSound.zip. If you don't care about the details of why WinAmp makes things more difficult, just go there. If your problem is not specifically WinAmp, or you're curious, read on.
If you've looked at how file->application associations are stored in the registry, Windows uses a two-tiered scheme. Using .wav as an example (what a coincidence!): .wav points (normally) to "soundrec", then you have to look up soundrec, where there's a whole bunch more information (including the shell extensions defined for that file).
So the setsound install script puts all the necessary info below HKEY_CLASSES_ROOT\soundrec.
Unfortunately, anything I put below the .wav key just gets ignored, since that's just used as a pointer to an application key. IMHO this is a design flaw in the Windows shell architecture.
Unfortunately, when you install recent versions of WinAmp, they make themselves the default .wav player -- not the polite way, by modifying the existing key for .wav files (soundrec), but by moving it elsewhere (modifying .wav to point to Winamp.File). IMHO this is a bug/design flaw in Winamp. For example, it breaks .wav extensions that are already installed at the time when you install Winamp! And they didn't have to do it this way. But they did.
Unfortunately, setsound uses a dirt-simple installer (just that little .inf script) that doesn't attempt to analyze your system and find out what works -- it just puts the registry info at the default location, under the soundrec key.
So the upshot of all this is: if you copy the information from HKEY_CLASSES_ROOT\soundrec\shell\setsound to HKEY_CLASSES_ROOT\Winamp.File\shell\setsound, then setsound will work (but it will also show up on the context menu for anything else associated with Winamp, ie .mp3, even though these file types are not appropriate for setsound).
What I do is not use Winamp's installer to associate Winamp with wav files, but manually change HKEY_CLASSES_ROOT\soundrec\shell\play\command to point to Winamp, and HKEY_CLASSES_ROOT\soundrec\shell default value to play. This is how I think Winamp should do it. The import of this is that .wav files are defined as soundrec files that are played by winamp (and double-click means play), instead of redefining them as "Winamp file". In winamp.zip, I've provided a registry patch that does exactly this.
If you're reluctant to mess with your registry, you can always use SetSound without having it on your .wav context menus, by dragging and dropping .wav files onto it.
A: SetSound was not designed to be a standalone app; ideally you're supposed to pick the .wav file you want to work with, right-click it, and choose SetSound. Or you can drag the .wav file and drop it on SetSound. (This isn't so much a missing feature in SetSound, as an admission of the limits of its usefulness... if you're happy choosing an app, browsing through a list of events, and then selecting a sound, you might as well use the Sounds control panel you already have. SetSound was intended for situations where you'd rather select the .wav file first, then what to do with it.)
The confusion arises because older versions of SetSound complain that it's not installed properly, if you try to run it by itself (for example, double-clicking on the SetSound program). What it should have said was that it wasn't being used as intended, not that it was misinstalled. In any case, that message was confusing so I've changed that behavior.