home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib26b.dsk / DUET.DEMO.bas < prev    next >
BASIC Source File  |  2023-02-26  |  6KB  |  120 lines

  1. 10  REM **********************
  2. 20  REM *     DUET.DEMO      *
  3. 30  REM *  BY DOUG JEFFERYS  *    
  4. 40  REM * COPYRIGHT (C) 1985 *
  5. 50  REM * BY MICROSPARC, INC *
  6. 60  REM * CONCORD, MA  01742 *
  7. 70  REM **********************
  8. 80  REM 
  9. 90  REM 
  10. 100  PRINT  CHR$(4);"BLOAD NIBBLE.DUET"
  11. 110  TEXT : HOME : PRINT "   TWO-VOICE SOUND, BY DOUG JEFFERYS": PRINT "** COPYRIGHT 1985 BY MICROSPARC, INC **"
  12. 120  POKE 34,2
  13. 130  PRINT 
  14. 140  PRINT "WELCOME TO THE WORLD OF TWO-VOICE SOUND.REMEMBER WHEN THIS ";: POKE 768,255: POKE 769,2: POKE 770,200: CALL 771: PRINT "USED TO BE IMPOSSIBLE": PRINT 
  15. 150  PRINT "NOT ANY MORE. YOU, TOO, CAN NOW DO IT,  FROM ANY PROGRAM YOU WRITE.": PRINT 
  16. 160 VP =  PEEK(37): GOSUB 1090: VTAB VP +1
  17. 170  PRINT "AFTER BLOADING IN THE ROUTINE, ONLY     THREE POKES ARE NEEDED."
  18. 180  PRINT 
  19. 190  PRINT "]POKE 768,DEPTH OF WAVE"
  20. 200  PRINT "]POKE 769,LENGTH OF TONE"
  21. 210  PRINT "]POKE 770,OVERALL PITCH"
  22. 220  PRINT "]CALL 771"
  23. 240  PRINT 
  24. 250  PRINT "WILL EXECUTE THE ROUTINE."
  25. 260  GOSUB 1080
  26. 270  HOME 
  27. 280  PRINT "FOR EXAMPLE, THE TONE YOU HEARD AT THE  START OF THIS PROGRAM WAS DONE LIKE THIS"
  28. 290  PRINT "]POKE 768,255: POKE 769,2: POKE 771,200"
  29. 300  PRINT "]CALL 771"
  30. 310 VP =  PEEK(37): GOSUB 1090: VTAB VP +1
  31. 340  PRINT : PRINT "THE HIGHER THE PITCH, THE SHORTER THE   SOUND.  THIS WAS DONE CHANGING ONLY THE PITCH.": POKE 770,100: CALL 771: FOR I = 1 TO 3000: NEXT I
  32. 350  PRINT : PRINT "ALSO NOTE THAT INCREASING THE PITCH     NUMBER LOWERS THE PITCH.": PRINT "FOR EXAMPLE:  PITCH=255": POKE 770,255: CALL 771: PRINT 
  33. 360  GOSUB 1080
  34. 370  HOME 
  35. 380  PRINT "LOW DEPTH VALUES GREATLY SHORTEN TONES.": POKE 768,2: POKE 769,50: CALL 771: PRINT "THAT WAS A LOW DEPTH VALUE."
  36. 390  PRINT "(THE DEPTH WAS '2', AS COMPARED TO THE  '255' YOU HAVE BEEN USED TO, AND JUST TOMAKE IT AUDIBLE, THE LENGTH WAS         INCREASED TO '50', RATHER THAN THE USUAL'2'."
  37. 400  GOSUB 1080
  38. 410  HOME 
  39. 420  PRINT "CHANGING THE PITCH IN A FOR-NEXT LOOP   CAN BE INTERESTING.  FOR EXAMPLE:": PRINT 
  40. 430  PRINT "]POKE 768,100: POKE 769,1"
  41. 440  PRINT "]FOR I = 100 TO 10 STEP -1: POKE 770,I: CALL 771: NEXT I"
  42. 450  PRINT : PRINT "YIELDS THIS"
  43. 460 VP =  PEEK(37): GOSUB 1090: VTAB VP +1
  44. 470  POKE 768,100: POKE 769,1
  45. 480  FOR I = 100 TO 10  STEP  -1: POKE 770,I: CALL 771: NEXT 
  46. 490  PRINT : PRINT "OF COURSE, IT CAN GO THE OTHER WAY..."
  47. 500  FOR I = 10 TO 100: POKE 770,I: CALL 771: NEXT I
  48. 510  GOSUB 1080
  49. 520  HOME 
  50. 530  PRINT "EVER THOUGHT THAT THE OLD BEEP OF A     CONTROL-G WAS DULL?"
  51. 540  PRINT  CHR$(7): REM  DULL CONTROL-G
  52. 550  FOR I = 1 TO 20
  53. 560 X =  INT( RND(1) *2)
  54. 570  IF X = 1  THEN  PRINT  CHR$(7);
  55. 580  NEXT I
  56. 590  PRINT "JUST THINK HOW MUCH MORE LIVELY THIS    SOUNDS!": PRINT 
  57. 600  POKE 768,25: POKE 769,1: POKE 770,175
  58. 610  FOR I = 1 TO 20
  59. 620 X =  INT( RND(1) *2)
  60. 630  IF X = 1  THEN  CALL 771
  61. 640  NEXT I
  62. 650 VP =  PEEK(37): GOSUB 1090: VTAB VP +1
  63. 660  PRINT "HOW ABOUT A SHORT, SWEET ROCKET LAUNCH  FOR OUR NEXT VIDEO GAME?"
  64. 670  GOSUB 1080
  65. 680  VTAB 12
  66. 690  PRINT "]POKE 768,5: POKE 769,5"
  67. 700  PRINT "]FOR I = 50 TO 2 STEP -1: POKE 770,I:   CALL 771: NEXT I"
  68. 710  POKE 768,5: POKE 769,5
  69. 720  FOR I = 50 TO 2  STEP  -1: POKE 770,I: CALL 771: NEXT I
  70. 730  GOSUB 1080
  71. 740  HOME 
  72. 750  PRINT "THE SYNTHESIZER CAN ALSO BE USED FOR    MUSICAL NOTES."
  73. 760  PRINT : PRINT "NOTE   OCTAVE 1 (LOW)   OCTAVE 2 (HIGH) "
  74. 770  PRINT " C          240              120"
  75. 780  PRINT " C#         228              113"
  76. 790  PRINT " D          215              105"
  77. 800  PRINT " D#         203               99"
  78. 810  PRINT " E          190               93"
  79. 820  PRINT " F          180               86"
  80. 830  PRINT " F#         170               82"
  81. 840  PRINT " G          160               78"
  82. 850  PRINT " G#         151               74"
  83. 860  PRINT " A          142               70"
  84. 870  PRINT " A#         134               66"
  85. 880  PRINT " B          125               62"
  86. 890  GOSUB 1080
  87. 900  HOME 
  88. 910  PRINT "FOR MOST MUSIC, A VALUE OF '1' IS       SUFFICIENT FOR THE DEPTH OF THE WAVE."
  89. 920  PRINT : PRINT "PICK A VALUE FOR A SHORT NOTE, LIKE AN  EIGHTH NOTE, AND USE IT AS A BASE FOR   THE LONGER NOTES. (QUARTERS, ETC...)"
  90. 930  PRINT : PRINT "USE THE PREVIOUSLY PRESENTED TABLE TO   ENTER THE NOTE VALUES THEMSELVES."
  91. 940  PRINT : PRINT "YOU MAY THEN ENTER THE NOTES IN THE FORMOF 'DATA' STATEMENTS."
  92. 950  PRINT : PRINT "USE A FOR-NEXT LOOP TO READ THE VALUES, POKE THEM IN, AND CALL 771."
  93. 960  PRINT : PRINT "THE DATA FOR 'THE ENTERTAINER' HAS      ALREADY BEEN TYPED IN.  HERE IS THE CODEUSED TO PLAY IT."
  94. 970  GOSUB 1080
  95. 980  HOME 
  96. 990  PRINT : PRINT 
  97. 1000  PRINT : PRINT "]FOR I = 1 TO 79: READ D,L,P: POKE 768,D: POKE 769,L: POKE 770,P: CALL 771: NEXT";
  98. 1010  FOR I = 1 TO 79: READ D,L,P: POKE 768,D: POKE 769,L: POKE 770,P: CALL 771: NEXT 
  99. 1020  PRINT : PRINT : PRINT "ENTERTAINED?"
  100. 1030  GOSUB 1080
  101. 1040  HOME 
  102. 1050  PRINT "... AND SO ENDS THIS DEMONSTRATION OF   TWO-VOICE SOUND ON THE APPLE COMPUTER."
  103. 1060  PRINT : PRINT : PRINT : PRINT "BYE FOR NOW!"
  104. 1070  TEXT : VTAB 23: END 
  105. 1080  REM  CONTINUE
  106. 1090  POKE  -16368,0
  107. 1100  VTAB 23: PRINT "PRESS <RETURN> TO CONTINUE"
  108. 1110  IF  PEEK( -16384) <128  THEN 1110
  109. 1120  POKE  -16368,0
  110. 1130  RETURN 
  111. 1140  REM  DATA FOR 'THE ENTERTAINER'
  112. 1150  DATA  1,50,215,1,50,203,1,50,190,1,120,120,1,50,190,1,120,120,1,50,190,1,180,120
  113. 1160  DATA  1,70,113,1,70,105,1,70,99,1,70,93,1,70,120,1,120,105,1,70,93,1,70,120,1,120,105,1,180,120
  114. 1170  DATA  1,50,215,1,50,203,1,50,190,1,120,120,1,50,190,1,120,120,1,50,190,1,180,120
  115. 1180  DATA  1,50,142,1,50,160,1,50,170,1,50,142,1,70,120,1,140,93,1,70,120,1,65,125,1,60,142,1,180,105
  116. 1190  DATA  1,50,215,1,50,203,1,50,190,1,120,120,1,50,190,1,120,120,1,50,190,1,180,120
  117. 1200  DATA  1,70,113,1,70,105,1,70,99,1,70,93,1,70,120,1,120,105,1,70,93,1,70,125,1,120,105,1,180,120
  118. 1210  DATA  1,60,120,1,60,105,1,70,93,1,60,120,1,60,105,1,140,93,1,60,105,1,60,120,1,60,105
  119. 1220  DATA  1,70,93,1,60,120,1,60,105,1,140,93,1,60,105,1,60,120,1,60,105
  120. 1230  DATA  1,70,93,1,60,120,1,120,105,1,70,93,1,60,125,1,120,105,1,120,120,1,100,160,1,120,120