I have an archive of sample recordings with a sample playback program, the date and author in the BBC BASIC loader for the program is "(C) 1985 by DAVID J. HOSKINS"
There are are about 10 recordings, short clips including "James Whale All Hit Radio", Knight Rider TV series theme tune clip (file name NIRIDER), Vincent Price Laughing [off Michael Jackson's Thriller song, at end] (file name: VPLAUGH)
The 6502 machine code is as follows for the audio playback, as a hex dump:
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 78 A9 C1 20 67 09 A9 00 20 67 09 A9 81 20 67 09 x©Á g.©. g.© g.
00000010 A9 00 20 67 09 A9 A1 20 67 09 A9 00 20 67 09 A9 ©. g.©¡ g.©. g.©
00000020 00 85 70 A9 22 85 71 A0 00 B1 70 48 29 0F 20 51 .…p©"…q .±pH). Q
00000030 09 A6 72 CA D0 FD 68 4A 4A 4A 4A 20 51 09 A6 72 .¦rÊÐýhJJJJ Q.¦r
00000040 CA D0 FD E6 70 D0 02 E6 71 A5 71 C9 7B D0 D8 58 ÊÐýæpÐ.æq¥qÉ{ÐØX
00000050 60 49 0F 48 09 D0 20 67 09 68 48 09 90 20 67 09 `I.H.Ð g.hH. g.
00000060 68 09 B0 20 67 09 60 A2 FF 8E 43 FE 8D 4F FE E8 h.° g.`¢.ŽCþOþè
00000070 8E 40 FE EA EA EA EA A2 08 8E 40 FE 60 00 Ž@þêêêê¢.Ž@þ`.
Which disassembles to:
* = 0000
0000 78 SEI
0001 A9 C1 LDA #$C1
0003 20 67 09 JSR $0967
0006 A9 00 LDA #$00
0008 20 67 09 JSR $0967
000B A9 81 LDA #$81
000D 20 67 09 JSR $0967
0010 A9 00 LDA #$00
0012 20 67 09 JSR $0967
0015 A9 A1 LDA #$A1
0017 20 67 09 JSR $0967
001A A9 00 LDA #$00
001C 20 67 09 JSR $0967
001F A9 00 LDA #$00
0021 85 70 STA $70
0023 A9 22 LDA #$22
0025 85 71 STA $71
0027 A0 00 LDY #$00
0029 B1 70 LDA ($70),Y
002B 48 PHA
002C 29 0F AND #$0F
002E 20 51 09 JSR $0951
0031 A6 72 LDX $72
0033 CA DEX
0034 D0 FD BNE $0033
0036 68 PLA
0037 4A LSR A
0038 4A LSR A
0039 4A LSR A
003A 4A LSR A
003B 20 51 09 JSR $0951
003E A6 72 LDX $72
0040 CA DEX
0041 D0 FD BNE $0040
0043 E6 70 INC $70
0045 D0 02 BNE $0049
0047 E6 71 INC $71
0049 A5 71 LDA $71
004B C9 7B CMP #$7B
004D D0 D8 BNE $0027
004F 58 CLI
0050 60 RTS
0051 49 0F EOR #$0F
0053 48 PHA
0054 09 D0 ORA #$D0
0056 20 67 09 JSR $0967
0059 68 PLA
005A 48 PHA
005B 09 90 ORA #$90
005D 20 67 09 JSR $0967
0060 68 PLA
0061 09 B0 ORA #$B0
0063 20 67 09 JSR $0967
0066 60 RTS
0067 A2 FF LDX #$FF
0069 8E 43 FE STX $FE43
006C 8D 4F FE STA $FE4F
006F E8 INX
0070 8E 40 FE STX $FE40
0073 EA NOP
0074 EA NOP
0075 EA NOP
0076 EA NOP
0077 A2 08 LDX #$08
0079 8E 40 FE STX $FE40
007C 60 RTS
007D 00 BRK
007E .END
It takes a few parameters from the calling BBC Basic program, one of which is playback speed. At the time, I did disassemble this successfully and incorporate this assembly into my own Utility-ROM as a *PLAY
command for BBC Master, a la "C64's Simon's Basic" to provide extra utilities via easy to use star commands. It was my GCSE Computer Studies project in 1989, called "System PLUS". I don't have the same tools easily to hand but I might be able to re-run the disassembly under emulator for BBC micro and update the answer.
What bit depth might the samples have? I read that with the AY-8912 sound chip, that there was a esotetric technique / trial and error to work out a bit depth of 5 bits. I will try to find the name of the technique.
Were each sample linear or logarithmic?
What was the sample rate of the playback?
Curiously, documentation for a Speech Synthesizer for the BBC suggested 8 bits logarithmic was possible, cited here: https://retrocomputing.stackexchange.com/a/17206/8111