10 REM PYRAMUS7 + gets RND seeds from DATA. 20 DIM N(84):REM Note table 25 DIM A(1024),B(1024) 27 OPEN "pyramus7_hits.txt" FOR OUTPUT AS #1 30 O=7 40 RESTORE:FOR I=O*6+1 TO O*7:READ N(I):NEXT I 50 FOR I=O*6 TO 1 STEP -1:N(I)=N(I+O)/2:NEXT I 70 READ R0,C$ 72 IF R0 <> -99999! THEN GOTO 80 74 CLOSE #1 76 STOP 80 PRINT "Seed ";R0;" -- ";C$ 85 PRINT #1, "# Seed ";R0;" -- "; C$ 90 R=RND(-R0) 100 N=8 :REM Number of levels 110 B(1)=0:REM Center note--seeds a() 120 S=3:REM Spread of random number generator 130 B1=1:REM How many are in B() now 140 FOR L=1 TO N:P2=2^(L-1):REM Levels loop 142 FOR X=1 TO B1:A(X)=B(X):NEXT X 144 A1=B1:REM How many in A() now. 150 P3=P2/2:REM SubChunk granularity 160 IF P3<1 THEN P3=1 170 B1=0:REM How many are in b() 180 FOR C=1 TO N+2-L:REM Chunks loop 190 R=INT((RND(1)-.5)*S+.5) 200 IF RND(1)<.25 THEN R1=-1 ELSE R1=1 210 I=INT(RND(1)*((A1-P2)/P3+1))*P3+1 220 REM Start of chunk 230 PRINT R1*I; 240 FOR X=I TO I+P2-1:REM Samples within chunk 250 B1=B1+1:B(B1)=R+A(X)*R1 260 NEXT X 270 NEXT C 300 PRINT 310 NEXT L 315 REM WAVE 0, SIN : WAVE 1, SIN : WAVE 2, SIN : WAVE 3, SIN 320 FOR X=1 TO A1 FOR v = 0 TO 3 REM SOUND N(A(X)+O*2) * (v + 1),3,,v NEXT v REM PRINT N(A(X)+O*2); "Hz, "; 3 * 55; "ms" , PRINT #1, N(A(X)+O*2); "Hz, "; 3 * 55; "ms" REM PRINT a(x); N(a(x)+O*2), REM IF x = INT( x/8 )*8 THEN PRINT 340 NEXT X 345 REM INPUT A$ 350 GOTO 70 358 REM notes c, d, e, f, g, a, b 360 DATA 4186,4699,5274,5588,6274,7040,7902 1000 REM Favorite Songs... DATA 4, " " DATA 67, " " DATA 76, " " DATA 5, " " DATA 17, " " DATA 35, " " DATA 38, " " DATA 83, " " DATA 116, " " DATA 128, " " DATA 134, " " DATA 143, " " DATA 152, " " DATA 176, " " DATA 188, " " DATA 221, " " DATA 21, "slow" DATA 33, " " DATA 45, " " DATA 57, "Minimaloid!" DATA 99, " " DATA 114, "Dumb!" DATA 117, " " DATA 129, " " DATA 306, " " DATA 327, " " DATA 381, " " DATA 429, " " DATA 528, "Slow" DATA 744, " " DATA 774, " " DATA 795, " " 9990 DATA -99999,"end of data"