Had a bleary crappy sick-feeling day for most of today, but after a nap and some food I dug myself out of my hole enough to copy and paste enough code from puredata enough to get a tiny standalone C midi-to-jackd synthesizer going. My naive attempt at dealing with clipping artefacts at note-on and note-off time without actually doing any real ADSR was just "if the absolute difference between the current signal and the last step is bigger than THRESHOLD, just pretend it was THRESHOLD instead". Turns out this really fucks with normal audio signals if their frequency is high enough, or if they are polyphonic enough, because both of these produce slopes high enough for the filter to grab hold of. Anyway, it is the grand tradition of audiovisual programming of all kinds that the bugs are often as interesting as what you meant to do. My bug sounds like this.