The speaker(4) man page says this about the number of notes:

> There are 84 accessible notes numbered 1-83 in 7 octaves

The numbers 1-83 is 83 notes, not 84. Lower down, the man page supports
the fact that there are 84 notes:

> N ⟨n⟩    Play note n, n being 1 to 84 or 0 for a rest of current time
>         value. May be followed by sustain dots.

Finally, I checked the source code (sys/dev/isa/spkr.c) to find out for
sure how many notes there are.

   static int pitchtab[] =
   {
   /*        C     C#    D     D#    E     F     F#    G     G#    A     A#    
B*/
   /* 0 */   65,   69,   73,   78,   82,   87,   93,   98,  103,  110,  117,  
123,
   /* 1 */  131,  139,  147,  156,  165,  175,  185,  196,  208,  220,  233,  
247,
   /* 2 */  262,  277,  294,  311,  330,  349,  370,  392,  415,  440,  466,  
494,
   /* 3 */  523,  554,  587,  622,  659,  698,  740,  784,  831,  880,  932,  
988,
   /* 4 */ 1047, 1109, 1175, 1245, 1319, 1397, 1480, 1568, 1661, 1760, 1865, 
1975,
   /* 5 */ 2093, 2217, 2349, 2489, 2637, 2794, 2960, 3136, 3322, 3520, 3729, 
3951,
   /* 6 */ 4186, 4435, 4698, 4978, 5274, 5588, 5920, 6272, 6644, 7040, 7459, 
7902,
   };

7 octaves times 12 notes per octave; that is definitely 84 notes.

It looks like NetBSD has the same bug. FreeBSD fixed it in 1998[1].

[1]: 
https://github.com/freebsd/freebsd/commit/6940406ec18a77f73b31f890526ab1963d028b05

As a side note, I had trouble getting anonymous CVS access until I read
the NetBSD anonCVS guide, which mentioned that you should set the env
var CVS_RSH=ssh. Maybe that should be added to OpenBSD's anonCVS guide.
Index: share/man/man4/speaker.4
===================================================================
RCS file: /cvs/src/share/man/man4/speaker.4,v
retrieving revision 1.9
diff -r1.9 speaker.4
102c102
< There are 84 accessible notes numbered 1-83 in 7 octaves, each running from
---
> There are 84 accessible notes numbered 1-84 in 7 octaves, each running from

Reply via email to