home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / eric.hdv / SEQ:CLASSICAL / CLAIR.GEN.bas < prev    next >
BASIC Source File  |  2020-08-13  |  4KB  |  116 lines

  1. 5 TE$ = "CLAIRDLU.MID"
  2. 10 H$ = "MThd":H1$ = "MTrk"
  3. 11 FM = 1
  4. 12 NT = 3
  5. 13 DV = 240
  6. 25 T$ = "CLAIR DE LUNE"
  7. 30 C$ = "SEQUENCED BY ERIC RANGELL,1996"
  8. 40 MM = 136
  9. 50 TP =  INT(62914560/MM)
  10. 60 NN = 4:DD = 2
  11. 70 CC = 24
  12. 75 BB = 8
  13. 80 SF = 0
  14. 90 MI = 0
  15. 91 I$(1) = "STR SECT 1"
  16. 92 I$(2) = "ACOU BASS 1"
  17. 93 I$(3) = "DRUMS"
  18. 100  HOME : PRINT "MIDI FILE PARAMETERS:"
  19. 104  PRINT 
  20. 105  PRINT "FILE TO CREATE = "TE$
  21. 107  PRINT 
  22. 110  PRINT "FORMAT "FM"    "NT" TRACKS"
  23. 120  PRINT 
  24. 140  PRINT "TITLE="T$
  25. 150  PRINT "COPYRIGHT="C$
  26. 152  PRINT 
  27. 160  PRINT "TEMPO = "TP" ("MM" QN PER MIN)"
  28. 165  PRINT DV" DELTA TIME = QN"
  29. 170  PRINT 
  30. 180  PRINT "TIME SIG = "NN"/"2 ^DD
  31. 185  PRINT 
  32. 205  IF MI = 0  THEN  PRINT "MAJOR";
  33. 206  IF MI = 1  THEN  PRINT "MINOR";
  34. 207  PRINT "  ";
  35. 210  PRINT "KEY SIG = " ABS(SF)" ";
  36. 220  IF SF > = 0  THEN  PRINT "SHARPS"
  37. 230  IF SF <0  THEN  PRINT "FLATS"
  38. 235  PRINT 
  39. 240  PRINT CC" CLOCKS PER METRONOME TICK"
  40. 250  PRINT BB" 32ND NOTES PER QTR NOTE"
  41. 270  PRINT : PRINT 
  42. 300  INPUT "PRESS RETURN TO USE THESE PARAMETERS:";RT$
  43. 310  PRINT "GENERATING HEADER..."
  44. 320  PRINT 
  45. 1000 BAS = 8192
  46. 1005  FOR I = 1 TO 4: POKE BAS +I -1, ASC( MID$ (H$,I,1)): NEXT 
  47. 1007 BAS = BAS +4
  48. 1008  POKE BAS,0: POKE BAS +1,0: POKE BAS +2,0: POKE BAS +3,6
  49. 1009 BAS = BAS +4
  50. 1010  POKE BAS, INT(FM/256): POKE BAS +1,FM - INT(FM/256) *256
  51. 1012 BAS = BAS +2
  52. 1014  POKE BAS, INT(NT/256): POKE BAS +1,NT - INT(NT/256) *256
  53. 1016 BAS = BAS +2
  54. 1018  POKE BAS, INT(DV/256): POKE BAS +1,DV - INT(DV/256) *256
  55. 1019 BAS = BAS +2
  56. 1020  FOR I = 1 TO 4: POKE BAS +I -1, ASC( MID$ (H1$,I,1)): NEXT 
  57. 1022 BAS = BAS +4: POKE BAS,0: POKE BAS +1,0: POKE BAS +2,0: POKE BAS +3,0:LL = BAS +2:BAS = BAS +4
  58. 1023  POKE BAS,0:BAS = BAS +1
  59. 1025  POKE BAS,255: POKE BAS +1,3: POKE BAS +2, LEN(T$)
  60. 1027 BAS = BAS +3
  61. 1030  FOR I = 1 TO  LEN(T$): POKE BAS +I -1, ASC( MID$ (T$,I,1)): NEXT 
  62. 1032 BAS = BAS + LEN(T$)
  63. 1035  POKE BAS,0:BAS = BAS +1
  64. 1037  POKE BAS,255: POKE BAS +1,2: POKE BAS +2, LEN(C$)
  65. 1038 BAS = BAS +3
  66. 1040  FOR I = 1 TO  LEN(C$): POKE BAS +I -1, ASC( MID$ (C$,I,1)): NEXT 
  67. 1042 BAS = BAS + LEN(C$)
  68. 1050  POKE BAS,0:BAS = BAS +1
  69. 1055  POKE BAS,255: POKE BAS +1,5 *16 +1: POKE BAS +2,3:BAS = BAS +3
  70. 1057  POKE BAS, INT(TP/65536):BAS = BAS +1
  71. 1058 TP = TP - PEEK(BAS -1) *65536
  72. 1059  POKE BAS, INT(TP/256):BAS = BAS +1
  73. 1060 TP = TP - PEEK(BAS -1) *256
  74. 1061  POKE BAS,TP:BAS = BAS +1
  75. 1070  POKE BAS,0:BAS = BAS +1
  76. 1075  POKE BAS,255: POKE BAS +1,5 *16 +8: POKE BAS +2,4: POKE BAS +3,NN: POKE BAS +4,DD: POKE BAS +5,CC: POKE BAS +6,BB:BAS = BAS +7
  77. 1080  POKE BAS,0:BAS = BAS +1
  78. 1084  IF SF <0  THEN SF = 256 +SF
  79. 1085  POKE BAS,255: POKE BAS +1,5 *16 +9: POKE BAS +2,2: POKE BAS +3,SF: POKE BAS +4,MI:BAS = BAS +5
  80. 1089  POKE BAS,0: POKE BAS +1,255: POKE BAS +2,2 *16 +15: POKE BAS +3,0:BAS = BAS +4
  81. 1092 L0 = BAS -LL -2: POKE LL, INT(L0/256): POKE LL +1,L0 - INT(L0/256) *256
  82. 1100  PRINT  CHR$(4)"BSAVE "TE$",A$2000,E"BAS -1
  83. 1200 BY = BAS -8192
  84. 1300 BAS = 8192
  85. 2000  FOR TK = 2 TO NT
  86. 2010  PRINT "TRACK "TK"  ";: INPUT "FILE TO LOAD:";F$
  87. 2020  PRINT  CHR$(4)"VERIFY "F$
  88. 2030  IF  LEN(F$) < >15  THEN F$ = F$ + MID$ ("               ",1,15 - LEN(F$))
  89. 2050  PRINT  CHR$(4)"PREFIX": INPUT PF$
  90. 2060  PRINT  CHR$(4)"OPEN"PF$",TDIR": PRINT  CHR$(4)"READ"PF$
  91. 2065  INPUT LI$
  92. 2070  IF F$ < > MID$ (LI$,2,15)  THEN 2065
  93. 2075  PRINT  CHR$(4)"CLOSE"
  94. 2080 LN =  VAL( MID$ (LI$,66,6))
  95. 2082  REM  ?"LENGTH="LN
  96. 2100  FOR I = 1 TO 4: POKE BAS +I -1, ASC( MID$ (H1$,I,1)): NEXT 
  97. 2102 BAS = BAS +4
  98. 2105  POKE BAS,0:BAS = BAS +1
  99. 2110  PRINT  CHR$(4)"BLOAD "F$",A$2008"
  100. 2111  REM  GET RID OF SPEED IF STORED IN FILE
  101. 2112  IF  PEEK(8192 +8) = 0  AND  PEEK(8192 +9) > = 144  AND  PEEK(8192 +9) <160  AND  PEEK(8192 +10) = 0  THEN  POKE 8192 +11,0
  102. 2115  REM  RECALCULATE LENGTH BASED ON ACTUAL END OF TRACK EVENT
  103. 2120 LP = 8192 +8 +LN -1
  104. 2130  IF  PEEK(LP) < >47  THEN LP = LP -1: GOTO 2130
  105. 2140 LN = LP -8192 -6
  106. 2207 L1 = LN
  107. 2210  POKE BAS, INT(L1/65536):BAS = BAS +1
  108. 2220 L1 = L1 - PEEK(BAS -1) *65536
  109. 2230  POKE BAS, INT(L1/256):BAS = BAS +1
  110. 2240 L1 = L1 - PEEK(BAS -1) *256
  111. 2250  POKE BAS,L1:BAS = BAS +1
  112. 2300  PRINT  CHR$(4)"BSAVE "TE$",A$2000,L"LN +8",B"BY
  113. 2400 BY = BY +LN +8
  114. 2500 BAS = 8192
  115. 2600  NEXT TK
  116. 2999  END