Thanks, good questions! Right now it skips spaces and plays a blip on every second visible character, so at the default speed (one character per 0.05 s) you get about 10 blips a second instead of 20. Punctuation still blips, and there's no pitch variation yet. Both are hardcoded in `_process()`, not exposed as settings.
If you want both of your suggestions, this replacement for line 19 skips punctuation too and adds a small random pitch shift:
var c := s[ci-1]
if c != " " and not ".,!?;:'\"-".contains(c) and ci % 2 == 1:
p.pitch_scale = randf_range(0.94, 1.06)
p.play()
I'll turn the interval, the punctuation skip and the pitch range into exported settings in the next update.