Re: git: ba48d52ca6c8 - main - vt: Fix frequency calcuation for bell
Date: Thu, 04 Nov 2021 15:17:38 UTC
On Thu, Nov 4, 2021 at 8:55 AM Rodney W. Grimes <freebsd@gndrsh.dnsmgr.net> wrote: > Thank you Warner for all the legwork on tracking this down and > getting a proper bell tone working on FreeBSD-Current. I do not > see any MFC plans for this, can you please consider merging this > to all supported releases? > I'm merging to 13. The merge was easy. I'm unlikely to merge to 12, though, because some of these changes are dependent on changing a system interface that I got conflicts with. If there's a lot of demand I can plow through the conflicts. > Oh and RELNOTES: YES? > Added. > Thanks, > Rod > > > The branch main has been updated by imp: > > > > URL: > https://cgit.FreeBSD.org/src/commit/?id=ba48d52ca6c867559156dd916631f9ac47abe80f > > > > commit ba48d52ca6c867559156dd916631f9ac47abe80f > > Author: Warner Losh <imp@FreeBSD.org> > > AuthorDate: 2021-11-03 21:55:55 +0000 > > Commit: Warner Losh <imp@FreeBSD.org> > > CommitDate: 2021-11-03 22:03:51 +0000 > > > > vt: Fix frequency calcuation for bell > > > > 386BSD provided a MD function sysbeep. This took two arguments (pitch > > and period). Pitch was jammed into the PIT's divisor directly (which > > means the argument was expected to sound a tone at '1193182 / pitch' > > Hz). FreeBSD inherited this interface. > > > > In commit e46598588587 (svn 177642, Mar 26 2008), phk changed this > > function to take a tone to sound in hz. He converted all in-tree > > instances of 1193182 / hz to just hz (and kept the few misguided > folks > > that passed hz directly unchanged -- this was part of what motivated > the > > change). He converted the places where we pre-computed the 8254 > divisor > > from being pitch to 1193182 / pitch (since that converts the divisor > to > > the frequency and the interfaces that were exposed to userland > exposed > > it in these units in places, continuing the tradition inherited from > SCO > > System V/386 Unix in spots). > > > > In 2009, Ed Shouten was contracted by the FreeBSD Foundation to > write / > > finish newcons. This work was done in perforce and was imported into > > subversion in user/ed/newcons in revision 199072 > > (https://svnweb.freebsd.org/base?view=revision&revision=199072) > which > > was later imported into FreeBSD by ray@ (Aleksandr Rybalko). > > > > From that earliest import into svn import to this date, we ring the > bell > > with: > > sysbeep(1193182 / VT_BELLPITCH, VT_BELLDURATION); > > where VT_BELLPITCH was defined to be 800. This results in a bell > > frequency of 1491Hz, more or less today. This is similar to the > > frequency that syscons and pcvt used (1493Hz and 1500Hz > respectively). > > This in turn was inherited from 386BSD, it seems, which used the hard > > coded value 0x31b which is 795 -> 1500Hz. > > > > This '800' was intended to be the bell tone (eg 800Hz) and this > > interface was one that wasn't converted. The most common terminal > prior > > to the rise of PCs was the VT100, which had an approximately 800Hz > > bell. Ed Shouten has confirmed that the original intent was 800Hz and > > changing this was overlooked after the change to -current was made. > > This restors that original intent and makes the bell less obnoxious > in > > the process. > > > > Reviewed by: des, adrian > > Differential Revision: https://reviews.freebsd.org/D32594 > > Sponsored by: Netflix > > --- > > sys/dev/vt/vt_core.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/sys/dev/vt/vt_core.c b/sys/dev/vt/vt_core.c > > index 38efd1e5501c..06f5827078ca 100644 > > --- a/sys/dev/vt/vt_core.c > > +++ b/sys/dev/vt/vt_core.c > > @@ -121,7 +121,7 @@ const struct terminal_class vt_termclass = { > > > > /* Bell pitch/duration. */ > > #define VT_BELLDURATION (SBT_1S / 20) > > -#define VT_BELLPITCH (1193182 / 800) /* Approx 1491Hz */ > > +#define VT_BELLPITCH 800 > > > > #define VT_UNIT(vw) ((vw)->vw_device->vd_unit * VT_MAXWINDOWS > + \ > > (vw)->vw_number) > > > > -- > Rod Grimes > rgrimes@freebsd.org >