Type in music as a line of letters and numbers; plays the composition.
Content
Source Code
5 GO TO 1000
10 INPUT "What speed? 1 is slow, 5 is fast";x
20 REM MUSIC PLAYER
30 DIM X(50): DIM Y(50)
40 LET K=0: LET L=1
50 BORDER 2: PAPER 4: INK 9: CLS
60 PRINT AT 0,10; INVERSE 1;"MUSIC PLAYER"''
70 PRINT "TYPE IN YOUR MUSIC AS A LINE OF LETTERS AND NUMBERS."
80 PRINT ''"PUT NOTES AS LETTERS FOLLOWED BY THEIR LENGTH IN BEATS"
90 PRINT ''"YOU HAVE TWO OCTAVES.THE LOWER ONE IS FROM A TO G AND THE UPPER FROM a TO c."
100 INPUT N$
110 FOR A=1 TO LEN N$ STEP 2
120 IF CODE N$(A)<97 THEN GO TO 290
130 IF N$(A)="a" THEN LET K=-0.5
140 IF N$(A)="d" THEN LET K=0.5
150 IF N$(A)="e" THEN LET K=1
160 IF N$(A)="f" THEN LET K=1
170 IF N$(A)="g" THEN LET K=1.5
180 LET Y(L)=(CODE N$(A)-87)+(2*K)
190 LET L=L+1
200 LET K=0
210 NEXT A
220 LET L=1
230 FOR T=2 TO LEN N$ STEP 2
240 LET X(L)=VAL N$(T)/2
250 LET L=L+1
260 NEXT T
270 GO TO 370
280 STOP
290 IF N$(A)="A" THEN LET K=-0.5
300 IF N$(A)="B" THEN LET K=-0.5
310 IF N$(A)="F" THEN LET K=0.5
320 IF N$(A)="G" THEN LET K=0.5
330 LET Y(L)=(CODE N$(A)-67-K)*2
340 LET K=0
350 LET L=L+1
360 GO TO 210
370 FOR Z=1 TO LEN N$/2
380 BEEP X(Z)/2,Y(Z)
390 NEXT Z
400 PRINT #1,"Press any key": PAUSE NOT PI: RUN
500 CLS : GO SUB 580
510 LET n$="q2w3er5t6y7ui9o0p"
520 DIM a(256)
530 FOR j=1 TO 17: LET a(CODE n$(j)+1)=j
540 NEXT j
550 LET i=CODE INKEY$+1
560 IF a(i) THEN BEEP .5,a(i)-1
570 GO TO 550
590 PRINT '" 2 3 5 6 7 9 0": PRINT
610 PRINT "\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::D#\::E#\::\::\::\::G#\::A#\::B#\::\::\::\::D#\::E#\::\::"
620 PRINT "\::\::\::\::__\::__\::\::\::\::__\::__\::__\::\::\::\::__\::__\::\::"
650 PRINT "\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::C \::D \::E \::F \::G \::A \::B \::C \::D \::E \::"
660 PRINT "\::\::__\::__\::__\::__\::__\::__\::__\::__\::__\::__\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::\::"
680 PRINT : PRINT " Q W E R T Y U I O P"
690 PRINT AT 15,2;"USE THE TOP TWO ROWS OF KEYS"
700 RETURN
1000 BORDER 7: PAPER 7: INK 9: CLS
1010 PRINT 'TAB 9;"Piano Simulations"''''" 1 Write a tune"''" 2 Play the Keys"''" 3 Parakeet"
1020 INPUT "Select 1, 2, 3, ";x: IF x=1 THEN GO TO 10
1030 IF x=2 THEN GO TO 500
1035 IF x=3 THEN GO TO 1500
1040 GO TO 1020
1500 SOUND 7,62;8,16;9,0;10,0
1510 FOR I=INT (RND*75)+25 TO INT (RND*75)+20 STEP INT (RND*4)*2-5
1520 SOUND 0,I;11,32;12,100;13,2
1530 NEXT I
1540 SOUND 12,1;13,0
1550 IF INT (RND*2)=1 THEN PAUSE INT ((RND*60)+1)
1560 IF INT (RND*4)<>1 THEN RUN 1500
1570 FOR J=RND*1 TO RND*10
1580 FOR K=0 TO INT (RND*4)
1590 NEXT K
1600 SOUND 6,16;7,7;8,16;9,16;10,16;11,300+INT (RND*10);12,INT (((RND*2)+.5)/2);13,INT (RND*2)*8
1610 FOR K=0 TO INT (RND*10)
1620 NEXT K
1630 SOUND 7,63;8,0;9,0;10,0
1640 NEXT j: RUN 1500
2000 SAVE "3 Musics" LINE 1