I wrote a terminal emulator in Forth on my Apple ][ that had different sounding key clicks for different classes of keys. Upper and lower case letters had different tones, and the sequence of digits had rising tones, and certain control characters like return and backspace and escape and punctuation and space all had their own unique sounds, so you could hear what you were typing and know that you typed the right keys when you were typing ahead quickly on a slow 300 baud ARPA TIP connection.
Also each time it beeped the bell it would start at a higher and higher tone rising to a fixed pitch, each starting higher and lasting less time than the last, so a lot of bells in a row would ramp up in tone and shorten out to a high buzz, so they weren't so annoying. Then it would decay back down after you didn't receive any bells for a few seconds. It was inspired by the way of an excited guinea pig squeals for lettuce.
Also, the underline cursor floated up and down and up and down in the character cell, so it was very easy to see where it was, and it drew a wavy line in the phosphor as it moved across the screen!
At one point I wrote a program that would tail a log file and play very short samples of different engine noises for each line that matched the corresponding pattern. The idea was that if something changed about the running of the system, I'd hear the noise change.
It didn't work spectacularly well though, and I gave up on the idea.
the frequency range of pulsing audio is much higher than pulsing light thats for sure. sound was used a lot to calibrate analytical instruments in labs. throw a frequency divider a tiny amp and a tiny speaker and you could easily find if your frequency is stable, drifting...
Sure, I wasn't suggesting it was an improvement. I also assumed the actual pattern isn't important in a strict sense, just as an indication of when and frequency?
But of course, in general either could be the case. And perhaps don't want to wear earphones (or disturb colleagues) etc. only meant it as an additional similar idea.
Waterfall display might work though, or coloured sequences give each function it’s own colour then draw the last stack as a pattern of colours, humans are really good at spotting anomalies in patterns, probably because tree,tree,tree,wolf,tree was useful to our ancestors.
This was common in home computers that could run a routine at every VBL (Vertical Blanking) interrupt, often chosen as the main timing 'tick' interrupt. Change the overscan border color for each part of the subroutine, and the timing gets reflected quite directly in the colored fringes that are displayed as the program executes.