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