Skip to Content


7 replies [Last post]
Joined: 04/17/2010


I recently released an application called

synthclone is a GTK-based application that works with the JACK Audio Connection Kit to "clone" your MIDI-capable instruments. It does this by sending out MIDI data that instructs an instrument to emit sounds for a series of notes and velocities. It then saves this data in a format that can be understood by sampler software.

synthclone is capable of saving the data it acquires as a multi-layered hydrogen drumkit, which might have some practical uses for hydrogen users. For example, a user that has a kit on a drum machine and wants to distribute that kit as a hydrogen drum kit could connect the drum machine to synthclone, set some parameters, start the sampling process, and walk away.

I hope that synthclone can be of some use to hydrogen users.

Joined: 04/17/2010

Hi there your program is really interesting. I see one feature missing which would make it very valuable for cloning drum samplers..

cc4 (foot controller/ high hat pedal)

cc4 messages are used to indicate the position of the high-hat pedal and in advanced drum samplers this controls which set of samples get played back. (sometimes a different set for the high-hat, bell / bow / edge and .. tight closed / closed / loose / half open / full open etc.

so it would be nice if you could get synthclone to precede a subset of the midi note numbers with cc4 messages

eg something like this
Notes: 21, 23, 36-85;

For CC04 = 0 to 127
Notes: 18, 19, 20;

Important: even though it is unlikely that every single cc04 value would have a separate sample, because you may not know exactly where the transitions are, you need to get all the CC04 values OR specify exact cc04 values to use. You should not simply do even subdivisions.

Thanks for sharing already amazing tool!


Joined: 04/17/2010

Hi Dean,

I can see where that would be a really all-around useful feature. I would definitely like to implement what you're suggesting, though it's not clear to me what the best way would be to present this option to the user in the UI. If you have any ideas, let me know.

Thanks for the compliment! :)

synthclone -

Joined: 04/17/2010

Hi, glad to hear your interested in the idea. I definitely see the difficulty with the GUI.

Personally I would be happy with some sort of script type definition like my example above, but then that probably makes it confusing for others.

Maybe a hybrid approach.. I see that MS Word allows similar defenition in print dialog for individual pages and ranges of pages.

like 1, 3, 5-12

it explains how to use it right in the dialog..

so perhaps you could still retain something like that, but avoid people having to write loops buy making a table like so.


CC number(s) / CC value(s) / Note value(s) / Velocity(ies)
4 / 0-127 / 18-20 / 0-127
n/a / n/a / 36-85 / 0-127

you could even put the velocities in the same table.

so first line in the example would yield 1 * 128 * 3 * 128 = 49152 samples... yikes :-)

probably more realistic that you would fill it out more like so (but more velocities... just I'm not going to type them)

CC number(s) / CC value(s) / Note value(s) / Velocity(ies)
4 / 0, 64, 96, 110, 127 / 18-20 / 0, 16, 32, 48, 64, 80, 96, 112, 127
n/a / n/a / 36-85 / 0-127 / 0-127

meaning the first row would make 1 * 5 * 3 * 9 = 135 samples

maybe the velocity column could be number of velocity layers rather than absolute velocity values? Or probably just leave the velocity ranges in the existing way you have it.

Joined: 04/17/2010

excuse the poor attempt at ASCII tables :-) does not work so well with variable width fonts..