Software

Outside of work, I like to write my own stuff either to learn how something works or because I need a tool that works in a particular way I cannot find anywhere else.

All of these programs are gift-ware, and are free for anyone to use, modify, and redistribute. All source code is provided. If you like any of these programs, you can make a return gift if you wish by sending me bug reports, fixes or improvements.

DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Wav

A console program with various options for spliting and resampling PCM Wave files. It is limited to re-sampling to 11khz, 22khz and 44khz, changing the bit rate to 8bit / 16bit, and switching from mono to stereo, stereo to mono.

There are only minor changes from v0.1 to v0.1.1.
1. The downloadable program was split into a binary and source download.
2. The binary downloadable was compiled with release flags, so the visual c++ 6.0 DLL's are not required.

wav_bin_0_1_1.zip Windows executable v0.1.1
wav_src_0_1_1.zip Visual C++ 6 Source v0.1.1

A note on version numbers

I use different version numbering schemes for applications which have no software dependent on them and libraries which are used by other libraries and applications.

Applications

Applications consit of two or three numbers separated by a full stop. MAJOR.MINOR.PATCH. Every increment of PATCH represents a bug fix but no additional features being added. Every increment of MINOR represents a new feature being added to the application. An increment of MAJOR comes only after a freeze on the addition of new features and the completion of beta testing. The bug fixing phase of an applications development is represented by making the MINOR version number 90 (or 900) and dropping the PATCH part of the version. From this point on, only patches are allowed, with each fixed version incrementing the MINOR version number. An example of this scheme is shown below.

0.1 Inital version
0.2 New features added
...
0.5
0.5.1 Patch to version 0.5 to fix an introduced bug
0.5.2 Further patching
0.6 New Features added to v0.5
...
0.90 Testing and a freeze on the addition of features
0.91 Further bug fixes
...
1.0 Testing completed, finished application released
1.1 New features added
1.2
...
1.143
1.143.1 Patch to v1.143
1.900 Beta testing
1.901 bug fixes
1.902 more bug fixes
...
2.0 New version of completed application
2.1 and so on

Libraries

Libraries consist of three numbers separated by a full stop. MAJOR.MINOR.PATCH. The PATCH part of a version indicates a fix which does not add any new features or breaks backwards compatability. Any new feature added that does not break backwards compatability increments the MINOR part of the version. Any new feature that breaks backwards compatability increments the MAJOR part of the version. An example of this scheme is shown below.

0.1.0 Inital version
0.2.0 New features added that do not break compatability
0.2.1 Patch to version, does not add any new features
0.3.0
....
1.0.0 New features added that break compatability with the previous version
1.1.0 and so on for the life of the library