home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / games / alpha.zip / PLM75T27.BAS < prev    next >
BASIC Source File  |  1987-01-03  |  7KB  |  206 lines

  1. 10 REM Copyright 1987, Arnold B. Krueger, Grosse Pointe Woods, MI. 48236
  2. 20 N$ = "Mod MDM-75 Mod Eq MDT-27"
  3. 30 REM  lower crossover
  4. 40 REM roll-on
  5. 50 F1 = .0001 
  6. 60 Q1 = .707
  7. 70 REM roll-off
  8. 80 F2 = 3000!
  9. 90 Q2 = 1.5
  10. 100 REM  lower driver
  11. 110 F3 =  600!
  12. 120 Q3 = 1.1  
  13. 130 F4 = 6000!
  14. 140 Q4 = .6
  15. 150 REM  midrange hi eq
  16. 160 F5 = 1E+07
  17. 170 Q5 = .707
  18. 180 REM  upper crossover
  19. 190 REM  roll-on
  20. 200 F6 = 3000!
  21. 210 Q6 = 1.1
  22. 220 REM  roll-off
  23. 230 F7 = 10000000#
  24. 240 Q7 = .7
  25. 250 REM  upper driver
  26. 260 F8 = 1300!
  27. 270 Q8 = 1.5
  28. 280 F9 = 14000!
  29. 290 Q9 = .7
  30. 300 REM tweeter hi eq
  31. 310 FA = 20000!
  32. 320 QA = 1.5
  33. 321 goto 330
  34. 325 stop
  35. 330 DEF FNPHLP1(W,WC,D) =  ATN(W/WC)
  36. 340 DEF FNPHHP1(W,WC,D) =  ATN(WC/W)
  37. 350 DEF FNPHLP2(W,WC,D) = -ATN( D*W /(WC*(1.000001-(W/WC)^2 ) ) ) + PI*(W>WC)
  38. 360 DEF FNPHHP2(W,WC,D) =  ATN( D*WC/(W *(1.000001-(WC/W)^2 ) ) ) - PI*(W<WC)
  39. 370 DEF FNAMLP1(W,WC,D) = 1 / SQR(1!+(W/WC)^2)
  40. 380 DEF FNAMHP1(W,WC,D) = 1 / SQR(1!+(WC/W)^2)
  41. 390 DEF FNAMLP2(W,WC,D) = 1 / SQR(1+(W/WC)^4+(D*D-2!)*(W/WC)^2)
  42. 400 DEF FNAMHP2(W,WC,D) = 1 / SQR(1+(WC/W)^4+(D*D-2.000001)*(WC/W)^2)
  43. 410 DEF FNDBV(AMP)      = 20!*LOG(AMP)*LOGCONV
  44. 420 DEF FNPHD(RAD)     = 180!*RAD/PI
  45. 430 DEF FNSUMA(AA,AB,PA,PB) = SQR((AA*SIN(PA)+AB*SIN(PB))^2 + (AA*COS(PA)+AB*COS(PB))^2 )
  46. 440 DEF FNSUMPW(AA,AB,PA,PB) = SQR((AA*AA*SIN(PA)+AB*AB*SIN(PB))^2 +                                               (AA*AA*COS(PA)+AB*AB*COS(PB))^2 )
  47. 450 DEF FNSUMPN(AA,AB,PA,PB) =   AA*SIN(PA)+AB*SIN(PB)
  48. 460 DEF FNSUMPD(AA,AB,PA,PB) =   AA*COS(PA)+AB*COS(PB)
  49. 470 DEF FNDIRF(AA,AB,PA,PB) = ABS((SIN((PA-PB))*(((AA >= AB)*AB/AA)+((AB > AA)*AA/AB)  )))
  50. 480 PI = ATN(SQR(3!))*3
  51. 490 LOGCONV=1!/LOG(10!)
  52. 500 LOGCONV=1!/LOG(10!)
  53. 510 DIM FREQT(20)
  54. 520 FREQT(1)=20:FREQT(2)=22:FREQT(3)=25:FREQT(4)=28:FREQT(5)=32:FREQT(6)=36
  55. 530 FREQT(7)=40:FREQT(8)=44:FREQT(9)=50:FREQT(10)=56:FREQT(11)=64:FREQT(12)=72
  56. 540 FREQT(13)=80:FREQT(14)=88:FREQT(15)=100:FREQT(16)=112
  57. 550 FREQT(17)=128:FREQT(18)=144:FREQT(19)=160:FREQT(20)=180
  58. 560 SCREEN 2 : KEY OFF : CLS
  59. 570 XS = ( LOG(20000)-LOG(20) )*LOGCONV
  60. 580 W1 = 2!*PI*F1:D1 = 1!/Q1
  61. 590 W2 = 2!*PI*F2:D2 = 1!/Q2
  62. 600 W3 = 2!*PI*F3:D3 = 1!/Q3
  63. 610 W4 = 2!*PI*F4:D4 = 1!/Q4
  64. 620 W5 = 2!*PI*F5:D5 = 1!/Q5
  65. 630 W6 = 2!*PI*F6:D6 = 1!/Q6
  66. 640 W7 = 2!*PI*F7:D7 = 1!/Q7
  67. 650 W8 = 2!*PI*F8:D8 = 1!/Q8
  68. 660 W9 = 2!*PI*F9:D9 = 1!/Q9
  69. 670 WA = 2!*PI*FA:DA = 1!/QA
  70. 680 X = 1
  71. 690    LINE(52,1)-(639,1)
  72. 700    LINE(52,180)-(639,180)
  73. 720    FOR ROW = 22.5 TO 157.5 STEP 22.5
  74. 730       LINE(52,ROW)-(640,ROW),,,&hf000
  75. 740    NEXT ROW
  76. 770 FOR OCT  = 0 TO 4  
  77. 780  DECADE = 10^OCT
  78. 790  XSCALE = 75!*(LOG(20!*DECADE)-2.3)
  79. 800  LINE(XSCALE,1)-(XSCALE,180)
  80. 810  XSCALE = 75!*(LOG( 50!*DECADE)-2.3)
  81. 820  LINE(XSCALE,1)-(XSCALE,180)
  82. 830  XSCALE = 75!*(LOG(100!*DECADE)-2.3)
  83. 840  LINE(XSCALE,1)-(XSCALE,180)
  84. 850  XSCALE = XSCALE + 1
  85. 860  LINE(XSCALE,1)-(XSCALE,180)
  86. 870  FOR NOTE = 1 TO 20
  87. 880   F = FREQT(NOTE)*DECADE
  88. 890   IF F > 50000! THEN GOTO 1750
  89. 900   W = 2!*F*PI
  90. 910   XS = 75!*(LOG(F)-2.3)
  91. 920   rem IF TOGGLE = 0 THEN TOGGLE = 1 ELSE TOGGLE = 0
  92. 930   REM Lower xover  calculations
  93. 940   REM Lower xover  Amplitude
  94. 950   YLA = FNAMHP2(W,W1,D1)*FNAMLP2(W,W2,D2)
  95. 960   REM Lower driver calculations
  96. 970   REM Lower driver Amplitude
  97. 980   YMA = FNAMHP2(W,W3,D3)*FNAMLP2(W,W4,D4)*FNAMLP2(W,W5,D5)
  98. 990   REM lower system amplitude response 
  99. 1000   SLA = YLA*YMA
  100. 1010   REM Pick something to plot
  101. 1020   YM = FNDBV(SLA)
  102. 1030   YM = (20!-YM)*4.5
  103. 1040   IF YM<10 THEN YM = 10
  104. 1050   IF YM>180 THEN YM = 180
  105. 1060   IF OCT=0 THEN IF NOTE = 1 THEN GOTO 1080
  106. 1070   LINE(XS,YM)-(OLDX,OLDYMA)
  107. 1080   OLDYMA = YM
  108. 1090   REM Lower xover  Phase     
  109. 1100   YLP = FNPHHP2(W,W1,D1)+FNPHLP2(W,W2,D2)
  110. 1110   REM Lower driver Phase     
  111. 1120   YMP = FNPHHP2(W,W3,D3)+FNPHLP2(W,W4,D4)+FNPHLP2(W,W5,D5)
  112. 1130   REM lower system phase response 
  113. 1140   SLP = YLP+YMP
  114. 1150   YM = FNPHD(SLP)
  115. 1160   YM = 90-YM/2
  116. 1170   IF YM>180 THEN YM = 180
  117. 1180   IF OCT=0 THEN IF NOTE=1 THEN GOTO 1200
  118. 1190   rem if TOGGLE = 0 THEN LINE(XS,YM) - (OLDX,OLDYMP)
  119. 1191   line(xs,ym)-(oldx,oldymp),,,&hf0f0
  120. 1200   OLDYMP = YM 
  121. 1210   REM Upper driver calculations
  122. 1220   REM Upper xover  calculations
  123. 1230   REM Upper xover  Amplitude
  124. 1240   YUA = FNAMHP2(W,W6,D6)*FNAMLP2(W,W7,D7)
  125. 1250   REM Upper driver Amplitude
  126. 1260   YTA = FNAMHP2(W,W8,D8)*FNAMLP2(W,W9,D9)*FNAMLP2(W,WA,DA)
  127. 1270   REM Upper system amplitude response 
  128. 1280   SUA = YUA*YTA
  129. 1290   REM   Pick something to plot
  130. 1300   YM = FNDBV(SUA)
  131. 1310   YM = (20!-YM)*4.5
  132. 1320   IF YM<10 THEN YM = 10
  133. 1330   IF YM>180 THEN YM = 180
  134. 1340   IF OCT=0 THEN IF NOTE = 1 THEN GOTO 1360
  135. 1350   LINE(XS,YM)-(OLDX,OLDYTA)
  136. 1360   OLDYTA = YM
  137. 1370   REM Upper xover  Phase     
  138. 1380   YUP = FNPHHP2(W,W6,D6)+FNPHLP2(W,W7,D7)
  139. 1390   REM Upper driver Phase     
  140. 1400   YTP = FNPHHP2(W,W8,D8)+FNPHLP2(W,W9,D9)+FNPHLP2(W,WA,DA)
  141. 1410   REM Upper system phase response 
  142. 1420   SUP = YUP+YTP
  143. 1430   REM pick something to plot
  144. 1440   YM = FNPHD(sUP)
  145. 1450   YM = 90-YM/2
  146. 1460   IF YM>180 THEN YM = 180
  147. 1470   IF OCT=0 THEN IF NOTE=1 THEN GOTO 1500
  148. 1490   rem if TOGGLE = 0 THEN LINE(XS,YM) - (OLDX,OLDYTP)
  149. 1491   line(xs,ym)-(oldx,oldytp),,,&hf0f0
  150. 1500   OLDYTP = YM
  151. 1510   REM total system amplitude response
  152. 1520   SSA = FNSUMA(SLA,SUA,SLP,SUP) 
  153. 1530   YM = FNDBV(SSA)
  154. 1540   YM = (20!-YM)*4.5
  155. 1550   IF YM<10 THEN YM = 10
  156. 1560   IF YM>179 THEN YM = 179
  157. 1570   IF OCT=0 THEN IF NOTE = 1 THEN GOTO 1590
  158. 1580   LINE(XS,YM)-(OLDX,OLDYSA)
  159. 1581   LINE(XS,YM+1)-(OLDX,OLDYSA+1)
  160. 1590   OLDYSA = YM
  161. 1620   SSA = FNSUMPw(SLA,SUA,SLP,SUP)
  162. 1630   YM = FNDBV(SSA)
  163. 1640   YM = (20!-YM)*4.5
  164. 1650   IF YM<10 THEN YM = 10
  165. 1680   IF YM>179 THEN goto 1710
  166. 1690   IF OCT=0 THEN IF NOTE = 1 THEN GOTO 1710
  167. 1700   rem IF TOGGLE = 0 THEN LINE(XS,YM) - (OLDX,OLDYsp):LINE(XS,YM+1) - (OLDX,OLDYsp+1)
  168. 1701   line(xs,ym)-(oldx,oldysp),,,&hcccc
  169. 1702   line(xs,ym+1)-(oldx,oldysp+1),,,&hcccc
  170. 1710   OLDYSP = YM
  171. 1720   OLDX = XS
  172. 1730 REM end of loops
  173. 1740 NEXT NOTE
  174. 1750 NEXT OCT
  175. 1760 LOCATE  1,1
  176. 1770 PRINT USING "#### d";180;
  177. 1780 LOCATE 23,1
  178. 1790 PRINT USING "#### d";-180;
  179. 1800 LOCATE 12,1
  180. 1810 PRINT USING "### dB";0!;
  181. 1820 LOCATE  6,1
  182. 1830 PRINT USING "### dB";10!;
  183. 1840 LOCATE 17,1
  184. 1850 PRINT USING "### dB";-10!;
  185. 1860 LOCATE 24,4
  186. 1870 PRINT USING "### Hz";20!;
  187. 1880 LOCATE 24,19
  188. 1890 PRINT USING "### Hz";100!;
  189. 1900 LOCATE 24,40
  190. 1910 PRINT USING " ## kHz";1!;
  191. 1920 LOCATE 24,62
  192. 1930 PRINT USING "### kHz";10!;
  193. 1940 LOCATE 24,70
  194. 1950 PRINT USING "### kHz";20!;
  195. 1951 goto 325
  196. 1960 LOCATE 2,40
  197. 1970 PRINT USING "   &          ";N$;
  198. 1980 LOCATE 3,40
  199. 1990 PRINT USING "     &";"Amplitude:       Phase:          ";
  200. 2000 LINE(450,20)-(465,20)
  201. 2010 LINE(550,20)-(565,20),,,&HF0F0
  202. 2020 LOCATE 4,20
  203. 2030 PRINT USING "Fl: ##### Q1: #.## F2: ##### Q2: #.## F3: ##### Q3: #.##";F1;Q1;F2;Q2;F3;Q3;
  204. 2040 LOCATE 2,1
  205. 2050 END
  206.