This page provides copies of some of the software I've written to process or analyse digital soundfiles. You are welcome to download copies and use them if you wish. Each program includes a text ‘help’ file which you should read before trying to use the program. I have provided a compiled binary so you can use the programs without having to compile them. But I have also included a copy of the source code which is in ‘C’ so you can examine this. You are welcome to modify the programs or convert them for other operating systems if you wish.
Here I have provided two forms of program. One type is for use on RISC OS (RO) computers and are provided as zip archives. The other is for use on Linux machines and are provided as tgz archives. Note that as they stand none of the programs will run on Windows or MacOS as I never use those operating systems. However the RO versions should work using a RO emulator like RPCEmu or VirtualRPC. The Linux versions are provided as ROX applications, but the help file explains how they can be made to work on other Linux setups.
Unless stated otherwise, the applications are all designed to work on basic LPCM WAV files with the common standard 44-byte header. They should work with files that are in mono or stereo, 16 or 24 bits per sample, with sample rates up to 192ksample/sec. Hence they should be useful for all the common sample rates in domestic use.
!WAV_Maker (RO) / WAVChopper (ROX Linux).
This program allow you to chop up a long sound file into smaller segments. This is useful if you wish to edit down a long recording to remove sections and/or divide it into tracks for writing to an Audio CD.
!WAV_Cleaner (RO).
This program differs from the others because it should be able to read WAV files that have extended metadata chunks in the header. It allows you to generate a ‘cleaned’ version with the same sound data payload but with the simple 44 byte standard WAV header. In effect it lets you produce a clean copy which the other WAV applications can then read and understand. I have found it works OK with a variety of types of LPCM WAV file that have added comments and metadata. For example it works with BWF files (Broadcast WAVE Files) and generates a clean copy. But it probably won't make sense of every type of LPCM WAV file as some of them have non-standard or fancy features I have not encountered.
!WAV_Stats (RO) / WAVStats (ROX Linux).
This program generates a statistical analysis of the peak and rms levels found in a WAV file. This is useful for assessing the dynamic range of the recording and to check for possible clipping or other problems. It provides output showing how the level varies with time and also provides histograms of the percentage of time the sound is at various loudnesses.
!ReadWAVHeader (RO) / ReadWAVHeader (ROX Linux)
This lets you examine the metadata in the header of the WAV file to check the sample rate, number of bits per sample, etc. It also saves a listing of the sample values from a section of the sound sample payload at the start of the file so you can examine the waveforms if you wish. It also lets you check that the WAV file does have a recognisable 44 byte header, or a more extended set of metadata. (As with other WAV apps in the series it may fail to recognise WAV files with extended metadata in the file header.)
!WAV_Reader (RO) / WAVReader (ROX Linux)
This performs a similar function to ReadWAVHeader, but allows the user to choose a portion of the soundfile payload waveform to examine and display.
!WAV_Gen (RO) / WAVGenerator (ROX Linux) This allows you to generate WAV files containing various types of waveform. The forms include Sinewave, Squarewave, Trianglewave, Periodic Impulses, and user defined waveforms. The output can be either 16 or 24 bits per sample, and the sample rate can have any of the standard values from 44.1ksamples/sec up to 192ksamples/sec. You can therefore use this to produce test files of various kinds.
!WAV_FFTScan (RO) This lets you do a series of 8k-point Fast Fourier Transforms on a user-chosen section of a WAV file. It produces various results. The main result is a time-averaged power-frequency spectrum of the chosen section. It also examines each 8k-point section of the sound data and computes other useful information. For example, if the signal is nominally a sinusoid it will report the frequency and level of the sinusoid and determine the THD (Total Harmonic Distortion) value.
The output from some of the RISC OS versions can be plotted using applications like !Tau or your favourite spreadsheet. The ROX versions produce Veusz output files that can be used to load the results and display them using the Veusz scientific plotter application. I currently have a number of other programs that only exist in RISC OS form. At present I am (slowly) producing ROX Linux versions. As these are done I will add both versions to this page and make them available for other to use.
I originally started writing RISC OS versions of these articles for my own use, and as examples for a series of articles in Archive (a magazine for RISC OS users). Over a period of years the programs have been developed and improved. You can find a number of articles explaining the details of the RO versions on my webpages on the Archive articles. The Archive webpages also provide copies of the versions of the programs which I had produced at the time each article was published. I have also used the programs to produce results for articles in Hi Fi News and on my websites. Webpage versions of the Hi Fi News articles/results are linked to my main AudioMisc page
More recently I have also started using Linux and began to produce ROX Linux versions of the programs. It then occurred to me to produce this webpage to ensure that the most up-to-date versions of the various WAV programs were easily available.