leafDrums 2.x drum machine for Windows
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This is the leafDrums 2 drum machine source code. I have no plans to do
any further work on the project, and am now releasing leafDrums 2 under the
GNU Public License in case others would like to make changes.

If you just want to try out the current (and possibly final) version of the
software, please see the project website:


Status of this project

I am not building a new version of the software. Consequently the existing
shareware release remains under that license (and still has nag screens etc -
although if you ignore the nags, you can keep using it indefinitely). 

Rather than abandoning the project, I am making it open source.

It is of course open to anyone to rebuild this code, remove the nag screens,
and release it as completely free software. However, I'd politely ask that you
retain my author credit and copyright notices (of course adding your own if you
contribute to the code too) and, unless you make really major changes, that 
you leave in a request for users to pay for the program at my website.
Although leafDrums has probably been a lot more successful than most shareware
over the years, I think it's unlikely that I ever made enough money to pay for
the many hours spent (years back) developing it...

The astute will notice that I didn't remove the key checker, so it would be
easy to make a keygen for this code. However, the even more astute will realise
that keygens for this software have been available for many years without my
assistance... and perhaps will note that the software never expires even
without a key.

Want to be a new maintainer?

If anyone would like to take over development of this software, please be my
guest. GitHub will allow you to fork this repository, so you should be able
to easily start work on changing it - you don't even have to ask me! (In fact
please don't! Just do it.) If you make a new releasable version with significant
improvements, and intend to support it from now on, please let me know at the
point where you have a new version ready - I will arrange to change the 
relevant links and so on.

The Windows source code here should probably compile in Microsoft Visual Studio 
97, and hopefully in newer versions (may need tweaks). I don't have any
documentation or assistance to offer - it's five years since I did anything
to this code (that being only some minor change, I forget) and I don't really 
use C++ or Windows any more.

Help with building

You have absolutely no chance of building this project unless you know how to
code C++ and are familiar with Visual Studio etc. This is not an 'ant' build
nor even a 'make configure; make' build. This is a 'build lots of crap manually
using the GUI' build. It would certainly take me ages to get the thing to 

1) Build the leafChatUnicode project. This creates a DLL (originally for the
   old version of leafChat) which is required for Unicode support; actually,
   I don't think this is used by leafDrums, but it includes the header file
   in the library.

2) Go find the zlib library, build it, and set it up on your system,
   adding it to the include paths so that it works (see
   Library/CompressedResourceData.cpp for where it's used).

3) Build the Library project. This creates a .lib file which provides all the
   user interface API.

4) Go find the Ogg Vorbis library, build it, and set it up on your system, 
   adding it to the include paths so that it works (see WavFile.cpp for how 
   this is used). If the library has changed since 2005, it might not compile 
   any more; should this be the case, either edit the leafDrums code (best 
   option) or find an old version of the library source.

5) You might now be able to build the leafDrums2 project itself. Woohoo! If
   you do, hopefully you can run it and stuff.
6) The CreateSetup.pl script (which I just deleted from this repository)
   used to be used with my custom setup application to create an installer 
   binary. Instead of this, I would recommend building a new installer using a
   standard installer system.

If there are any missing files that aren't part of generally available libraries
or applications, get in touch with me by email (sam at leafdigital dot com)
with details of what you need.

Image data (BMP_C files etc) is compressed using zlib. Look in 
Library/CompressedResourceData.cpp to see how the decompression works; with
this you should be able to figure out how to make a compressor.


All code, graphics etc. are copyright Samuel Marshall. 


* Drum sounds were sampled by David Gosnell from an old drum machine.