BDM - A (nearly complete) digital drum kit synth
Posted: Tue Dec 29, 2015 2:29 pm
Hi,
Some of you may still remember me back from the days of SynthMaker; I used to be quite active years ago on both the forums and with plug-ins and sharing stuff.
There is one thing I've never shared (or probably even mentioned) back then; My Big Project. The plan was to get this thing finished and released as a commercial product, but due to a number of bugs in the MIDI input handling in SynthMaker that were never resolved, a new job and an entire IT bachelor degree education, I never got around to finishing the project.
About half a decade has past and the chance of this project ever seeing the light of day has become ever smaller. But I didn't want it go to waste on my harddisk, so here it is in all it's glory;
BDM (version 0.17.117)
Note that this release is licensed with the GPL3 license; so you can use it (or parts of it), but you MUST make changed versions of code using parts of this synth available with the GPL3 license as well. A complete license text is included in the .fsm file.
Installing
Download the attached .fsm file and a .zip file containing some configuration files.
You'll also need to download a set of layered drum samples. The zipfiles assume you have downloaded these: http://www.analoguedrums.com/details-bm.php
Ideally, put the drum samples in a folder named and put the configuration files from the .zip in the same folder. If you use a different folder, you'll need to edit the ride.kit text file. The .drum files contain configurations of the individual drum pads, the .kit file ties them all together, so you can load en entire set at once.
Using
Assuming you installed correctly, just load up the .fsm file in FlowStone (I only have an old version, but I assume newer versions will work), load a .kit file using the [Kit] button, then click the big red INIT trigger button to start loading all the samples. You'll see a progress bar in the statusbar.
Configuring
The default MIDI mapping is setup for my cheap-ass Medeli dd505(D) digital drum kit. You can change the MIDI bindings using the menu buttons on the top-left. Just smash your drum kit to select the matching key, then click the event you want to map to it.
Developers
There are a lot of interesting bits in this code. Most of them will be clear from the user interface, but there are a few in particular that may be of interrest:
Poly limit (part of drumpad player) - A mechanism which tries to approximate perceptible amplitude of a single channel, then kills the least perceptible channel if there are too many active channels.
Windowing system - Open, close, drag and z-order multiple windows inside the user interface (I may have published this earlier; can't remember).
Drumpad player - Variable velocity layers, pitch ending, balancing, etc. This thing is pretty flexible and fast.
Drumpad UI - Flash when you use a drumpad.
Mixers UI - Managing the configuration files and samples.
Configurability - It takes very little effort to add new .drum files with new samples. In fact, I left out some of my more obscure tests like non-drums, velocity-to-pitch mapping and morphing drums.
I'm forgetting a lot of little things, I leave these for you to discover
Status
It's "nearly complete" as in "it does everything a digital drum kit synth should do", not as in "ready for commercial release". The most obvious omission is an initial loader for the kit and drums and lack of organisation in the UI. Neither should be particularly difficult to fix. As far as the audio processing goes, I consider this finished. I've done some experiments with binaural stereo a while back, and would like to add it (since it works quite well), but simply don't have the time to get around to doing it. Also, I seem to have lost my experiments.
It's good enough for me to use regularly next to BFD3 and ToonTracks.
License
As mentioned earlier, this all is released using the GPL3 license; the GNU General Public License 3.0. This license is the same as used by the Linux kernel and many other open source software. It differs from most open source licenses in that it requires derived products to be released as open source using the same GPL3 license.
I've done this for a number of reasons;
1. I believe it's best in the long term for the community to encourage sharing.
2. I hope BDM will be adopted and improved by the community.
3. This thing has taken me a lot of time to built and quite a bit of money.
4. I don't want anybody running away with it and selling it without giving anything back to the community.
5. There are parts I would have liked to have patented, the GPL3 license gives me some insurance against other people patenting them or blocking me from ever using these parts myself in the future; it establishes prior art.
Some people will want to use parts (or the whole) without respecting the GPL3 license. To these people I have a few things to say:
1. Just ask; if there's any specific part you want to use, I could drop the license.
2. Don't be a dick.
3. GPL3 has been extensively tested in court; ignoring the GPL license has historically not been a very profitable business strategy.
And finally...
Let me know what you think of it, whether you can get it up and running or whatever.
Some of you may still remember me back from the days of SynthMaker; I used to be quite active years ago on both the forums and with plug-ins and sharing stuff.
There is one thing I've never shared (or probably even mentioned) back then; My Big Project. The plan was to get this thing finished and released as a commercial product, but due to a number of bugs in the MIDI input handling in SynthMaker that were never resolved, a new job and an entire IT bachelor degree education, I never got around to finishing the project.
About half a decade has past and the chance of this project ever seeing the light of day has become ever smaller. But I didn't want it go to waste on my harddisk, so here it is in all it's glory;
BDM (version 0.17.117)
Note that this release is licensed with the GPL3 license; so you can use it (or parts of it), but you MUST make changed versions of code using parts of this synth available with the GPL3 license as well. A complete license text is included in the .fsm file.
Installing
Download the attached .fsm file and a .zip file containing some configuration files.
You'll also need to download a set of layered drum samples. The zipfiles assume you have downloaded these: http://www.analoguedrums.com/details-bm.php
Ideally, put the drum samples in a folder named
Code: Select all
E:\bigmonocnvUsing
Assuming you installed correctly, just load up the .fsm file in FlowStone (I only have an old version, but I assume newer versions will work), load a .kit file using the [Kit] button, then click the big red INIT trigger button to start loading all the samples. You'll see a progress bar in the statusbar.
Configuring
The default MIDI mapping is setup for my cheap-ass Medeli dd505(D) digital drum kit. You can change the MIDI bindings using the menu buttons on the top-left. Just smash your drum kit to select the matching key, then click the event you want to map to it.
Developers
There are a lot of interesting bits in this code. Most of them will be clear from the user interface, but there are a few in particular that may be of interrest:
Poly limit (part of drumpad player) - A mechanism which tries to approximate perceptible amplitude of a single channel, then kills the least perceptible channel if there are too many active channels.
Windowing system - Open, close, drag and z-order multiple windows inside the user interface (I may have published this earlier; can't remember).
Drumpad player - Variable velocity layers, pitch ending, balancing, etc. This thing is pretty flexible and fast.
Drumpad UI - Flash when you use a drumpad.
Mixers UI - Managing the configuration files and samples.
Configurability - It takes very little effort to add new .drum files with new samples. In fact, I left out some of my more obscure tests like non-drums, velocity-to-pitch mapping and morphing drums.
I'm forgetting a lot of little things, I leave these for you to discover
Status
It's "nearly complete" as in "it does everything a digital drum kit synth should do", not as in "ready for commercial release". The most obvious omission is an initial loader for the kit and drums and lack of organisation in the UI. Neither should be particularly difficult to fix. As far as the audio processing goes, I consider this finished. I've done some experiments with binaural stereo a while back, and would like to add it (since it works quite well), but simply don't have the time to get around to doing it. Also, I seem to have lost my experiments.
It's good enough for me to use regularly next to BFD3 and ToonTracks.
License
As mentioned earlier, this all is released using the GPL3 license; the GNU General Public License 3.0. This license is the same as used by the Linux kernel and many other open source software. It differs from most open source licenses in that it requires derived products to be released as open source using the same GPL3 license.
I've done this for a number of reasons;
1. I believe it's best in the long term for the community to encourage sharing.
2. I hope BDM will be adopted and improved by the community.
3. This thing has taken me a lot of time to built and quite a bit of money.
4. I don't want anybody running away with it and selling it without giving anything back to the community.
5. There are parts I would have liked to have patented, the GPL3 license gives me some insurance against other people patenting them or blocking me from ever using these parts myself in the future; it establishes prior art.
Some people will want to use parts (or the whole) without respecting the GPL3 license. To these people I have a few things to say:
1. Just ask; if there's any specific part you want to use, I could drop the license.
2. Don't be a dick.
3. GPL3 has been extensively tested in court; ignoring the GPL license has historically not been a very profitable business strategy.
And finally...
Let me know what you think of it, whether you can get it up and running or whatever.