I thought I would put my TI to the task of generating a random list of words and singing them through the Speech Synthesizer to notes in the Newline99 theme song. Here is the yield of that fantastical adventure. Hope you enjoy this silly little side quest.
I used TI BASIC to randomly generate words in certain patterns, and with the Terminal Emulator II cartridge inserted, it was able to pronouce them at predetermined pitches. It ended up being lots of fun.
BABBLE (TI BASIC with Speech Synthesizer & Terminal Emulator II inserted)
This program generates random words and sings them at the predesignated pitches.
100 RANDOMIZE(5)
110 CA=1
120 CALL CLEAR
130 OPEN #1:"SPEECH",OUTPUT
140 PRINT "PREP TABLE..."
150 PRINT "0%---";
160 DIM ST$(70)
170 FOR A=1 TO 70
180 READ ST$(A)
190 NEXT A
200 PRINT "25%---";
210 DIM MV$(49)
220 FOR A=1 TO 49
230 READ MV$(A)
240 NEXT A
250 PRINT "50%---";
260 DIM FC$(54)
270 FOR A=1 TO 54
280 READ FC$(A)
290 NEXT A
300 PRINT "75%---";
310 DIM VT$(21)
320 FOR A=1 TO 21
330 READ VT$(A)
340 NEXT A
350 PRINT "100%"
360 DIM TON$(70)
370 FOR A=1 TO 70
380 READ TON$(A)
390 NEXT A
400 CALL CLEAR
410 PAT=INT(RND*8)+1
420 ON PAT GOSUB 500,520,540,560,590,620,500,520
430 IF CA<=70 THEN 450
440 CA=1
450 PRINT #1:"//";TON$(CA);" 000"
460 CA=CA+1
470 PRINT WD$;" ";
480 PRINT #1:WD$
490 GOTO 410
500 WD$=ST$(INT(RND*70)+1)&MV$(INT(RND*49)+1)&FC$(INT(RND*54)+1)&VT$(INT(RND*21)+1)
510 RETURN
520 WD$=ST$(INT(RND*70)+1)&MV$(INT(RND*49)+1)&FC$(INT(RND*54)+1)
530 RETURN
540 WD$=MV$(INT(RND*49)+1)&FC$(INT(RND*54)+1)
550 RETURN
560 WD$=ST$(INT(RND*70)+1)&MV$(INT(RND*49)+1)&FC$(INT(RND*54)+1)&VT$(INT(RND*21)+1)
570 WD$=WD$&FC$(INT(RND*54)+1)&VT$(INT(RND*21)+1)
580 RETURN
590 WD$=ST$(INT(RND*70)+1)&MV$(INT(RND*49)+1)&FC$(INT(RND*54)+1)&VT$(INT(RND*21)+1)
600 WD$=WD$&FC$(INT(RND*54)+1)
610 RETURN
620 WD$=MV$(INT(RND*49)+1)&FC$(INT(RND*54)+1)&VT$(INT(RND*21)+1)
630 RETURN
640 DATA B,BR,BL,C,CH,CL,CR,D,DR,F,FL,FR,G,GL,GR,H,J,K,L,M,N,P,PH,PL,PR,QU,R,S,SC,SCR,SH,SK,SL
650 DATA SM,SN,SP,SPR,SQU,ST,STR,SW,T,TH,THR,TR,V,W,WH,WR,Y,Z
660 DATA B,C,D,F,G,H,J,K,L,M,N,P,R,S,T,V,W,Y,Z
670 DATA A,E,I,O,U,AI,AU,E,EA,EE,EI,EAU,I,IE,O,OA,OI,OO,OU,U
680 DATA A,E,I,O,U,AI,AU,E,EA,EE,EI,I,IE,O,OA,OI,OO,OU,U,EO,UO,UE,A,E,I,EA,O,OU,U
690 DATA B,BB,CH,CK,D,DD,F,FF,G,G,GHT,K,L,LL,LK,LP,LT,M,MM,N,NN,P,PP,R,RG,RR,RT,S,SH,SK
700 DATA SS,T,TCH,TH,V,W,X,Z,B,D,F,G,K,L,M,N,P,R,S,T,V,W,X,Z
710 DATA A,AY,E,EY,I,IA,IO,O,OU,OY,UE,UY,Y,A,E,E,EY,E,E,Y,Y
720 REM TONES
730 DATA 43,37,36,35,34,30,40,49,43,37,36,35,34,30,27,26
740 DATA 43,37,36,35,34,30,40,49,43,37,36,35,34,30,27,26
750 DATA 44,37,30,46,40,35,34,49,56,49,43,46,40,34,37,30,40,56,49,17
760 DATA 44,37,30,46,40,35,34,49,34,49,34,49,34,49,34,17,63,49
Want to make your own speech sing?
You can PRINT a pitch indicator to the speech device on the line right before the words that are sung at that pitch, with the text "//xx 000", substituting the xx with a pitch value, like this:
10 OPEN #1:"SPEECH",OUTPUT
20 PRINT #1:"//17 000"
30 PRINT #1:"THIS IS THE NOTE CALLED MIDDLE C."
40 PRINT #1:"THIS IS HOW IT SOUNDS TO ME."
Refer to the below chart for the pitch value to use for certain notes. The speech synthesizer was not designed to sing, so many of the pitches are very out of tune, the degree to which being indicated in the table below as well. A pitch of 00 is a pitch-less "whisper" sound.
Pitch
Note
Off tune (cents)
Freq.
01
C♯5
-40
542
02
C5
-45
508
03
B4
-45
478
04
A4
40
451
05
A4
-45
428
06
G♯4
-35
406
07
G4
-25
387
08
F♯4
-5
369
09
F4
15
353
10
E4
45
338
11
E4
-25
325
12
D♯4
5
312
13
D4
40
301
14
D4
-25
290
15
C♯4
20
280
16
C♯4
-40
271
17
C4
5
262
18
C4
-50
254
19
B3
-5
246
20
A♯3
-5
232
21
A3
-10
219
22
G♯3
5
208
23
G3
15
198
24
G3
-25
193
25
F♯3
-10
184
26
F3
15
176
27
F3
25
165
28
E3
-30
162
29
D♯3
0
156
30
D3
10
148
31
D3
-20
145
32
C♯3
15
140
33
C3
30
133
34
C3
-25
129
35
B2
20
125
36
A♯2
5
117
37
A2
15
111
38
A2
-30
108
39
G♯2
20
105
40
G2
15
99
41
F♯2
30
94
42
F♯2
-10
92
43
F2
35
89
44
E2
35
84
45
E2
-30
81
46
D♯2
5
78
47
D2
35
75
48
D2
-35
72
49
C♯2
-5
69
50
C2
15
66
51
B1
35
63
52
A♯1
0
60
53
A1
-5
58
54
G♯1
30
56
55
G♯1
35
53
56
G1
-30
51
57
F♯1
0
49
58
F♯1
30
47
59
F1
-45
45
60
E1
-25
43
61
D♯1
30
42
62
D♯1
50
40
63
D1
-40
38
Posted in Sidequest on 2020-03-28 20:20:00.
Hits: 2437