1 ! MUSIC by JOSEPH K. HORN 2 ! REQUIRES NOISE LEXFILE by STEVE WILLIAMS 3 ! TO TUNEUP, RUN TUNEUP by JAMES L. HORN 10 DESTROY ALL @ N$="CcDdEFfGgAaB" @ T$="" @ DIM A$[96] 20 INPUT A$ @ IF NOT LEN(A$) THEN 50 30 IF A$[1,1]="=" THEN 190 40 DIM M$[LEN(A$)+LEN(T$)] @ M$=T$&A$ @ DIM T$[LEN(M$)] @ T$=M$ @ GOTO 20 50 DIM M$[LEN(T$)*2] @ D=130 @ D$=CHR$(160) 60 FOR X=1 TO LEN(T$) 70 N=POS(N$,T$[X,X]) 80 IF N THEN M$=M$&CHR$(D+N)&D$ @ GOTO 130 90 IF T$[X,X]="R" THEN M$=M$&CHR$(255)&D$ @ GOTO 130 100 IF T$[X,X]="(" THEN D$=CHR$(LOG(VAL(T$[X+1]))/LOG(2)*16+192) @ X=POS(T$,")",X+1) @ GOTO 130 110 IF POS("+-",T$[X,X])=0 THEN BEEP @ DISP T$[X,X];" @";X;"???" @ END 120 IF T$[X,X]="+" THEN D=D+16 ELSE D=D-16 130 NEXT X 140 NOISE M$&CHR$(255)&CHR$(0) 150 INPUT "Save to file: ";A$ 160 IF NOT LEN(A$) THEN END 170 ON ERROR GOTO 180 @ PURGE A$ 180 OFF ERROR @ CREATE DATA A$,1,LEN(M$)+4 @ ASSIGN #1 TO A$ @ PRINT #1,0;M$ @ END 190 UNSECURE A$[2] @ ASSIGN #1 TO A$[2] 200 DESTROY M$ @ DIM M$[MIN(MEM/2-100,65535)] @ READ #1;M$ @ GOTO 140