A single-oscillator kick drum synthesizer. This patch is meant to work as an abstraction. On the "pitch" side of the module, the starting frequency, ending frequency, and ramp time between them can be adjusted. One the "amp" side, the decay and final gain can be adjusted, as well as the harshness of softness of the initial "click" of the kick. I'm not sure if I'm completely satisfied with this "click" function yet, as it is simply the initial jump-time to the peak amplitude. Perhaps adding another waveform here would produce better "click" results. Suggestions are much obliged.
As of now, the module simply takes a bang in its inlet and outputs the audio result. Inlets could, of course, be added in order to modulate the parameters of the kick.
Thanks, @LiamG, for the elegant state-saving solution. I've modified the code to fit the parameters of this abstraction, but the design worked marvellously. It also opens up a lot of possibilities, since multiple instances of the abstraction can be saved in their different states by saving the parent patch.
One thing to try might be mixing different instances together--with their own unique settings--to get richer textures. For example, you might try tuning and mixing a high, mid, and sub instance together to get a kick that covers more of the frequency spectrum.
I stumbled across this forum while searching out ways to state save in pd, and specifically with abstractions. Just wanted to especially thank @gsagostinho and @LiamG for this very helpful contribution. The adaptation of this code works great. Exactly what I was looking for. Thank you!