[ BitWizard B.V. ] [ BitWizard B.V. ]


What is Nightingale?

Nightingale is a simple sound-editor. It was written when I found that I couldn't reasonably load a 300Mb wav-file in any sound-editor to cut it up into pieces.

Starting Nightingale for the first time on a 300Mb file takes about 2 seconds. During that time the condense task will condense a few minutes worth of music to 0.4% of the original size. If you're quick with the controls you can probably catch the condenser task in the act. Condensing an hour worth of music takes less than a minute. And the condensed file is kept (at 0.4% of the original size it's not a serious attack at your disk space!) between invocations. The second time you don't need to wait for the condenser task to run!

Nightingale is distributed under the GNU General Public License. See the COPYING file for details.

Where to get Nightingale

You can get Nightingale from the BitWizard FTP site at ftp://ftp.bitwizard.nl/nightingale/ .

The source tarball is a whopping 14k. It used to be five, but as you know, GNU programs are always very bloated and memory-consuming. I included the GPL. Yep. Fourteen kilobytes now.


Nightingale uses the Xforms library. You need this library for it to compile. Besides that, it plays audio using an external player program. I use "esdcat", but you can substitute any other program.

Feel free to report problems. We can then try to iron them out.

Compiling Nightingale

Compiling Nightingale should be as easy as "make". If it is harder for you, your computer is misconfigured, or there is a problem with Nightingale that we should take care of. Please report this kind of problem.

Bugs and enhancements in Nightingale

This was a quick hack. I wanted to be able to split a large WAV into smaller parts. I spent a total of 20 hours on Nightingale, and then cut the one hour WAV I had into the composing songs in 15 minutes. It's served its purpose. However, changing just a few minor things will make this a very general and useful tool.

For example, "save" is now a special routine in the code. It shouldn't be. It should simply be a "write to program", just like "play". So, maybe save and "play" should be merged. The buttons on the menu are now hard-coded. These should come from a small configuration file. The "playselection" button would then be defined with something like button playsel S esdcat Specifying that a button called playsel has the Selection as input, and uses the esdcat program to function.

the Save selection button would then be button savesel SF cat > $1 or something like that. It would then be easy to add a "save as mp3" button: Just change the program that is called to save the file.

It was a quick hack. For example, it probably doesn't handle loading a second file. (i.e. when you're done with one source file, quit before loading a second file...) Stuff like that. Feel free to submit patches. It also doesn't do anything but 44100Hz stereo samples. Oh, and it always displays one of the channels, completely ignoring the other channel.


Nightingale was written by Roger Wolff.

BitWizard is a registered trademark