Heartburn is an "additive-subtractive" soft synth which has a few interesting variations on the classic virtual analog synth structure.
Structurally, Heartburn consists of 3 wavetable oscillators plus an external input channel, feeding into two filters, one a simple low-pass/high-pass/band-pass/band-stop type, one a more sophisticated formant filter capable of creating vowel- like sounds.
Normally the three oscillators and the external input each have an amplitude envelope applied and are mixed to get the "dry" output. Optionally, the external input can multiply (ring modulate) oscillator A instead of mixing, and oscillator A can multiply oscillator B.
Normally, the dry output is fed in parallel to the simple filter and the formant filter, then the dry and both filter outputs are mixed to get the final output. Alternately, the filters can be cascaded serially, with the output of the simple filter forming the input of the formant filter, and this combined signal is mixed with the dry signal.
Three separate envelope/LFO generators are provided; unlike the traditional ADSR envelope, they don't have a concept of "sustain level", but instead they have a "loop time". Each component which can be modulated by these envelope generators has, in effect, two "sustain levels" which are ramped between over the loop time period. In the case of oscillator amplitude, this provides tremolo (oscillation between sustain level and sustain+tremolo level); in the case of oscillator frequency this provides vibrato (oscillation between basic tuning and basic+vibrato tuning), and finally in the case of the filter components, filter sweeps and "vowel movements". Any envelope generator can be selected for any of nine envelope targets.
The mutation feature allows you to rapidly experiment with patch variations. When the mutation rate is set above "none", the parameters of the synth are randomised as each note is triggered. Several different mutation rates are available; at or below the "Chernobyl" level, the critical parameters of "coarse tuning", oscillator inter-modulation, and filter topology won't be modified at all. You can set the mutation rate high to hear wildly different sounds on each note; once you find something interesting you can reduce the mutation rate to explore nearby variations. It's possible to come up with some interesting patches just by using the mutation feature and not manually modifying parameters at all.