Compucolor.org – Virtual Media

Listing of file='VOICE.BAS;01' on disk='vmedia/ay-3-8910_programs-sector.ccvf'

10 REM  *** "VOICE" SYNTHESIZER ***
15 REM
20 REM   THE CLOCK FREQUENCY FOR THE AY-3-8910 MUST BE
25 REM   ENTERED. USUALLY 2.000 MHZ OR 1.78977 MHZ.
30 REM
40 DIM  P(20),DU(64),PL(64,3),PH(64,3)
45 REM  DEFAULT CLOCK FREQUENCY
50 DF= 1.7897725E06
55 GOSUB  25000
60 INPUT "CLOCK FREQUENCY FOR AY-3-8910 : ";FC
70 IF  FC< = 0 THEN  FC= DF
75 REM
80 OUT  48,7:OUT  49,56:REM  CHANNELS 'A,B,C' ONLY
85 REM  ZERO AMPLITUDE ON ALL CHANNELS
90 GOSUB  10000
100 INPUT  "NO. OF PHONEMES : ";NP
105 FOR  I= 1 TO  NP:INPUT  "";P(I):NEXT  I
110 FOR  K= 1 TO  NP
120 Q =  P(K)
130 GOSUB  20000
140 NEXT  K
190 GOSUB  10000
200 GOTO  100
10000 REM  *** STOP SOUND ON ALL CHANNELS ***
10010 REM
10020 VL =  0
10030 OUT  48,8:OUT  49,VL:OUT  48,9:OUT  49,VL:OUT  48,10:OUT  49,VL
10040 RETURN
10050 REM  *** START SOUND ON ALL CHANNELS ***
10060 REM
10070 VL =  15:GOTO  10030
20000 REM  *** "SAY" A PHONEME ***
20010 REM
20020 FOR  I= 0 TO  2
20030 OUT  48,2* I:OUT  49,PL(Q,I)
20040 OUT  48,2* I+ 1:OUT  49,PH(Q,I)
20050 NEXT  I
20060 GOSUB  10050
20070 FOR  I= 1 TO  DU(Q):NEXT  I
20090 RETURN
25000 REM  *** DEFINE THE PHONEMES ***
25010 REM
26000 DU(0) =  59:REM  EH3
26010 DU(1) =  71:REM  EH2
26020 DU(2) =  121:REM  EH1
26030 DU(3) =  47:REM  PA0
26040 DU(4) =  47:REM  DT
26050 DU(5) =  71:REM  A2
26060 DU(6) =  103:REM  A1
26070 DU(7) =  90:REM  ZH
26080 DU(8) =  71:REM  AH2
26090 DU(9) =  55:REM  I3
26100 DU(10) =  80:REM  I2
26110 DU(11) =  121:REM  I1
26120 DU(12) =  103:REM  M
26130 DU(13) =  80:REM  N
26131 PH(13,0) =  1:PL(13,0) =  117
26132 PH(13,1) =  1:PL(13,1) =  117
26133 PH(13,2) =  1:PL(13,2) =  117
26140 DU(14) =  71:REM  B
26150 DU(15) =  71:REM  V
26160 DU(16) =  71:REM  CH
26170 DU(17) =  121:REM  SH
26180 DU(18) =  71:REM  Z
26190 DU(19) =  146:REM  AW1
26200 DU(20) =  121:REM  NG
26210 DU(21) =  146:REM  AH1
26220 DU(22) =  103:REM  OO1
26230 DU(23) =  185:REM  OO
26240 DU(24) =  103:REM  L
26250 DU(25) =  80:REM  K
26260 DU(26) =  47:REM  J
26270 DU(27) =  71:REM  H
26280 DU(28) =  71:REM  G
26290 DU(29) =  103:REM  F
26300 DU(30) =  55:REM  D
26310 DU(31) =  90:REM  S
26320 DU(32) =  185:REM  A
26330 DU(33) =  65:REM  AY
26340 DU(34) =  80:REM  Y1
26350 DU(35) =  47:REM  UH3
26360 DU(36) =  250:REM  AH
26370 DU(37) =  103:REM  P
26380 DU(38) =  185:REM  O
26381 PH(38,0) =  0:PL(38,0) =  160
26382 PH(38,1) =  1:PL(38,1) =  64
26383 PH(38,2) =  1:PL(38,2) =  64
26390 DU(39) =  185:REM  I
26400 DU(40) =  185:REM  U
26410 DU(41) =  103:REM  Y
26420 DU(42) =  71:REM  T
26430 DU(43) =  90:REM  R
26440 DU(44) =  185:REM  E
26450 DU(45) =  80:REM  W
26460 DU(46) =  185:REM  AE
26470 DU(47) =  103:REM  AE1
26480 DU(48) =  90:REM  AW2
26490 DU(49) =  71:REM  UH2
26500 DU(50) =  103:REM  UH1
26510 DU(51) =  185:REM  UH
26520 DU(52) =  80:REM  O2
26530 DU(53) =  121:REM  O1
26540 DU(54) =  59:REM  IU
26550 DU(55) =  90:REM  U1
26560 DU(56) =  80:REM  THV
26570 DU(57) =  71:REM  TH
26580 DU(58) =  146:REM  ER
26590 DU(59) =  185:REM  EH
26600 DU(60) =  121:REM  E1
26610 DU(61) =  250:REM  AW
26620 DU(62) =  185:REM  PA1
26630 DU(63) =  47:REM  STOP
26640 RETURN