Topic: Special FX (Fuzz Click) on Arduino
Yes. That was the most challenging engine to port, considering its design and the need to re-implement it using timer interrupts, but also the most interesting.
I used the same ideas as for Tritone engine, but the interrupts train system is more complicated. Just like the original, there is the main loop running at the sample rate, consisting two equal halves for each channel. When 8-bit counter overruns, a pulse of a fixed duration is generated. However, duty cycle of the pulse (the amount of time for 1 and 0 in that pulse) changes depending on the sustain parameter, creating pseudo volume decay. The pulse is generated using timer interrupts as well, setting up the timer to desired values. To get enough timer resolution (the pulses can be pretty long compared to the sample rate), I had to use prescaler 32 rather than 8, like it was in all previous ports, which affected to the sample frequency, making it a bit off.
The drums were done just like in Tritone port too, using pulse coded samples of the original drums.
I think that's the last port in the line, as all other engines use one of the techiniques of already ported engines, nothing more to explore.