NOTE: I can't quite remember the format for the music documents. I think the scale is CDEFGABcdefgabT, and you prefix the letter with a @ for a flat and a # for a sharp. The first line of the document should contain the length of each character in 100ths of a second (eg 50 for each character to last a half-second). 1 REM *** Written by Mark Ray, please read welcome.msg first *** 2 ON ERROR IF ERR=17 THEN CH."AUTO" ELSE REPORT:PRINT " at ";ERL:END 5 CLS:PRINT SPC(31);"ELECTRONIC PIANOLA"'' 10 INPUT LINE "Music Document";F$:F=OPENIN(F$) 20 INPUT#F,T$:TEMPO=VAL(T$):BASE=1:ALT=0 30 REPEAT:N$=CHR$(BGET#F):N=INSTR("C-D-EF-G-A-Bc-d-ef-g-a-bT",N$) 40 PRINT N$;:IF N THEN SOUND 1,0,(N+ALT+1)*4,TEMPO 50 ALT=(N$="@")-(N$="#") 60 UNTIL EOF#F:CLOSE#F:A=GET:CHAIN"AUTO"