home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / games / alpha.zip / SYSAR3M.BAS < prev    next >
BASIC Source File  |  1986-12-09  |  5KB  |  112 lines

  1. 100  REM ar-3 woofer to morel mdm75 midrange
  2. 110 DEF FNPHLP1(W,WC,D) = -ATN(W/WC)
  3. 120 DEF FNPHHP1(W,WC,D) =  ATN(WC/W)
  4. 130 DEF FNPHLP2(W,WC,D) = -ATN( D*W /(WC*(1.000001-(W/WC)^2 ) ) ) + PI*(W>WC)
  5. 140 DEF FNPHHP2(W,WC,D) =  ATN( D*WC/(W *(1.000001-(WC/W)^2 ) ) ) - PI*(W<WC)
  6. 150 DEF FNAMLP1(W,WC,D) = 1 / SQR(1!+(W/WC)^2)
  7. 160 DEF FNAMHP1(W,WC,D) = 1 / SQR(1!+(WC/W)^2)
  8. 170 DEF FNAMLP2(W,WC,D) = 1 / SQR(1+(W/WC)^4+(D*D-2!)*(W/WC)^2)
  9. 180 DEF FNAMHP2(W,WC,D) = 1 / SQR(1+(WC/W)^4+(D*D-2.000001)*(WC/W)^2)
  10. 190 DEF FNDBV(AMP)      = 20!*LOG(AMP)/LOG(10!)
  11. 200 DEF FNPHD(RAD)     = 180!*RAD/PI
  12. 210 DEF FNSUMA(AA,AB,PA,PB) = SQR((AA*SIN(PA)+AB*SIN(PB))^2 + (AA*COS(PA)+AB*COS(PB))^2 )
  13. 220 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 )
  14. 230 DEF FNSUMPN(AA,AB,PA,PB) =   AA*SIN(PA)+AB*SIN(PB)
  15. 240 DEF FNSUMPD(AA,AB,PA,PB) =   AA*COS(PA)+AB*COS(PB)
  16. 250 DEF FNDIRF(AA,AB,PA,PB) = ABS((SIN((PA-PB))*(((AA >= AB)*AB/AA)+((AB > AA)*AA/AB)  )))
  17. 260 PI = ATN(SQR(3!))*3
  18. 270 DIM FREQT(10)
  19. 280 FREQT(1)=20:FREQT(2)=25:FREQT(3)=32:FREQT(4)=40:FREQT(5)=50:FREQT(6)=64:
  20. 290 FREQT(7)=80:FREQT(8)=100:FREQT(9)=128:FREQT(10)=160
  21. 300 REM   Crossover characteristics
  22. 310 FCL = 900.1 :QCL = .62               :REM first section of low-pass
  23. 320 FCL2  = 900000.1 :QCL2  = .707        :REM second section of low-pass
  24. 330 FCH = 900.1 :QCH = .62               :REM first section of high-pass
  25. 340 PRINT "Enter QCL1 at F=";FCL;" or hit enter for ";QCL
  26. 350 INPUT ANS
  27. 360 IF ANS > 0 THEN QCL = ANS
  28. 370 PRINT "Enter QCL2 at F=";FCL2;" or hit enter for ";QCL2
  29. 380 INPUT ANS
  30. 390 IF ANS > 0 THEN QCL2 = ANS
  31. 400 PRINT "Enter QCH1 at F=";FCH;" or hit enter for ";QCH
  32. 410 INPUT ANS
  33. 420 IF ANS > 0 THEN QCH = ANS
  34. 430 REM   driver characteristics
  35. 440 FLB = .025 :QLB =  .707        :REM woofer Box resonance
  36. 450 FLL = .45  :QLL = 1.1          :REM woofer resonance
  37. 460 FLH = 1200! :QLH = 1.1         :REM woofer high end roll off
  38. 470 FHL = 600.1 :QHL = 1.1         :REM midrange low-end roll-off (B2)
  39. 480 FHH = 6000! :QHH = .6        :REM midrange high-end roll-off
  40. 490 REM Upper driver is dist inches in front of lower driver
  41. 500 DIST = 1!
  42. 510 REM End of variables
  43. 520 WLB = FLB*2*PI
  44. 530 DLB = 1!/QLB
  45. 540 WCH = FCH*2*PI
  46. 550 WCL2 = FCL2*2*PI
  47. 560 DCL2 = 1!/QCL2
  48. 570 WCL = FCL*2*PI
  49. 580 DCL = 1!/QCL
  50. 590 DCH = 1!/QCH
  51. 600 WLL = FLL*2*PI
  52. 610 WLH = FLH*2*PI
  53. 620 DLL = 1!/QLL
  54. 630 DLH = 1!/QLH
  55. 640 WHL = FHL*2!*PI
  56. 650 WHH = FHH*2!*PI
  57. 660 DHL = 1!/QHL
  58. 670 DHH = 1!/QHH
  59. 680 GOSUB 1050
  60. 690 FOR ID = 2 TO 4
  61. 700 FOR IO = 1 TO 10
  62. 710 IF ID = 5 AND IO > 1 THEN GOTO 1030
  63. 720 F = FREQT(IO)*10^(ID-2)
  64. 730 IF F=1000! THEN GOSUB 1050
  65. 740 W = F*2!*PI
  66. 750 REM      basic equations for response
  67. 760 LPPHAS = FNPHLP2(W,WCL,DCL) + FNPHLP2(W,WCL2,DCL2) + FNPHLP2(W,WLH,DLH) + FNPHHP2(W,WLL,DLL) + FNPHHP2(W,WLB,DLB)
  68. 770 LPGAIN = FNAMLP2(W,WCL,DCL) * FNAMLP2(W,WCL2,DCL2) * FNAMLP2(W,WLH,DLH) * FNAMHP2(W,WLL,DLL) * FNAMHP2(W,WLB,DLB)
  69. 780 HPPHAS = FNPHHP2(W,WCH,DCH) + FNPHHP2(W,WHL,DHL) + FNPHLP2(W,WHH,DHH)                + DIST * W /(12!*1100)
  70. 790 HPGAIN = FNAMHP2(W,WCH,DCH) * FNAMHP2(W,WHL,DHL) * FNAMLP2(W,WHH,DHH)
  71. 800 REM
  72. 810 DIRC   = FNDIRF(HPGAIN,LPGAIN,HPPHAS,LPPHAS)
  73. 820 AMPR   = FNSUMA(HPGAIN,LPGAIN,HPPHAS,LPPHAS)
  74. 830 AMPR = AMPR * FNAMHP2(W,WEL,DEL)^4
  75. 840 POWR   = FNSUMPW(HPGAIN,LPGAIN,HPPHAS,LPPHAS)
  76. 850 POWR = POWR * FNAMHP2(W,WEL,DEL)^4
  77. 860 PHASN  = FNSUMPN(HPGAIN,LPGAIN,HPPHAS,LPPHAS)
  78. 870 PHASD  = FNSUMPD(HPGAIN,LPGAIN,HPPHAS,LPPHAS)
  79. 880 PHAS   = ATN(PHASN/PHASD)
  80. 890 REM PHAS = PHAS * FNPHHP2(W,WEL,DEL)*2!
  81. 900 IF (PHASN<0! AND PHASD<0!)THEN PHAS = PHAS-PI
  82. 910 IF (PHASN>0! AND PHASD<0!)THEN PHAS = PI+PHAS
  83. 920 LPAMP  = FNDBV(LPGAIN)
  84. 930 HPAMP  = FNDBV(HPGAIN)
  85. 940 AMPRD  = FNDBV(AMPR)
  86. 950 POWRD  = FNDBV(POWR)*.5
  87. 960 HPPHAS = FNPHD(HPPHAS)
  88. 970 PHASD  = FNPHD(PHAS)
  89. 980 LPPHAS = FNPHD(LPPHAS)
  90. 990 PRINT USING"######  ####.## ####.##  ####.## ####.## #.## ###.## ###.## ###.## ####.##";F;LPPHAS;LPAMP;HPPHAS;HPAMP;DIRC;HPPHAS-LPPHAS,AMPRD,POWRD,PHASD
  91. 1000 NEXT IO
  92. 1010 NEXT ID
  93. 1020 PRINT" "
  94. 1030 REM LIST 200-250
  95. 1040 STOP
  96. 1050 PRINT " "
  97. 1060 PRINT "Lower Crossover (1) at:";FCL;" Q:";QCL
  98. 1070 PRINT "Lower Crossover (2) at:";FCL2;" Q:";QCL2
  99. 1080 PRINT "Upper Crossover at:";FCH;" Q:";QCH
  100. 1090 PRINT "   Lower driver (1) lower Fc:";FLL;" Q:";QLL
  101. 1100 PRINT "   Lower driver (2) lower Fc:";FLB;" Q:";QLB
  102. 1110 PRINT "   Lower driver upper Fc:";FLH;" Q:";QLH
  103. 1120 PRINT "   Upper driver lower Fc:";FHL;" Q:";QHL
  104. 1130 PRINT "   Upper driver upper Fc:";FHH;" Q:";QHH
  105. 1140 PRINT "Upper driver is:";DIST;" Inches in front of lower driver"
  106. 1150 PRINT " "
  107. 1160 PRINT "          Lower driver    Upper driver
  108. 1170 PRINT "        ---------------- --------------
  109. 1180 PRINT " Freq    phase   amp,dB   phase  amp,dB  Dirf Ph Diff  Vsum   Psum  Phsum"
  110. 1190 PRINT "------  ------- -------- ------- ------- ---- ------- ------ -----  -----"
  111. 1200 RETURN
  112.