Hi Flodcp, thank you for your interest in my template !
Good questions you have there.
Adding sound effects for each letter shown is dead easy. Adding a "play sound" at event 81 of the "DialogueEvents" sheet could suffice. However, it could lead to unwanted behavior like tons of sounds playing at once for instant text (delay = 0) or skipped sequence, sometimes the event not really fetching a new char since it's in a "wait" state (Dialogue_Timer > 0), or even the last char fetched that shouldn't trigger a sound since it's basically a EOF (Dialogue_CharIndex = len(AllText)). Having said all that, you can create a sub-event directly under 81 that would deal with all those cases.
Here's a screenshot of what event and where would it be optimal to place it :
The local static variable make sure that no sound plays twice in a single tick, so it single-handedly deals with most of the previous issues I mentionned.
(As a side note, the examples you provided use a different approach than "play a sound for each letter", I can't say for sure, but I believe they are "playing a repeating sound while text is writing". It could be achieved too with my template, but it would be quite different than what I explained)
For visual effect, the only avenue for us is to use WebGL effects. However, those effects are applied to the spritefont texture as a whole and thus you won't obtain a cool shaky effect on individual characters like in your examples. One possible way to implement WebGL effects would be to add all the desired ones to the spritefont object and activate them with new text commands like {wave}.
Hope this helps !