the higher the frequency, the shorter the cycles.
the smaller the individual "segments" of the "4-bit waveform" get, the more inaccurate their frequency gets.

when the frequency comes in the range where the are reaching 0, the output frequency will fold over into negative frequencies.

both causes inevitably what is called "aliasing".
i dont see (hear) that 353 would be special, but somewhere between 300 and 400 hz the effect clearly begins. (on the laptop. in the studio probably 1-2 octaves earlier.)

if you have 44100 samples per second and an oscillator runs at 441 hertz, one cycle has 100 samples.

after the "4-bit conversion" each of the segments of the values 0. - 0.5 -1.0 -0.5 - 0. -0.5 -1.0 -0.5 now has 12,5 samples lenght. this means that every other segment is 12 sample long, then followed by one which is 13 samples long.

at 3000 hertz oscillator frequency the 8 segments must share 14.7 samples.

this means that in cycle #1 the segment will have a lenght of roughly (for a tri i could tell offhand, but a cosine distorts that distribution further) 2 2 2 1 2 2 2 1 samples and the next cycle will have 2 2 2 2 2 2 1 2 samples.

now at the latest 95% of the spectrum you hear is aliasing and 5% is left for the base oscillator speed.^^