0 'HARMNY.BA By Ben Firschein 6/83 1 'CLUB 100 Library - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE 2 ONERRORGOTO27:M=100:DIMN$(12):DIMP%(12,5):DIMLV%(M):DIMDU%(M):DIMNO$(M):GOSUB46:KEY(1)ON:KEY(2)ON:KEY(3)ON:KEY(4)ON:KEY(5)ON:KEY(6)ON:KEY(7)ON:KEY(8)ON:L=1:D=12:C=0:GOSUB37:GOTO4 3 FORZZ=1TO500:NEXTZZ 4 CLS:PRINT:PRINT" ***************( MENU )***************":PRINT" "FRE(0)"BYTES FREE":PRINT" [m]ake a song [p]layback":PRINT" [s]ave [f]iles":PRINT" [l]oad [q]uit 5 PRINT" ******( hit key in [] to choose )***** 6 K$=INKEY$:IFK$=""THEN6 7 IFK$="m"THENGOSUB14 8 IFK$="p"THENGOSUB47 9 IFK$="s"THENGOSUB50 10 IFK$="l"THENGOSUB53 11 IFK$="q"THENMENU 12 IFK$="f"THENGOSUB33 13 GOTO3 14 GOSUB31 15 GOSUB18:IFK$="."THENRETURN 16 GOSUB36:IFC=MTHENPRINT:PRINT"can only store"M"notes.":RETURN 17 C=C+1:LV%(C)=L:DU%(C)=D:NO$(C)=K$:GOTO15 18 PRINTCHR$(239)CHR$(8); 19 K$=INKEY$:IFK$="."THENPRINT".":RETURN 20 IFK$=""THEN19 21 IFASC(K$)=8THENGOSUB25:GOTO18 22 FORK=1TO12:IFK$=N$(K)THEN24 23 NEXTK:GOTO19 24 RETURN 25 IFC=0THENRETURN 26 PRINT" "CHR$(8);:PRINTCHR$(8)CHR$(8)CHR$(8)CHR$(8);:C=C-1:RETURN 27 IFERR=7THENPRINT"out of memory.please make space":END 28 IFERR=52THENPRINT"file not found.":RESUME3 29 IFERR=55THENPRINT"bad file name.":RESUME3 30 PRINT"error code "ERR"in line "ERL:STOP 31 C=0:CLS:PRINT"create a song upto"M"notes":PRINT"by pressing key of note to play.":PRINT"sharps: shift & the key":PRINT"done: type '.'":PRINT"[bksp] to change notes":PRINT"f1-f8 changes octave & length":PRINT"oct1 oct2 oct3 oct4 oct5 1/4 1/2 1/1 32 RETURN:PRINT"wait"; 33 CLS:FILES:PRINT:PRINT"hit space bar to continue "; 34 W$=INKEY$:IFW$<>" "THEN34 35 PRINT" "WAITE";":RETURN 36 PRINTL;N$(K);:SOUNDP%(K,L),D:RETURN 37 ONKEYGOSUB38,39,40,41,42,43,44,45:RETURN 38 L=1:RETURN 39 L=2:RETURN 40 L=3:RETURN 41 L=4:RETURN 42 L=5:RETURN 43 D=12:RETURN 44 D=25:RETURN 45 D=50:RETURN 46 FORN=1TO12:READN$(N):FORC=1TO5:READP%(N,C):NEXTC:NEXTN:RETURN 47 CLS:PRINT"playback":PRINT:IFC>0THEN49 48 PRINT"error. no notes to play":RETURN 49 FORNT=1TOC:L=LV%(NT):D=DU%(NT):K$=NO$(NT):GOSUB22:GOSUB36:NEXTNT:PRINT:RETURN 50 CLS:PRINT"save":PRINT:IFC>0THEN52 51 PRINT"error. no notes to save":RETURN 52 INPUT"filename ";N$:OPENN$FOROUTPUTAS1:PRINT"saving "N$:FORNT=1TOC:PRINT#1,LV%(NT),DU%(NT),NO$(NT):PRINTLV%(NT)NO$(NT)" ";:NEXTNT:PRINT#1,0,0,"*":CLOSE1:PRINT:PRINT"saved. "FRE(0)"bytes free.":RETURN 53 CLS:PRINT"load":PRINT:INPUT"file ";NA$:OPENNA$FORINPUTAS1:PRINT"found "NA$:FORC=1TOM:INPUT#1,LV%(C),DU%(C),NO$(C):IFNO$(C)="*"THEN55 54 NEXTC 55 C=C-1:CLOSE1:PRINT"loaded":RETURN:DATA "g",12538,6269,3134,1567,783:DATA "G",11836,5918,2959,1479,739:DATA "a",11172,5586,2793,1396,698:DATA "A",10544,5272,2636,1318,659:DATA "b",9952,4976,2484,1244,622:DATA "c",9394,4697,2348,1174,587 56 DATA "C",8866,4433,2216,1108,554:DATA "d",8368,4184,2092,1046,523:DATA "D",7900,3728,1975,987,493:DATA "e",7456,3718,1864,932,466:DATA "f",7032,3516,1758,879,439:DATA "F",6642,3321,1660,830,415