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

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