WaveShop 1.0.14 fixes an issue with playing surround audio files in Windows 7. In Windows 7, an audio file with more than two channels wouldn't play unless it had a non-zero channel mask with one speaker assigned to each channel. A zero channel mask indicates default speaker assignments and should work, but in Windows 7 it caused a DirectSound error. WaveShop now detects this case and synthesizes a channel mask.... read more
WaveShop 1.0.13 has a more modern appearance, and also fixes some minor bugs. An updated Aero-style screen shot is available here and is enclosed below:
The major change is that WaveShop now uses Common Controls 6.0, AKA the XP theme. This gives the app a more modern appearance, and makes it more compatible with Windows 7 and Aero. This change also fixes an otherwise unsolvable problem with list control column resizing in Windows 7; for details, see this post on the WaveShop development blog.... read more
By popular demand, WaveShop now supports metadata editing. To display or edit metadata, use Edit/Metadata or Shift+M to launch the Metadata dialog.
WaveShop supports a fixed set of metadata, listed in the table below. Some file formats don't support metadata, or only support a subset of these tags. FLAC and MP3 support them all, and Ogg/Vorbis, WAV and AIFF support most of them. For MP3 files, both ID3V1 and ID3V2 tags are supported.... read more
WaveShop 1.0.11 adds equalization, compression, and other effects, via LADSPA plugins. The WaveShop download now includes five filters (DJ EQ, triple parametric EQ, high pass, low pass, and band pass), a limiter, and mono and stereo compressors. Many more plugins (92 in all) are available from the WaveShop download page, in both 32-bit and 64-bit versions, thanks to Steve Harris and other contributors.... read more
An excellent and long-lived collection of audio plugins by Steve Harris inspired me to add a LADSPA host to WaveShop, as a means of providing equalization, compression, and other effects. A 64-bit host is useless without 64-bit plugins however, so after a fruitless search, I undertook my own port, using the 0.4.15 source. My port improves on the Audacity team's previous effort in several respects:... read more
By popular demand, WaveShop 1.0.10 adds channel selection, which lets you operate on any subset of the channels in a multi-channel audio file. Only certain commands support channel selection. For details, see the manual page.
Here's a screenshot of channel selection in use on a surround file; in this example, only the two rear channels (Back Left and Back Right) will be boosted:
... read more
WaveShop 1.0.09 adds record options for one-touch and sound-activated recording, plus frequency sweep generation and clip detection in level meters. Recording hot keys and scheduled recording are also supported.
WaveShop is a fast and lightweight audio editor for Windows. Unlike many similar apps, WaveShop is bit-perfect, meaning samples aren't altered unless they need to be. Waveshop's features include peak, RMS and spectral analysis, clip detection, normalizing, amplifying, fading, sample rate conversion, surround speaker assignment, audio generation, and unlimited undo.... read more
By popular demand, the latest version of WaveShop (1.0.8) supports recording, and not only in mono/stereo, but also in surround. Because WaveShop records directly to disk, the duration is unlimited except by available disk space. Recordings exceeding 4GB are automatically converted from WAV format to RF64 format, avoiding WAV's 4GB limit. The record dialog includes level/peak meters and supports pause/resume. Basic multitracking is achievable by enabling "Sync playback".... read more
By popular demand, the latest version of WaveShop (1.0.7) can open AAC files, and MP4 files containing AAC audio, via libfaad2. The AAC import can generate 16-, 24-, or 32-bit PCM, and supports downmixing surround to stereo. This version also adds context-sensitive help, and an option to specify the location for temporary files. The latter is useful if the system temporary folder has insufficient free space, e.g. because the OS is installed on a small partition.... read more
By popular demand, the latest version of WaveShop (1.0.6) adds MP3 encoding via LAME. Note however that libmp3lame.dll is NOT included in the WaveShop download, so you'll need to obtain it, e.g. from RareWares, or build it yourself if you prefer. Complete directions are given here.... read more
The latest version of WaveShop (1.0.04) features both static and real-time frequency spectrum analysis. The static analyzer is accessed via the audio menu (Audio/Spectrum), while the real-time analyzer is accessed via the Spectrum bar (View/More Bars/Spectrum). Both are extensively configurable. The real-time analyzer supports multiple plot styles, averaging, and peak hold/decay.
... read more
This week I'm working on spectral analysis, and it's coming along. I'm using Kiss FFT to do the real transform, but that only gets me about half the way there; the rest is all scaling issues, window functions, plumbing, wrapping, etc. The goal is a Spectrum dialog with a graph, similar to the existing RMS statistics/histogram dialog. Parameters should include:... read more
WaveShop 1.0.03 features peak meters, and optionally displays channel names in the view (tip of the hat to Zak Hipp).
The meter bar fully supports surround audio, by giving each channel its own meter. If there are too many meters to fit, widen the bar, or horizontally scroll the meters. Note that the meters are only active while audio is playing, and only represent WaveShop's output, not your entire system's output. To show or hide the bar, use View/More Bars/Meter Bar.... read more
I did some research on localization, and here's a summary of what I learned. The good news first: Because WaveShop is written using MFC, things are a bit easier than they otherwise would be.
MFC apps can load a different language automatically, by loading a "language satellite resource DLL". This is a special DLL containing no code, only resources (strings, menus, dialogs, etc). Windows automatically looks for a satellite DLL matching the user's current language. The DLL has to follow a specific naming convention, like this: AppNameXXX.dll, where XXX is a country code. For example if the current language is Italian, the DLL must be called WaveShopITA.dll; for French it must be called WaveShopFRA.dll, etc. If no language DLLs are found, Windows defaults to the app's native resources (English in my case). I tested this and it works fine.
That's the good news! Now for the bad. The hard part is actually creating the localized resource DLL.
Some resources are easier to localize than others. The difficulties are mostly caused by text changing length. It's relatively easy to localize resources for which length doesn't matter. Easier cases include isolated strings, and menus. But there are many other types of resources.
Dialogs are much harder. You can't just write a script to blindly replace all the English text in a dialog with Italian text. If you do, what happens is this: when you display the dialog, in every case where the Italian text was longer, the text is truncated. In theory you can use a resource editor to manually edit all the dialogs one by one, widening things as needed so the text fits nicely, but this a huge and painful effort. Apps do exist that supposedly help solve this problem, but all the ones I've found cost thousands of dollars.
Then there are more subtle issues. The resource also includes the accelerator keys, e.g. Ctrl+O for Open, Ctrl+S for Save, etc. These are all language-specific too. Maybe the word for Save in Italian starts with S, or maybe it doesn't. The point is that to do the job correctly, all the accelerators should be refactored, so that the assigned keys make sense in the target language. This is no longer translation per se, this is interface design work.
The same goes for the mnemonics. These are the little underlines that appear when you press the Alt (Menu) key. In a well-designed app, every single menu item has a unique mnemonic, and so does every dialog item. That's a lot of mnemonics! I spend countless hours on mnemonics. Some of the menu mnemonics are standardized, e.g. in English Alt+F+S should be File/Save, etc. but most of them are app-specific. So all the mnemonics should be refactored too. More design work.
There are also subtle problems even in the easy cases. For example isolated strings are supposedly easy to localize, but it depends on what they're being used for. Strings that only appear in message boxes are easy, because message boxes auto-size themselves to fit the text. But what about strings that appear in a drop-down list? Drop-down lists normally have a fixed width, and maybe the new strings are too wide, so again they're truncated, and there's no way to prevent this except to widen the drop-down list, which probably also means widening the dialog that contains the drop-down list. How do you even discover such cases? Only by careful testing. So much for an automated solution!
One approach is to make all the dialogs and controls much bigger than they need to be, and space all items far enough apart, so that any language would be likely to fit. Judging by appearance, I guess that's what Audacity does, and probably Firefox too. But it looks terrible! Notice how much space is wasted: big, fat, mostly empty dialogs hogging screen space needlessly. But it's the price you pay, in order to avoid customizing all your dialogs differently for each language.
But even if you solve all of these problems, there's another much more serious problem. What happens the next time I update the app, adding new resources? If the app is run with the older language DLL, for sure it doesn't work correctly, and it probably crashes. Great! So every time I add functionality to the app, the language DLL(s) must also be updated. Multiply this times N languages, and this becomes a MAJOR commitment. Another related problem: how exactly do you update a language DLL? You don't want repeat all the previous work, you only want to add the new stuff. But how do you know what was added? To solve that problem we need special localization software, again costing big $$$.
So I'm sorry to say: localization is really a PITA.
PS Feel free to repost this anywhere, maybe some kind reader will offer a nice elegant (and free!) solution.
Aggressive development on WaveShop continues. The latest version includes high-quality sample rate conversion and MPEG audio decoding, plus easy concatenation of audio files. The list of changes is enclosed below.
WaveShop is a free, open source, fast and lightweight audio editor for Windows. Unlike many similar apps, WaveShop is bit-perfect, meaning samples aren't altered unless they need to be. This is useful for patching a finished master without corrupting its dither. WaveShop is a native Windows app, includes complete documentation, and supports most audio file formats. It's available with or without an installer (i.e. it can be a portable app), and in both 32-bit and 64-bit versions. If you would like to contribute to WaveShop, e.g. by coding, testing, documenting or translating, please contact me!... read more
The next version of WaveShop will have MP3 support. It's already in beta test and should be available in a few more days, so stay cool. The next version will also have sample rate conversion, and a simple method for concatenating files.
The latest release of WaveShop supports most common file formats, including AIFF, FLAC, Ogg Vorbis, etc. See the complete list:
This is a major update. Any testing and/or feedback will be greatly appreciated! File formats other than Wave are supported thanks to the sndfile library (libsndfile-1.dll), which is included in all downloads.
http://waveshop.sourceforge.net/download.html... read more
WaveShop is a fast, lightweight audio editor for Windows. Unlike many similar apps, WaveShop is bit-perfect, meaning samples aren't altered unless they need to be. This is especially useful for patching a finished master without corrupting its dither. Waveshop's features include peak and RMS analysis, clip detection, normalizing, amplifying, fading, speaker assignment, audio generation, unlimited undo, and more. WaveShop is unusually fast because it does all audio processing in memory.... read more
WaveShop is an audio editor for Windows XP/Vista/7. Unlike many similar apps, WaveShop is bit-perfect, meaning samples aren't altered unless they need to be. Editing a portion of an audio file only affects that portion; the rest of the file is untouched. Blocks of audio can be cut and pasted without changing their contents at all. This is especially useful for patching a finished master without corrupting its dither. Waveshop's features include peak and RMS analysis, clip detection, normalizing, amplifying, fading, speaker assignment, audio generation, unlimited undo, and more. WaveShop is also very fast because all processing is done in memory.... read more