home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib21a.dsk / AUGUST.1984 / SOUND.DEMO.bas < prev    next >
BASIC Source File  |  2023-02-26  |  7KB  |  133 lines

  1. 10  REM  ***************************
  2. 20  REM  *       SOUND.DEMO        *
  3. 30  REM  * BY JAMES R. GESCHWENDER *
  4. 40  REM  *   COPYRIGHT (C) 1984    *
  5. 50  REM  *   BY MICROSPARC, INC.   *
  6. 60  REM  *   LINCOLN, MA. 01773    *
  7. 70  REM  ***************************
  8. 80  DIM Y(4):D$ =  CHR$(4):STADD = 25600:Z = 12.5
  9. 90  PRINT D$;"BLOAD SOUND.READER"
  10. 100  FOR N = 0 TO 4: READ Y(N): NEXT : DATA 65,77,89,107,128
  11. 110  TEXT : HOME : VTAB 10: HTAB 8: PRINT "** SOUND DEMONSTRATION **": VTAB 22: PRINT "** COPYRIGHT 1984 BY MICROSPARC, INC. **"
  12. 120  PRINT D$;"BLOAD SOUNDS"
  13. 130  FOR N = 0 TO 3000: NEXT : CALL 768,6,1,1,30
  14. 140  CALL 768,13,5,2,13: CALL 768,14,5,1,13: FOR N = 1 TO 450: NEXT : CALL 768,13,5,1,13
  15. 150  CALL 768,9,3,40,4: GOSUB 210
  16. 160  CALL 768,9,3,15,4: GOSUB 210: GOSUB 210
  17. 170  FOR N = 1 TO 1500: NEXT 
  18. 180  CALL 768,11,2,1,30: FOR N = 1 TO 500: NEXT 
  19. 190  FOR N = 1 TO 10: CALL 768,7,1,1,1:X =  RND(1) *440: FOR Q = 1 TO X: NEXT Q: NEXT N
  20. 200  GOTO 220
  21. 210  CALL 768,8,2,1,8: FOR N = 1 TO 9: CALL 768,10,N,1,1: POKE  -16299,0: CALL 768,10,N,1,1: POKE  -16300,0: CALL 768,10,N,1,1: NEXT : RETURN 
  22. 220  HOME : VTAB 5: PRINT "THE PURPOSE OF THIS PROGRAM IS TO SHOW"
  23. 230  PRINT "SOME OF THE CAPABILITIES OF THE SOUND"
  24. 240  PRINT "SYNTHESIZER.  ALL THE SOUNDS YOU HAVE"
  25. 250  PRINT "JUST HEARD WERE CREATED WITH THE SOUND"
  26. 260  PRINT "SYNTHESIZER, AND ARE SAVED ON THIS DISK"
  27. 270  PRINT "UNDER THE FILE NAME 'SOUNDS'.  YOU WILL"
  28. 280  PRINT "BE SHOWN SOME USEFUL TECHNIQUES TO AID"
  29. 290  PRINT "YOU IN DESIGNING YOUR OWN SOUNDS.  FOR"
  30. 300  PRINT "EACH SOUND PLAYED, YOU WILL BE SHOWN"
  31. 310  PRINT "WHAT THE SOUND LOOKS LIKE, AND THE"
  32. 320  PRINT "COMMAND OR COMMANDS USED TO INVOKE IT"
  33. 330  PRINT "FROM AN APPLESOFT PROGRAM.": GOSUB 1280
  34. 340 X = 1: GOSUB 1300
  35. 350  PRINT "EVEN THE SIMPLEST PATTERNS CAN GIVE"
  36. 360  PRINT "INTERESTING EFFECTS WHEN REPEATED"
  37. 370  PRINT "RAPIDLY.":P = 1:R = 10:L = 7: GOSUB 1240
  38. 380 P = 4:R = 10:L = 4: GOSUB 1250
  39. 390 P = 9:R = 10:L = 2: GOSUB 1250
  40. 400  PRINT "OF COURSE GREATER COMPLEXITY GIVES MORE"
  41. 410  PRINT "POSSIBILITIES.":X = 2: GOSUB 1300
  42. 420 P = 1:R = 10:L = 1: GOSUB 1240
  43. 430 P = 9:R = 7:L = 1: GOSUB 1250
  44. 440 X = 3: GOSUB 1300
  45. 450 P = 2:R = 15:L = 1: GOSUB 1240
  46. 460 P = 1:R = 20:L = 1: GOSUB 1250
  47. 470 X = 4: GOSUB 1300:P = 4:R = 8:L = 20: GOSUB 1240
  48. 480 X = 5: GOSUB 1300:P = 1:R = 1:L = 50: GOSUB 1240
  49. 490 X = 6: GOSUB 1300:P = 1:R = 1:L = 30: GOSUB 1240
  50. 500  PRINT "A SIMPLE PATTERN CAN ALSO SOUND LIKE A"
  51. 510  PRINT "BIRD.":X = 7: GOSUB 1300:P = 1:R = 10:L = 1: GOSUB 1240
  52. 520  PRINT "IF YOU WANT IT TO SOUND MORE NATURAL,"
  53. 530  PRINT "INTRODUCE RANDOM PAUSES LIKE THIS;": GOSUB 1280
  54. 540  PRINT "590  FOR N = 1 TO 10: CALL 768,7,"
  55. 550  HTAB 6: PRINT "1,1,1:X = RND (1) * 500: FOR"
  56. 560  HTAB 6: PRINT "Q = 1 TO X: NEXT Q: NEXT N"
  57. 570  FOR N = 1 TO 10: CALL 768,7,1,1,1:X =  RND(1) *440: FOR Q = 1 TO X: NEXT Q: NEXT N
  58. 580  GOSUB 1280: PRINT "SOMETIMES MOVING THE SOUND UP OR DOWN ON";
  59. 590  PRINT "THE SCREEN CAN MAKE A SMALL BUT"
  60. 600  PRINT "IMPORTANT DIFFERANCE IN THE SOUND.": GOSUB 1280
  61. 610  PRINT "SO, FOR THE INCOMING SHELL YOU HEARD"
  62. 620  PRINT "EARLIER, I USED THIS.":X = 8: GOSUB 1300
  63. 630 P = 2:R = 1:L = 8: GOSUB 1240
  64. 640  PRINT "FOR SOME SOUNDS, IT IS LESS OBVIOUS HOW"
  65. 650  PRINT "TO LAY THEM OUT.  TRIAL AND ERROR TAKES"
  66. 660  PRINT "ON A GREAT DEAL OF IMPORTANCE.": GOSUB 1280
  67. 670  PRINT "FOR INSTANCE, WOULD YOU HAVE GUESSED"
  68. 680  PRINT "THE PATTERN FOR A MACHINE GUN COULD LOOK";
  69. 690  PRINT "LIKE THIS?":X = 9: GOSUB 1300
  70. 700 P = 3:R = 40:L = 4: GOSUB 1240
  71. 710  PRINT "OTHER SOUNDS CAN BE BASICALLY SIMPLE,"
  72. 720  PRINT "BUT REQUIRE INOVATION IN THE PLAYING IN"
  73. 730  PRINT "ORDER TO MAKE THEM SOUND RIGHT.": GOSUB 1280
  74. 740 X = 10: GOSUB 1300: PRINT "TAKE THIS FOR INSTANCE."
  75. 750  PRINT "ORDINARY TECHNIQUES DON'T YIELD ANYTHING";
  76. 760  PRINT "PARTICULARLY INTERESTING.":P = 5:R = 3:L = 20: GOSUB 1240
  77. 770 P = 9:R = 30:L = 1: GOSUB 1250
  78. 780 P = 2:R = 20:L = 3: GOSUB 1250
  79. 790  PRINT "BUT WHAT IF YOU MADE A ROUTINE IN YOUR"
  80. 800  PRINT "APPLESOFT PROGRAM THAT PLAYED IT AT EACH";
  81. 810  PRINT "OF THE PITCHES, 1 TO 9, CONSECUTIVELY?": GOSUB 1280
  82. 820  PRINT "A LINE LIKE THIS WOULD ACCOMPLISH IT."
  83. 830  PRINT "890  FOR N = 3 TO 27:X =  INT (N /"
  84. 840  HTAB 6: PRINT "3): CALL 768,10,X,1,1: NEXT"
  85. 850  GOSUB 1280
  86. 860  PRINT "AND WHEN EXECUTED WOULD SOUND LIKE THIS;";: GOSUB 1280
  87. 870  FOR N = 3 TO 27:X =  INT(N/3): CALL 768,10,X,1,1: NEXT 
  88. 880  GOSUB 1280: PRINT "OR ADD ANOTHER SOUND AND SOME FLASHES,"
  89. 890  PRINT "AND YOU GET THIS.": GOSUB 1280: GOSUB 210: GOSUB 1280
  90. 900  PRINT "SIMPLE MUSIC CAN BE REPRODUCED BY"
  91. 910  PRINT "ENTERING IT NOTE BY NOTE FROM SHEET"
  92. 920  PRINT "MUSIC.  HERE IS AN EXAMPLE.":X = 11: GOSUB 1300: GOSUB 1230
  93. 930 P = 2:R = 1:L = 30: GOSUB 1240
  94. 940  PRINT "HERE IS A TUNE THAT IS HIGHER ON THE"
  95. 950  PRINT "SCALE.":X = 12: GOSUB 1300: GOSUB 1230
  96. 960 P = 1:R = 1:L = 85: GOSUB 1240
  97. 970  PRINT "NOTE THAT FOR THE SAKE OF CLARITY,"
  98. 980  PRINT "SHARPS AND FLATS ARE NOT INCLUDED IN"
  99. 990  PRINT "MODE TWO.": GOSUB 1280
  100. 1000  PRINT "THIS IS BECAUSE THESE WOULD NOT BE"
  101. 1010  PRINT "EASILY DISTINGUISHABLE ON THE MUSICAL"
  102. 1020  PRINT "STAFF PROVIDED.": GOSUB 1280
  103. 1030  PRINT "HOWEVER, YOU MAY WISH TO ATTEMPT TO ADD"
  104. 1040  PRINT "SHARPS OR FLATS IN MODE ONE, BUT YOU"
  105. 1050  PRINT "MUST DO IT BY EAR.": GOSUB 1280
  106. 1060  PRINT "IF YOU HAVE A LONG OR REPETITIOUS TUNE,"
  107. 1070  PRINT "YOU MAY WANT TO PUT IT ON TWO OR MORE"
  108. 1080  PRINT "SCREENS, LIKE THIS;":X = 13: GOSUB 1300: GOSUB 1230
  109. 1090 P = 5:R = 1:L = 13: GOSUB 1240
  110. 1100  PRINT "NOTE THAT THE AVERAGE LENGTH OF A NOTE"
  111. 1110  PRINT "LINE IS A MATTER OF CHOICE, HERE, LONGER";
  112. 1120  PRINT "NOTE LINES ARE USED.": GOSUB 1280
  113. 1130  PRINT "HERE IS THE REST OF THE 'MARINE HYMN',"
  114. 1140  PRINT "AND WHAT IT SOUNDS LIKE PLAYED ALONE.":X = 14: GOSUB 1300: GOSUB 1230
  115. 1150 P = 5:R = 1:L = 13: GOSUB 1240: PRINT "NOTE THAT LEDGER LINES ARE PROVIDED WHEN";
  116. 1160  PRINT "YOU ENTER NOTES HIGH ON THE SCALE."
  117. 1170  HCOLOR= 1: HPLOT 10,48 TO 269,48: HPLOT 10,54 TO 269,54: GOSUB 1280
  118. 1180  PRINT "USING THESE TECHNIQUES, AND ANY OF YOUR"
  119. 1190  PRINT "OWN, A GREAT VARIETY OF SOUNDS CAN BE"
  120. 1200  PRINT "CREATED."
  121. 1210  CALL 768,13,5,2,13: CALL 768,14,5,1,13: FOR N = 1 TO 450: NEXT : CALL 768,13,5,1,13
  122. 1220 : GOSUB 1280: TEXT : HOME : END 
  123. 1230  HCOLOR= 1: FOR N = 0 TO 4: HPLOT 10,Y(N) TO 269,Y(N): NEXT : HCOLOR= 3: RETURN 
  124. 1240  GOSUB 1280: GOTO 1260
  125. 1250  HOME : VTAB 21
  126. 1260  HTAB 10: PRINT "CALL 768,"X","P","R","L: CALL 768,X,P,R,L: GOSUB 1280: RETURN 
  127. 1270  END 
  128. 1280  VTAB 24: HTAB 9: PRINT "<<RETURN TO CONTINUE>> ";: GET A$: IF  ASC(A$) < >13  THEN 1280
  129. 1290  HOME : VTAB 21: RETURN 
  130. 1300  HGR : HCOLOR= 3: HPLOT 0,0 TO 279,0 TO 279,159 TO 0,159 TO 0,0
  131. 1310 SNUM = X:TNUM =  PEEK(STADD +SNUM *256 -256)
  132. 1320  FOR N = 1 TO TNUM:CX = Z +N:Q =  PEEK(STADD +SNUM *256 -256 +N):CY = Z +Q/2: IF Q >0  THEN  HPLOT CX,CY
  133. 1330  NEXT : RETURN