
Analog Terminal Bell - tenderlove
http://analogterminalbell.com
======
Animats
Older Teletype machines, Model 15 and earlier, have two or three bells. The
big bell is triggered by the BELL character. The bell is almost 3 inches
across and produces a really nice "bong" sound that lasts more than a second.
That bell was intended to get the attention of people in the room for
important incoming messages. News services would send messages with one to ten
bells. UPI used 3, 4, 5 and 10 bells.

What it sounded like: The Teletype March: [1] Good pictures of the big bell.

The small bell is triggered at column 73 or so. Just a quiet "ding".

On a Model 14 printer, which prints on a narrow tape, the third bell rings
continuously when the blank tape supply has run out.

All that is what's being emulated by the "bell" sound on computers.

[1] [https://youtu.be/b2QPy-igBLA?t=218](https://youtu.be/b2QPy-igBLA?t=218)

~~~
mbar84
Sounds like a missed opportunity. ASCII maybe could have had BLL, BLM, BLH
(low, medium, high) with different frequencies and you could have encoded
something in those bells instead of having to count a sequence.

~~~
gumby
If you actually look at the ascii chart broken out by bitfield you’ll see that
the codes and key tops reflect a tight mapping (remember old teletypes were
electromechanical: an electric motor drove the platen but all the keystroke
decoding was mechanical. The usual ascii chart (e.g. man ascii) obscures this
by using hex or decimal codes.)

So they had a block of 31 control character (forget null, and delete obviously
wasn’t in there because of paper tape).

Many of those control characters were and are useful (^s for stop, ^r for
resume) much of the space was empty and so randomly assigned. There would have
been room for more bell characters, but that wasn’t really the mentality of
the day.

~~~
alblue
I put together a nice diagram of this in my “history of Unicode” talk. The
specific slide is at:

[https://speakerdeck.com/alblue/a-brief-history-of-
unicode?sl...](https://speakerdeck.com/alblue/a-brief-history-of-
unicode?slide=6)

There’s link to the video recording in the comments if you’re interested.

------
tenderlove
Here is a link to the product video:
[https://www.youtube.com/watch?v=uG8VpN6Z_YA](https://www.youtube.com/watch?v=uG8VpN6Z_YA)

I sent a patch to iTerm2 for support:
[https://github.com/gnachman/iTerm2/pull/428](https://github.com/gnachman/iTerm2/pull/428)

~~~
dylan604
The gag about not being to plug the USB cable in correctly was a nice touch

~~~
joshu
it's unrealistic. in real life there would have been 3+ flips

~~~
hinkley
I don't know why physicists are looking for higher dimensions, instead of
investigating the 4-dimensional nature of USB-A cables.

~~~
danellis
They just have a spin of ½.

------
reaperducer
Terminal bells trained me to be very cautious about what files I jam into
stdout, or its equivalent.

There's nothing worse than accidentally cating a binary file and filling the
computer room with a string of un-cancellable bells with all eyes on you. It
was like a noob detector.

~~~
mprovost
When I used to "lose" a shell I would just cat a bell character (^G) to the
process's tty and see which screen window went "Wuff, Wuff!!".

------
gorkish
I ran across an old and very nice portable Smith Corona typewriter the other
day and of course I opened it up and gave it the required typewriter
inspection: holding down tab until the carriage rings the bell. What a
delight.

This project is really great, but I cant help but want to remix it to hide the
guts within the bell! I also kinda want to hook it up to a pinball knocker and
put it under my coworkers' desks.

Anyone else have the unending list of cool projects to build that you can
never seem to start?

~~~
antongribok
I like your idea of putting everything inside the bell. I wonder if you could
replace the solenoid with just an electric magnet that would pull down the
button from inside.

Totally unrelated, I have one project that I keep thinking about starting
every time I turn on my monitor in the morning...

I want to connect an RPi Zero to the serial port on my monitor, so that
instead of pressing multiple buttons to change the input or color profiles
(for day vs night), I could hit a dedicated set of buttons instead.

One physical button might issue multiple commands over serial to the monitor.

I'm thinking of doing this with a Raspberry Pi simply for convenience... I'm
sure someone here will suggest doing it with something much smaller, and
they'd probably be right.

~~~
Nextgrid
Look into DDC; a lot of monitors can be controlled through that and it doesn't
require any extra hardware:
[https://en.wikipedia.org/wiki/Display_Data_Channel](https://en.wikipedia.org/wiki/Display_Data_Channel)

~~~
_Microft
There is a tool called "Click Monitor DDC" that can control a lot of display
settings via DDC. It warns that changing settings too often would wear out a
display's flash memory used for storing the settings. This shouldn't be
limited to changing settings via DDC but automated setting changes might occur
lots of times more often than manual changes.

~~~
Nextgrid
How is changing the setting from DDC different from changing it manually
through the monitor's buttons? I think the warning is there for programmatic
usage to warn people against changing the settings in a while loop or similar,
but changing at a reasonable rate shouldn't be a problem.

------
jedberg
One of the comments on the youtube video says "I need an analog carriage
return".

Now _that_ would be cool. Having a physical bell ding every time you hit
enter, like an old typewriter!

Edit: I'm aware that typewriters ding before you get to the end, but that
would be much harder to implement than just doing it when you hit enter, which
would be a close representation. :P

~~~
n3k5
On a typewriter the bell rings _before_ you return the carriage. (By pushing
it – if it's manual, there's no such thing as ‘hitting enter’.) It happens a
few characters before the end of the line, as a warning that you should go to
the next line after the current word, or if it's a long word, think about
hyphenation.

Oh, and the typewriters used to perform that song made famous by Jerry Lewis
are hacked so the bell can be triggered ad lib — but the sheet music still
says to do it _before_ pushing the lever :)

~~~
jedberg
I know I was just trying to get close to the typewriter experience. :)

~~~
n3k5
I assumed as much, just couldn't stop myself from writing a clarification
anyway in case some younger readers would get confused.

Initially I found the idea to make it more authentic more fun, but now that
you've mentioned ease of implementation — yeah, it wouldn't be that much fun
that I could be arsed to, say, patch a terminal emulator.

A text editor plug-in would be easier, though. Get a subtle ding when a line
of code is about to get too long, instead of dreading the approaching cliff of
a strict ruler :)

Btw., this is quite neat, too: [https://youtu.be/qb43-hn_-
_c](https://youtu.be/qb43-hn_-_c) (The download link for the sound pack in the
video description still works!)

------
andreicek
Terminal bell is something that in my opinion was once great but now overused
to the point I turn it off. I remember the time I could just sound a bell on
an end of a long running process and that would be it. Today I use a
visual/audio notification on the ends of my scripts.

    
    
        osascript -e 'display notification "Completed!"'
        osascript -e 'say "Done"'

------
rcarmo
I have two bells _exactly_ like that one. One of them has a distinctive tone
(and a sizeable dent) because it used to sit on a colleague's desk and people
"rang him up" as they came up to him until one day he just lost it and threw
it across the room (almost into the garbage bin - it hit on edge and dented).

Good thing we're working remote, because I would not be able to be near one of
those things during an intensive terminal session.

------
hackbinary
The terminal bell is completely abused, and as irritating as heck.

I turn it off as soon as I can upon installation of any distribution.

~~~
adchari
Emacs absolutely overuses it, every time you scroll to the end or beginning of
a file it beeps.

~~~
outworlder
True. One of the first things I disable.

------
war1025
I love the cheesy informercial [1]

[1]
[https://www.youtube.com/watch?v=uG8VpN6Z_YA](https://www.youtube.com/watch?v=uG8VpN6Z_YA)

------
every
Manual typewriters were noisy little beasts. "Tack tack tack tackity tack"
(keys). Thunk... thunk (shift). "Chunka chunka (backspace). Ding (bell).
Ziiiiiiip (return). All of these and more are lovingly preserved in US-ASCII:

[https://every.sdf.org/.webshare/us-
ascii.txt](https://every.sdf.org/.webshare/us-ascii.txt)

------
supernova87a
Sales are spiking for this product in Brooklyn zip codes 11231, 11201, 11217,
11215, along with typewriters and handlebar mustache wax.

------
chaoticmass
On Debian the default is to use the pcspkr beeper for terminal bells... and
first thing I do on a new system is remove the pcspkr module.

------
abhinuvpitale
I love the idea of physically disconnecting the bell, when you want to `turn
off` notifications.

------
dheera
> Here are the components needed: > Mini USB B Connector ($1.72) > 10k
> resistor ($0.10) > 1k resistor ($0.10) > 47nf capacitor ($0.22) > 1N4004
> diode ($0.12) > TIP 122 or 102 ($0.70) > Solenoid ($4.95) > MCP2221a ($2.27)
> > JST connector ($0.17) > 14 Pin Socket ($0.18) > Bell ($7.99)

A much easier way to do this would be an tiny Arduino-compatible board and a
servo. I actually made an analog lunch bell at a startup this way that we
struck when the food delivery arrived. It might be a few bucks more in
components but you wouldn't have to deal with making and populating a PCB so
you'd save on that.

------
cbsks
That video was amazing! I bet you could crowdfund it into a product :)

------
hisham_hm
omg, I just had a horror vision of a university lab full of vim newbies using
this.

------
legohead
That title brought back memories of some really old MUDs that would let you
chat escape codes (mostly meant to make colorful chats in ANSI color), and you
could chat the bell escape code to make everyone's PC beep. But it also kind
of froze the computer for a second, so you could send a bunch of them and
freeze everyone (including yourself).

------
OJFord
Since it's a control character I don't think a 'custom build of iterm2' should
be necessary?

~~~
gugagore
It is not transmitting every displayed character over USB. The terminal
emulator needs to send a command (e.g. not just a character, though the
distinction is besides the point) to the device.

~~~
danellis
This isn't a real thing, right? I mean, there's nothing to interpret the
command even if a terminal did somehow know how to send it.

Edit: Okay, I looked at the MCP2221A and it has GPIOs as well as just being a
USB bridge.

------
kevin_thibedeau
The IBM Displaywriter had a margin bell. It was an odd experience to be using
a digital computer that acts like a mechanical typewriter.

~~~
JdeBP
Quite a lot still does: How terminals and their emulators set and process
tabstops; conversion between CRLF and LF in Unix line disciplines; the idea of
millisecond pauses in character sequences in terminfo/termcap; overstriking in
the output of troff; scrolling the paper back to see what you typed earlier; …

------
jlgaddis
Pro-tip:

    
    
      # echo install pcspkr /bin/true > /etc/modprobe.d/blacklist-pcspkr.conf

------
30minAdayHN
This should also ring every time a user edits a sent message on Slack... May
be a slack app to interface with bell.

------
jcims
Would be cool to do an analog (ultrasonic) DTMF detection circuit and then
build a WAV file that triggers it.

------
holstvoogd
Aaron! Should have guessed it was him haha

------
nixpulvis

        printf("\a");

------
bastardoperator
This thing would be ringing every couple of seconds in my world.

