The lack of square waves in FM is related to the fact that those two don’t match so well…If you modulate a sine with a perfect square, you get two sines at two frequencies, wich is rather boring. The Opl3, wich is used in the MBFM, has square waves though. I’ll get a scope view for you, but please tell me: why do you need/want a perfect square?
Essentially none of the classic synth create what would look like a perfect pulse wave. It’s typically a lot more of what you see in Imps first pic. Is there any reason for your craving for a graphically perfect pluse wave?
There was a brief discussion about this over at the Shruthi place… Olivier mentioned that your naive “graphically nice” square wave - from your first “Arduino synth” would end up sounding like shit due to the very sharp transients as soon as you’d transpose it up a bit. Obviously you’d need to use bandwidth-limited syntesis as you’ll reach higher octaves. Both the shit-sounding square and a BW-limited version were played and contrasted. The latter ended up looking more like such poor synths as the Minimoog, Arp 2600, Korg MS20, Roland system 100, Sh-101, TB-303, SH-x, Jupiters, Yamaha CS etc. But maybe our ears are deceiving us?
FM-based synthesis won´t be able to achieve a “perfect” square wave, as it just layers sine waves of different frequencies, and you´d need a lot of layers/operators to get close to a perfect square wave.
It always “overshoots” at the corner points, exactly like in Imp´s posted pictures. Also, agreed to j, a perfect square wave without any postprocessing/fx may sound a bit harsh, it is just unnatural