JavaMan, In looking back over the posts, I realize that I overlooked your post. What you have written is VERY similar to what I had in mind when I wrote the pseudocode, with the exception of your case statement. I visualized using a lookup_table (array).
Very nice! Very clean code!
Thanks for the kind words. I used the case statement instead of an array because it seemed like a more intuitive way to add additional characters. By the way, the comment regarding frequency adjustment is an artifact of another version that beeps instead of flashes.